Topik ini menjelaskan cara mengarsipkan data dingin dalam format CSV atau ORC serta memulihkan data dari tabel OSS ke PolarStore.
Kesesuaian
Anda harus terlebih dahulu mengaktifkan pengarsipan data dingin. Fitur ini memerlukan salah satu revisi kluster berikut:
Pengarsipan ke format CSV
Edisi kluster adalah Cluster Edition:
Arsipkan tabel standar:
MySQL 8.0.1 dengan revisi 8.0.1.1.47 atau lebih baru.
MySQL 8.0.2 dengan revisi 8.0.2.2.10 atau lebih baru.
Arsipkan tabel partisi:
MySQL 8.0.2 dengan revisi 8.0.2.2.34.1 atau lebih baru.
Edisi kluster adalah Multi-master Cluster (Limitless) Edition:
MySQL 8.0.1 dengan revisi 8.0.1.0.13 atau lebih baru.
Pengarsipan ke format ORC
Edisi kluster adalah Cluster Edition:
Arsipkan tabel standar: MySQL 8.0.2 dengan revisi 8.0.2.2.30 atau lebih baru.
Arsipkan tabel partisi: MySQL 8.0.2 dengan revisi 8.0.2.2.34.1 atau lebih baru.
Edisi kluster adalah Multi-master Cluster (Limitless) Edition: MySQL 8.0.2 dengan revisi 8.0.2.2.30 atau lebih baru.
Saat Anda mengarsipkan data dingin secara manual pada kluster dengan salah satu versi berikut, operasi tersebut tidak dicatat dalam binary logs.
-
PolarDB for MySQL 8.0.1 dengan revisi 8.0.1.1.33 atau lebih baru.
-
PolarDB for MySQL 8.0.2 dengan revisi 8.0.2.2.11.1 atau lebih baru.
Prosedur
Arsipkan tabel standar
Pengarsipan data dingin merupakan operasi tingkat tabel. Setelah diarsipkan, tabel tersebut menjadi tabel arsip read-only dengan engine OSS, dan file datanya disimpan di Object Storage Service (OSS). Setelah pengarsipan selesai, PolarDB melepaskan ruang yang sebelumnya ditempati oleh tabel asli di PolarStore.
Syntax
Format CSV
-
Format 1:
ALTER TABLE table_name ENGINE = CSV CONNECTION = 'default_oss_server'; -
Format 2: Kluster Anda harus memenuhi salah satu persyaratan revisi berikut.
-
Cluster Edition:
-
MySQL 8.0.1 dengan revisi 8.0.1.1.33 atau lebih baru.
-
MySQL 8.0.2 dengan revisi 8.0.2.2.13 atau lebih baru.
-
-
Multi-master Cluster (Limitless) Edition: Revisi harus 8.0.1.1.15 atau lebih baru.
ALTER TABLE table_name ENGINE = CSV STORAGE OSS; -
Format ORC
ALTER TABLE table_name ENGINE = ORC STORAGE OSS;
-
Jika file data dengan nama yang sama dengan file arsip target sudah ada di OSS, operasi akan gagal dengan error. Contohnya:
Target file for archived table exists on oss. -
Opsi
FORCE STORAGE OSSdidukung untuk menghapus paksa file OSS saat versi kluster Anda adalah MySQL 8.0.2 dan revisinya 8.0.2.2.29 atau lebih baru. Anda dapat menambahkan opsiFORCE STORAGE OSSke sintaks di atas untuk menghapus struktur tabel dan file OSS yang sesuai. Contohnya:DROP TABLE table_name FORCE STORAGE OSS;
Parameter
|
Parameter |
Deskripsi |
|
table_name |
Nama tabel yang akan diarsipkan ke OSS. |
Pertimbangan
-
Anda dapat menggunakan fitur pengarsipan data dingin untuk tabel yang menggunakan engine InnoDB atau engine X-Engine.
-
Anda tidak dapat menggunakan pernyataan DDL atau DML untuk memodifikasi tabel selama proses pengarsipan.
-
Anda tidak dapat mengarsipkan data ke server OSS yang dibuat pengguna.
-
Tabel InnoDB harus memiliki primary key agar dapat diarsipkan.
-
Setelah diarsipkan, tabel di OSS menjadi read-only dan mungkin menunjukkan kinerja kueri yang lebih lambat. Anda harus menguji kinerjanya untuk memastikan memenuhi kebutuhan Anda.
-
Tabel dengan In-Memory Column Index (IMCI) tidak dapat diarsipkan dalam format CSV; harus diarsipkan dalam format ORC.
Contoh
Arsipkan data di tabel t ke OSS dalam format CSV atau ORC.
-
Buat tabel InnoDB bernama
tdi databaseoss_test.CREATE TABLE t(a int, b int, c int, primary key(a)) ENGINE = INNODB; -
Masukkan data ke tabel
t.INSERT INTO t VALUES (1,2,3); -
Arsipkan tabel menggunakan perintah
ALTER TABLE.-
Arsipkan dalam format CSV:
ALTER TABLE t ENGINE = CSV CONNECTION = 'default_oss_server'; -
Arsipkan dalam format ORC:
ALTER TABLE t ENGINE = ORC STORAGE OSS;
-
-
Setelah pengarsipan selesai, Anda dapat melihat informasi tabel arsip di PolarDB console atau langsung melakukan kueri data menggunakan SQL:
-
Untuk melihat informasi database dan tabel yang diarsipkan di OSS: Login ke Konsol PolarDB. Di panel navigasi sebelah kiri kluster target, pilih untuk melihat informasi tersebut.
-
Lakukan kueri data di tabel arsip seperti pada tabel standar. Contohnya:
SELECT * FROM t;
-
Arsipkan partisi ke tabel eksternal OSS
-
Bagian ini hanya berlaku untuk PolarDB for MySQL 8.0.2.
-
Jika versi minor kernel lebih awal dari 8.0.2.2.33, konfigurasikan parameter berikut:
Sintaks
CALL dbms_dlm.archive_partition2table('source_db', 'source_tb', 'source_part', 'archive_db', 'archive_table', ' oss_file_filter');
Parameter
|
Parameter |
Deskripsi |
|
source_db |
Nama database tabel sumber. |
|
source_tb |
Nama tabel sumber. |
|
source_part |
Nama partisi tabel sumber yang akan diarsipkan. Untuk menentukan beberapa partisi, pisahkan nama-namanya dengan koma. |
|
archive_db |
Nama database tabel tujuan. |
|
archive_table |
Nama tabel tujuan. |
|
oss_file_filter |
Daftar kolom yang dipisahkan koma untuk dimasukkan dalam oss_file_filter untuk tabel tujuan. Untuk informasi lebih lanjut, lihat Percepatan kueri OSS_FILE_FILTER. |
Pertimbangan
-
Jika tabel OSS tujuan tidak ada, tabel tersebut akan dibuat secara otomatis. Untuk mempercepat kueri,
oss_file_filterjuga dibuat secara otomatis pada kolom yang ditentukan oleh parameteross_file_filter. Primary key dan partition key juga ditambahkan secara otomatis keoss_file_filter. -
Jika tabel OSS tujuan sudah ada, Anda harus membandingkan nama kolom atau definisi tipe kolom kedua tabel tersebut. Data hanya dapat diarsipkan jika definisinya konsisten. Jika tidak, akan muncul error. Anda dapat menggunakan pernyataan DDL untuk menyamakan definisi kedua tabel. Untuk informasi lebih lanjut, lihat DDL Data Dingin. Selain itu, jika
oss_file_filterdidefinisikan pada tabel tujuan dan definisinya tidak konsisten dengan yang ada di perintahcall dbms_dlm.archive_partition2table, definisioss_file_filterpada tabel tujuan yang berlaku. -
Jika tabel OSS tujuan tidak ada tetapi file dengan nama yang sama sudah ada di OSS, pesan error akan muncul saat Anda melakukan operasi pengarsipan. Pesan error-nya sebagai berikut:
mysql> CALL dbms_dlm.archive_partition2table('test', 'sales', 'p0', 'test', 'sales_history', 'id'); ERROR 8181 (HY000): [Data Lifecycle Management] errmsg: Target file for archived table exists on oss, please remove it first, or use flag 'FORCE' to overwrite on existing files.Jika Anda memastikan bahwa file sisa di OSS tidak diperlukan, Anda dapat menggunakan prosedur tersimpan untuk menghapus data di OSS lalu melakukan operasi pengarsipan.
-- Hapus data OSS. mysql> CALL dbms_oss.delete_table_file('test', 'sales_history'); Query OK, 0 rows affected (0.76 sec) -- Lakukan operasi pengarsipan. mysql> CALL dbms_dlm.archive_partition2table('test', 'sales', 'p0', 'test', 'sales_history', 'id'); Query OK, 0 rows affected (4.24 sec) -
Tabel OSS tujuan hanya mendukung data dingin dalam format CSV.
-
Setelah partisi diarsipkan, tabel harus berisi setidaknya satu partisi InnoDB.
-
Data yang diarsipkan kehilangan informasi partisinya dan tidak dapat langsung dipulihkan ke partisi. Namun, Anda dapat memulihkan data ke tabel menggunakan pernyataan
INSERT ... SELECT. -
Anda tidak dapat mengarsipkan partisi tingkat kedua secara individual. Anda hanya dapat mengarsipkan seluruh partisi tingkat pertama, termasuk semua partisi tingkat keduanya.
-
Tabel berikut mencantumkan jenis partisi yang didukung oleh fungsi partisi PolarDB for MySQL.
Partisi tingkat pertama
Partisi tingkat kedua
Dukungan pengarsipan OSS
HASH
Segala jenis
Pengarsipan partisi tingkat pertama HASH ke tabel eksternal OSS tidak didukung.
LIST
Segala jenis
Didukung.
RANGE
Segala jenis
Didukung.
KEY
Segala jenis
Didukung.
Segala jenis
Pengarsipan partisi DEFAULT tidak didukung.
Contoh
-
Buat tabel partisi InnoDB dan masukkan data.
DROP TABLE IF EXISTS `sales`; -- Buat tabel partisi. CREATE TABLE `sales` ( `id` int DEFAULT NULL, `name` varchar(20) DEFAULT NULL, `order_time` datetime NOT NULL, primary key (order_time) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 PARTITION BY RANGE COLUMNS(order_time) INTERVAL(month, 1) (PARTITION p0 VALUES LESS THAN ('2022-01-01') ENGINE = InnoDB, PARTITION p1 VALUES LESS THAN ('2023-01-01 00:00:00') ENGINE = InnoDB, PARTITION p2 VALUES LESS THAN ('2024-01-01 00:00:00') ENGINE = InnoDB); DROP PROCEDURE IF EXISTS proc_batch_insert; delimiter $$ CREATE PROCEDURE proc_batch_insert(IN begin INT, IN end INT, IN name VARCHAR(20)) BEGIN SET @insert_stmt = concat('INSERT INTO ', name, ' VALUES(? , ?, ?);'); PREPARE stmt from @insert_stmt; WHILE begin <= end DO SET @ID1 = begin; SET @NAME = CONCAT(begin+begin*281313, '@stiven'); SET @TIME = from_days(begin + 738368); EXECUTE stmt using @ID1, @NAME, @TIME; SET begin = begin + 1; END WHILE; END; $$ delimiter ; CALL proc_batch_insert(1, 1000, 'sales'); -
Arsipkan partisi p0 dari tabel partisi ke tabel OSS baru.
-
Jalankan perintah berikut untuk melihat skema tabel sales.
-- Lihat status tabel InnoDB saat ini. mysql> SHOW CREATE TABLE sales;Hasil berikut dikembalikan:
*************************** 1. row *************************** Table: sales Create Table: CREATE TABLE `sales` ( `id` int(11) DEFAULT NULL, `name` varchar(20) DEFAULT NULL, `order_time` datetime NOT NULL, PRIMARY KEY (`order_time`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci /*!50500 PARTITION BY RANGE COLUMNS(order_time) */ /*!99990 800020200 INTERVAL(MONTH, 1) */ /*!50500 (PARTITION p0 VALUES LESS THAN ('2022-01-01') ENGINE = InnoDB, PARTITION p1 VALUES LESS THAN ('2023-01-01 00:00:00') ENGINE = InnoDB, PARTITION p2 VALUES LESS THAN ('2024-01-01 00:00:00') ENGINE = InnoDB, PARTITION _p20240201000000 VALUES LESS THAN ('2024-02-01 00:00:00') ENGINE = InnoDB, PARTITION _p20240301000000 VALUES LESS THAN ('2024-03-01 00:00:00') ENGINE = InnoDB, PARTITION _p20240401000000 VALUES LESS THAN ('2024-04-01 00:00:00') ENGINE = InnoDB, PARTITION _p20240501000000 VALUES LESS THAN ('2024-05-01 00:00:00') ENGINE = InnoDB) */ 1 row in set (0.03 sec) -
Jalankan perintah berikut untuk mengarsipkan partisi p0 ke tabel OSS sales_history.
-- Arsipkan partisi p0 ke tabel OSS sales_history dan buat OSS_FILE_FILTER pada kolom id. mysql> CALL dbms_dlm.archive_partition2table('test', 'sales', 'p0', 'test', 'sales_history', 'id'); Query OK, 0 rows affected (1.86 sec) -
Jalankan perintah berikut untuk melihat skema tabel sales_history.
SHOW CREATE TABLE sales_history;Hasil berikut dikembalikan:
*************************** 1. row ***************************; Table: sales_history Create Table: CREATE TABLE `sales_history` ( `id` int(11) DEFAULT NULL, `name` varchar(20) DEFAULT NULL, `order_time` datetime DEFAULT NULL, PRIMARY KEY (`order_time`) ) /*!99990 800020213 STORAGE OSS */ ENGINE=CSV DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci /*!99990 800020204 NULL_MARKER='NULL' */ /*!99990 800020223 OSS META=1 */ /*!99990 800020224 OSS_FILE_FILTER='id,order_time' */ 1 row in set (0.00 sec)
-
-
Lakukan kueri pada tabel OSS baru.
CatatanAnda dapat mengaktifkan fitur percepatan kueri OSS_FILE_FILTER untuk mempercepat kueri.
mysql> explain SELECT * FROM sales_history WHERE id = 100; +----+-------------+---------------+------------+------+---------------+------+---------+------+------+----------+-------------------------------------------------------------------------------+ | id | select_type | table | partitions | type | possible_keys | key | key_len | ref | rows | filtered | Extra | +----+-------------+---------------+------------+------+---------------+------+---------+------+------+----------+-------------------------------------------------------------------------------+ | 1 | SIMPLE | sales_history | NULL | ALL | NULL | NULL | NULL | NULL | 152 | 10.00 | Using where; With pushed engine condition (`test`.`sales_history`.`id` = 100) | +----+-------------+---------------+------------+------+---------------+------+---------+------+------+----------+-------------------------------------------------------------------------------+ 1 row in set, 1 warning (0.00 sec) mysql> SELECT * FROM sales_history WHERE id = 100; +------+-----------------+---------------------+ | id | name | order_time | +------+-----------------+---------------------+ | 100 | 28131400@stiven | 2021-11-09 00:00:00 | +------+-----------------+---------------------+ 1 row in set (0.24 sec)
Arsipkan tabel partisi
Untuk mengarsipkan tabel partisi sebagai tabel partisi hibrida, kondisi berikut harus dipenuhi:
-
MySQL 8.0.2 dan versi minornya 8.0.2.2.34.1 atau lebih baru. Anda harus atur parameter
loose_allow_create_hybrid_partitionkeON. -
MySQL 8.0.2 dan versi minornya lebih awal dari 8.0.2.2.34.1. Lakukan peningkatan ke versi minor yang lebih baru.
Saat Anda mengarsipkan tabel partisi, Anda mengarsipkan partisinya. Tabel tersebut menjadi tabel partisi hibrida, dan file data partisi yang diarsipkan disimpan di OSS. Setelah operasi pengarsipan selesai, PolarDB secara otomatis melepaskan ruang yang ditempati partisi di PolarStore.
Sintaks
-
Arsipkan sebagai file dalam format CSV:
ALTER TABLE table_name CHANGE PARTITION part_name ENGINE = CSV; -
Arsipkan sebagai file dalam format ORC:
ALTER TABLE table_name CHANGE PARTITION part_name ENGINE = ORC;
-
Jika file data dengan nama yang sama dengan file data arsip sudah ada di OSS, sistem akan melaporkan error bahwa file tersebut sudah ada. Contohnya:
Target file for archived table exists on oss. -
Saat versi kluster Anda adalah MySQL 8.0.2 dan revisinya 8.0.2.2.29 atau lebih baru, Anda dapat menggunakan opsi
FORCE STORAGE OSSuntuk menghapus paksa file OSS. Anda dapat menambahkan opsiFORCE STORAGE OSSke ketiga sintaks di atas untuk menghapus struktur tabel dan file OSS yang sesuai. Misalnya, untuk mengarsipkan tabel partisi dalam format CSV, sintaks penambahan opsiFORCE STORAGE OSSadalah sebagai berikut:ALTER TABLE table_name CHANGE PARTITION part_name ENGINE = CSV FORCE STORAGE OSS;
Parameter
|
Parameter |
Deskripsi |
|
table_name |
Nama tabel yang akan diarsipkan ke OSS. |
|
part_name |
Nama partisi yang akan diarsipkan ke OSS. |
Pertimbangan
-
Anda hanya dapat menggunakan fitur pengarsipan data dingin untuk tabel partisi InnoDB.
-
Tabel menjadi tabel partisi hibrida setelah diarsipkan. Tabel partisi hibrida dapat berisi partisi ORC atau CSV. Anda tidak dapat melakukan operasi DDL Online pada tabel partisi hibrida, kecuali untuk menambah atau menghapus kolom dan indeks. Untuk pertimbangan penggunaan, lihat Buat partisi hibrida.
-
Anda tidak dapat memodifikasi data partisi yang diarsipkan.
-
Anda tidak dapat menggunakan pengarsipan data dingin untuk partisi tingkat kedua dalam tabel partisi.
-
Anda tidak dapat menggunakan pengarsipan data dingin untuk partisi
DEFAULTdari tabel partisiLIST DEFAULT HASH. -
Anda tidak dapat menggunakan pengarsipan data dingin untuk tabel partisi
HASHatauKEY. -
Anda tidak dapat mengarsipkan seluruh tabel partisi secara manual.
-
Saat Anda mengarsipkan data dalam partisi, jika file dengan nama yang sama sudah ada di OSS, operasi akan gagal dan pesan error serupa berikut dilaporkan:
Target file for archived table exists on oss.Anda harus menjalankan perintah berikut untuk menimpa file yang sudah ada di OSS. Ganti
table_namedanpart_namedengan nilai aktual Anda.ALTER TABLE table_name CHANGE PARTITION part_name ENGINE = CSV/ORC FORCE STORAGE OSS;
Contoh
Arsipkan data di partisi p1 dan p2 dari tabel t ke OSS dalam format CSV.
-
Buat tabel InnoDB bernama
tdi database.CREATE TABLE t(a int, b int, c int, primary key(a)) PARTITION BY RANGE(a) (PARTITION p1 values less than(100), PARTITION p2 values less than(200), PARTITION p3 values less than MAXVALUE ); -
Masukkan data ke tabel
t.INSERT INTO t VALUES(1,1,1); INSERT INTO t VALUES(10,10,10); INSERT INTO t VALUES(100,100,100); INSERT INTO t VALUES(150,150,150); INSERT INTO t VALUES(200,200,200); INSERT INTO t VALUES(1000,1000,1000); -
Jalankan perintah berikut untuk mengarsipkan data di partisi
p1danp2ke engine OSS.-
Arsipkan dalam format CSV:
ALTER TABLE t CHANGE PARTITION p1 ENGINE = csv; ALTER TABLE t CHANGE PARTITION p2 ENGINE = csv; -
Arsipkan dalam format ORC:
ALTER TABLE t CHANGE PARTITION p1 ENGINE = ORC; ALTER TABLE t CHANGE PARTITION p2 ENGINE = ORC;
-
-
Setelah pengarsipan selesai, Anda dapat login ke PolarDB console untuk melihat informasi database dan tabel yang diarsipkan di OSS, atau gunakan pernyataan SQL untuk melakukan kueri data di tabel partisi hibrida:
-
Untuk melihat informasi database dan tabel yang diarsipkan di OSS: Login ke Konsol PolarDB. Di panel navigasi sebelah kiri kluster target, pilih untuk melihat informasi tersebut.
-
Untuk melakukan kueri data di tabel partisi hibrida, lihat Melakukan kueri partisi hibrida.
-
Enkripsi TDE untuk data yang diarsipkan
-
Hanya pengarsipan manual dalam format CSV atau ORC yang didukung.
-
Hanya kluster PolarDB for MySQL dengan versi berikut yang mendukung enkripsi file data di OSS selama pengarsipan:
-
8.0.1 dengan versi minor 8.0.1.1.47 atau lebih baru.
-
8.0.2 dengan versi minor 8.0.2.2.27 atau lebih baru.
-
-
Jika versi minor kluster Anda tidak memenuhi persyaratan, kami menyarankan Anda melakukan peningkatan versi minor. Untuk informasi lebih lanjut, lihat manajemen versi minor.
Untuk memenuhi kebutuhan keamanan data Anda, Anda dapat mengaktifkan Enkripsi data transparan (TDE) untuk file data dingin yang diarsipkan ke OSS. Prinsip dasarnya adalah Anda memilih file yang ingin dienkripsi selama operasi pengarsipan, dan server OSS melakukan enkripsi tersebut. Untuk informasi lebih lanjut, lihat Enkripsi Data. Setelah data dienkripsi, Anda dapat menggunakan pernyataan SQL di PolarDB for MySQL untuk melakukan kueri data yang diarsipkan. Seluruh proses enkripsi dan dekripsi dilakukan di latar belakang dan transparan bagi Anda, tanpa memerlukan operasi tambahan.
Sintaks
Selama operasi pengarsipan manual, Anda dapat menambahkan sintaks ENCRYPTION="Y" untuk mengaktifkan TDE.
ALTER TABLE t1 engine = CSV ENCRYPTION="Y" STORAGE OSS;
Pulihkan data dari OSS ke PolarStore
Pulihkan tabel arsip standar
Untuk memodifikasi data dingin yang diarsipkan di OSS, gunakan sintaks ALTER ENGINE untuk memulihkan data ke PolarStore. Memulihkan data ke PolarStore juga menghapus data yang sesuai dari OSS. Setelah Anda memodifikasi data, Anda dapat mengarsipkan kembali tabel yang telah dimodifikasi ke OSS.
Sintaks
ALTER TABLE table_name ENGINE[=]engine_name;
Parameter
|
Parameter |
Deskripsi |
|
table_name |
Nama tabel OSS yang akan dipulihkan. |
|
engine_name |
Jenis engine setelah pemulihan. |
Pertimbangan
Tabel OSS yang diarsipkan bersifat read-only dan tidak mengizinkan operasi INSERT, UPDATE, atau DELETE. Untuk memodifikasi data, Anda harus terlebih dahulu memulihkan tabel ke engine read-write, seperti InnoDB. Mencoba memodifikasi tabel OSS read-only akan menghasilkan error berikut:
1036 - Table 't1' is read only
Contoh
Pulihkan tabel OSS t ke PolarStore di database oss_test.
ALTER TABLE `oss_test`.`t` ENGINE = InnoDB;
Modifikasi data di tabel InnoDB t. Setelah Anda memodifikasi data, Anda dapat mengarsipkan kembali tabel t dari engine InnoDB ke OSS. Contohnya:
ALTER TABLE t ENGINE = CSV CONNECTION = 'default_oss_server';
atau
ALTER TABLE t ENGINE = CSV STORAGE OSS;
Pulihkan partisi yang diarsipkan
Jika Anda perlu memulihkan data dari tabel partisi yang diarsipkan ke PolarStore, Anda dapat menggunakan pernyataan ALTER untuk memulihkan data dari OSS ke PolarStore. Setelah data dipulihkan, data dingin di OSS juga dihapus.
Kluster Anda harus merupakan PolarDB for MySQL 8.0.2 dengan revisi kernel 8.0.2.2.34.1 atau lebih baru.
Sintaks
ALTER TABLE table_name REORGANIZE PARTITION part_name INTO (partition_definition);
Parameter
|
Parameter |
Deskripsi |
|
table_name |
Nama tabel OSS yang akan dipulihkan. |
|
part_name |
Nama partisi yang akan dipulihkan. |
|
partition_definition |
Harus sama dengan |
Contoh
Pulihkan data dari partisi p1 dari tabel partisi yang diarsipkan t dari OSS ke PolarStore.
ALTER TABLE t REORGANIZE PARTITION p1 INTO(PARTITION p1 values less than(100));
Hapus file yang sesuai di OSS
-
Fitur ini hanya didukung pada kluster PolarDB for MySQL yang menjalankan versi berikut:
-
Versi 8.0.1, dan versi minornya harus 8.0.1.1.42 atau lebih baru.
-
Versi 8.0.2, dan versi minornya harus 8.0.2.2.23 atau lebih baru.
-
-
Jika versi minor kluster Anda tidak memenuhi persyaratan di atas, Anda tidak dapat menghapus file yang sesuai di OSS. Lakukan peningkatan versi minor kluster Anda. Untuk informasi lebih lanjut, lihat manajemen versi minor.
Saat Anda menghapus tabel di OSS atau mengimpornya kembali ke PolarStore, file di OSS tidak dihapus secara otomatis. Setelah Anda memastikan bahwa data tersebut tidak lagi diperlukan, gunakan sintaks berikut untuk menghapus file yang sesuai di OSS:
CALL dbms_oss.delete_table_file('database_name', 'table_name');
Operasi penghapusan file di OSS bersifat asinkron. File benar-benar dihapus hanya setelah semua node di kluster tidak lagi bergantung padanya. Trafik tinggi dapat menyebabkan penundaan. Jika perintah gagal dan mengembalikan error OSS files are still in use, tunggu beberapa saat lalu jalankan kembali perintah tersebut.