Topik ini menjelaskan cara mengarsipkan data dingin dalam format CSV atau ORC dan memulihkan data dari tabel OSS ke PolarStore.
Prasyarat
Anda harus terlebih dahulu mengaktifkan pengarsipan data dingin. Fitur ini memiliki persyaratan versi kluster berikut:
Mengarsipkan ke format CSV
Untuk kluster Edisi Kluster, diperlukan salah satu versi kernel berikut:
MySQL 8.0.1 revisi 8.0.1.1.47 atau lebih baru.
MySQL 8.0.2 revisi 8.0.2.2.10 atau lebih baru.
Untuk kluster Edisi Kluster Multi-master (Limitless), diperlukan versi kernel 8.0.1.0.13 atau lebih baru.
Mengarsipkan ke format ORC
Untuk kluster Edisi Kluster, diperlukan versi revisi 8.0.2.2.30 atau lebih baru.
Untuk kluster Edisi Kluster Multi-master (Limitless), diperlukan versi revisi 8.0.2.2.30 atau lebih baru.
Saat Anda mengarsipkan data dingin secara manual pada kluster dengan versi berikut, operasi tersebut tidak dicatat dalam log biner.
PolarDB for MySQL 8.0.1 dengan versi minor 8.0.1.1.33 atau lebih baru.
PolarDB for MySQL 8.0.2 dengan versi minor 8.0.2.2.11.1 atau lebih baru.
Catatan Penggunaan
Arsipkan tabel standar
Pengarsipan data dingin merupakan operasi tingkat tabel. Saat Anda mengarsipkan sebuah tabel, tabel tersebut menjadi tabel arsip read-only. Engine tabel yang diarsipkan adalah engine OSS, dan file datanya disimpan di OSS. Setelah operasi pengarsipan selesai, ruang yang sebelumnya ditempati oleh tabel lokal asli di PolarStore akan dilepaskan.
Syntax
Format CSV
Format 1:
ALTER TABLE table_name ENGINE = CSV CONNECTION = 'default_oss_server';Format 2: Kluster Anda harus memenuhi salah satu persyaratan versi berikut.
Edisi Kluster:
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.
Edisi Kluster Multi-master (Limitless): 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 data yang diarsipkan sudah ada di Object Storage Service (OSS), sistem akan melaporkan kesalahan bahwa file tersebut sudah ada. Contohnya:
Target file for archived table exists on oss.Jika kluster Anda adalah MySQL 8.0.2 dengan revisi 8.0.2.2.29 atau lebih baru, Anda dapat menggunakan opsi
FORCE STORAGE OSSuntuk memaksa menghapus file OSS. Anda dapat menambahkan opsiFORCE STORAGE OSSke sintaks di atas untuk menghapus file OSS yang sesuai saat Anda menghapus skema tabel. Contoh:DROP TABLE table_name FORCE STORAGE OSS;
Parameters
Parameter | Deskripsi |
table_name | Nama tabel yang akan diarsipkan ke OSS. |
Considerations
Anda dapat menggunakan fitur pengarsipan data dingin untuk tabel yang menggunakan engine InnoDB atau engine X-Engine.
Anda tidak dapat menggunakan pernyataan Data Definition Language (DDL) atau Data Manipulation Language (DML) untuk memodifikasi tabel selama proses pengarsipan data dingin.
Fitur pengarsipan data dingin tidak mendukung pengarsipan file data ke server OSS yang dibuat pengguna.
Saat Anda menggunakan fitur pengarsipan data dingin untuk tabel yang menggunakan engine InnoDB, tabel tersebut harus memiliki kunci primer.
Setelah pengarsipan data dingin selesai, tabel yang diarsipkan di OSS bersifat read-only dan mungkin memiliki kinerja kueri yang buruk. Uji kinerja kueri setelah pengarsipan data untuk memastikan bahwa kinerjanya memenuhi kebutuhan Anda.
Jika sebuah tabel memiliki Indeks Kolom dalam Memori (IMCI), tabel tersebut tidak dapat diarsipkan dalam format CSV dan hanya dapat diarsipkan dalam format ORC.
Example
Arsipkan data dalam 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 dalam tabel
t.INSERT INTO t VALUES (1,2,3);Gunakan perintah
ALTERuntuk mengarsipkan data dingin.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 masuk ke PolarDB console untuk melihat informasi tentang database dan tabel yang diarsipkan di OSS, atau gunakan pernyataan SQL untuk melihat data dalam tabel yang diarsipkan:
Untuk melihat informasi tentang database dan tabel yang diarsipkan di OSS, masuk ke Konsol PolarDB. Pada halaman kluster target, buka untuk melihat informasi tersebut.
Untuk melihat data dalam tabel yang diarsipkan, gunakan pernyataan SQL. Anda tidak perlu mengubah cara mengakses tabel tersebut. Contohnya:
SELECT * FROM t;
Arsipkan tabel partisi ke tabel eksternal OSS
Kluster PolarDB for MySQL harus versi 8.0.2 dengan versi minor 8.0.2.2.25 atau lebih baru.
Di konsol, atur parameter kluster
partition_level_mdl_enabledke ON untuk mengaktifkan fitur kunci metadata (MDL) tingkat partisi. Untuk informasi selengkapnya tentang cara mengatur parameter kluster, lihat Mengatur parameter kluster dan node.Di konsol, atur parameter kluster
loose_use_oss_metake ON untuk mengaktifkan fituruse_oss_meta. Untuk informasi selengkapnya tentang cara mengatur parameter kluster, lihat Mengatur parameter kluster dan node.
Syntax
CALL dbms_dlm.archive_partition2table('source_db', 'source_tb', 'source_part', 'archive_db', 'archive_table', ' oss_file_filter');Parameters
Parameter | Deskripsi |
source_db | Nama database tabel sumber. |
source_tb | Nama tabel sumber. |
source_part | Partisi dari tabel sumber yang akan diarsipkan. Anda dapat menentukan beberapa partisi yang dipisahkan dengan koma. |
archive_db | Nama database tabel tujuan. |
archive_table | Nama tabel tujuan. |
oss_file_filter | Menentukan apakah akan membuat FILE FILTER baru untuk tabel tujuan. Untuk informasi selengkapnya, lihat Percepatan kueri OSS_FILE_FILTER. |
Considerations
Jika tabel OSS tujuan untuk pengarsipan belum ada, tabel tersebut akan dibuat secara otomatis. Untuk mempercepat kueri,
oss_file_filterjuga akan dibuat secara otomatis pada kolom yang ditentukan olehoss_file_filter. Kunci primer dan kunci partisi juga akan ditambahkan secara otomatis keoss_file_filter.Jika tabel OSS tujuan sudah ada, Anda harus memeriksa apakah nama kolom dan definisi tipe kolom konsisten antara kedua tabel. Jika konsisten, Anda dapat mengarsipkan data tersebut. Jika tidak konsisten, akan terjadi kesalahan. Anda dapat menggunakan pernyataan DDL untuk menyamakan definisi kedua tabel tersebut. Untuk informasi selengkapnya, lihat DDL untuk data dingin. Selain itu, jika tabel tujuan memiliki
oss_file_filter, dan definisinya berbeda dari yang ada dicall dbms_dlm.archive_partition2table, makaoss_file_filterdari tabel tujuan yang akan digunakan.Jika tabel OSS tujuan belum ada tetapi file dengan nama yang sama sudah ada di OSS, pesan kesalahan akan dilaporkan saat Anda melakukan operasi pengarsipan. Pesan kesalahannya 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 sebuah partisi diarsipkan, tabel tersebut harus berisi setidaknya satu partisi InnoDB.
Data yang diarsipkan kehilangan informasi partisinya dan tidak dapat dipulihkan secara langsung. Namun, Anda dapat memulihkannya menggunakan
insert select.Anda tidak dapat mengarsipkan subpartisi secara individual. Anda hanya dapat mengarsipkan semua subpartisi di bawah seluruh partisi tingkat pertama.
Tabel berikut mencantumkan jenis partisi yang didukung oleh fungsi partisi PolarDB for MySQL.
Partisi tingkat pertama
Partisi tingkat kedua
Pengarsipan ke tabel eksternal OSS
HASH
Jenis apa pun
Pengarsipan partisi tingkat pertama HASH ke tabel eksternal OSS tidak didukung.
LIST
Jenis apa pun
Didukung.
RANGE
Jenis apa pun
Didukung.
KEY
Jenis apa pun
Didukung.
Jenis apa pun
Pengarsipan partisi DEFAULT tidak didukung.
Example
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 informasi 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;Berikut ini yang 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)
Jalankan 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
Fitur pengarsipan tabel partisi sedang dalam rilis canary. Untuk menggunakan fitur ini, buka Pusat Kuota, temukan kuota berdasarkan Quota ID
polardb_mysql_hybrid_partition, lalu klikRequestdi kolom Tindakan untuk mengaktifkan fitur tersebut.Anda dapat mengarsipkan tabel partisi jika kluster PolarDB for MySQL Anda adalah versi 8.0.2 dengan revisi 8.0.2.2.14 atau lebih baru.
Mengarsipkan tabel partisi berarti mengarsipkan partisinya. Tabel tersebut menjadi tabel partisi hibrida setelah pengarsipan, dan file data dari partisi yang diarsipkan disimpan di OSS. Setelah operasi pengarsipan selesai, ruang yang ditempati oleh partisi di PolarStore akan dilepaskan secara otomatis.
Syntax
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 yang diarsipkan sudah ada di OSS, sistem akan melaporkan kesalahan bahwa file tersebut sudah ada. Contohnya:
Target file for archived table exists on oss.Jika kluster Anda adalah MySQL 8.0.2 dengan revisi 8.0.2.2.29 atau lebih baru, Anda dapat menggunakan opsi
FORCE STORAGE OSSuntuk memaksa menghapus file OSS. Anda dapat menambahkan opsiFORCE STORAGE OSSke ketiga sintaks di atas untuk menghapus file OSS yang sesuai saat Anda menghapus skema tabel. Misalnya, untuk mengarsipkan tabel partisi dalam format CSV, sintaks dengan opsiFORCE STORAGE OSSadalah sebagai berikut:ALTER TABLE table_name CHANGE PARTITION part_name ENGINE = CSV FORCE STORAGE OSS;
Parameters
Parameter | Deskripsi |
table_name | Nama tabel yang akan diarsipkan ke OSS. |
part_name | Nama partisi yang akan diarsipkan ke OSS. |
Considerations
Anda hanya dapat menggunakan fitur pengarsipan data dingin untuk tabel partisi yang menggunakan engine InnoDB.
Saat Anda mengarsipkan partisi dari tabel partisi, Anda harus menyisakan setidaknya satu partisi yang menggunakan engine InnoDB. Anda tidak dapat mengarsipkan partisi terakhir yang menggunakan engine InnoDB.
Tabel tersebut menjadi tabel partisi hibrida setelah pengarsipan. Anda tidak dapat melakukan operasi DDL pada tabel partisi hibrida. Untuk informasi selengkapnya tentang pertimbangan tersebut, lihat Buat partisi hibrida.
Anda tidak dapat memodifikasi data dari partisi yang diarsipkan.
Anda tidak dapat mengarsipkan subpartisi dalam tabel partisi.
Anda tidak dapat mengarsipkan partisi DEFAULT dari tabel partisi hash default daftar.
Anda tidak dapat mengarsipkan tabel partisi HASH atau KEY.
Anda tidak dapat mengarsipkan seluruh tabel partisi secara manual.
Saat Anda mengarsipkan data dalam sebuah partisi, jika file dengan nama yang sama sudah ada di OSS, operasi tersebut gagal dan pesan kesalahan 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;
Example
Arsipkan data dalam 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 dalam 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 dalam 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 masuk ke PolarDB console untuk melihat informasi tentang database dan tabel yang diarsipkan di OSS, atau gunakan pernyataan SQL untuk mengkueri data dalam tabel partisi hibrida:
Untuk melihat informasi tentang database dan tabel yang diarsipkan di OSS, masuk ke Konsol PolarDB. Pada halaman kluster target, buka untuk melihat informasi tersebut.
Untuk informasi selengkapnya tentang mengkueri data dalam tabel partisi hibrida, lihat Mengkueri partisi hibrida.
Enkripsi TDE untuk data yang diarsipkan
Hanya operasi pengarsipan manual dalam format CSV atau ORC yang didukung.
Hanya kluster PolarDB for MySQL dengan versi berikut yang mendukung enkripsi data untuk file yang sesuai 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, Anda harus meningkatkan versi minor tersebut. Untuk informasi selengkapnya, lihat Mengelola versi minor.
Untuk memenuhi kebutuhan keamanan data Anda, Anda dapat menentukan enkripsi data transparan (TDE) untuk file saat mengarsipkan data dingin ke OSS. Prinsip dasarnya adalah Anda memilih file yang akan dienkripsi selama operasi pengarsipan, lalu server OSS melakukan enkripsi tersebut. Untuk informasi selengkapnya tentang enkripsi, lihat Enkripsi data. Setelah enkripsi, Anda dapat langsung mengkueri data yang diarsipkan menggunakan pernyataan SQL di PolarDB for MySQL. Seluruh proses enkripsi dan dekripsi diselesaikan di latar belakang dan transparan bagi Anda. Tidak diperlukan operasi tambahan.
Syntax
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 data dari tabel arsip standar di OSS
Untuk sesekali memodifikasi data dingin yang diarsipkan ke OSS, Anda dapat menggunakan sintaks ALTER ENGINE untuk memulihkan data dari OSS ke PolarStore. Setelah data dipulihkan ke PolarStore, data dingin di OSS akan dihapus. Setelah Anda memodifikasi data, Anda dapat mengarsipkan kembali tabel tersebut ke OSS.
Syntax
ALTER TABLE table_name ENGINE[=]engine_name;Parameters
Parameter | Deskripsi |
table_name | Nama tabel OSS yang akan dipulihkan. |
engine_name | Jenis engine setelah pemulihan. |
Considerations
Saat tabel OSS berada dalam keadaan read-only, Anda tidak dapat melakukan operasi modifikasi, seperti INSERT, UPDATE, atau DELETE. Untuk memodifikasi data dingin yang diarsipkan, Anda harus mengonversi tabel OSS menjadi tabel read-write, seperti tabel InnoDB. Jika Anda mencoba memodifikasi tabel OSS read-only, kesalahan berikut akan dilaporkan:
1036 - Table 't1' is read onlyExample
Di database oss_test, pulihkan tabel OSS t ke PolarStore.
ALTER TABLE `oss_test`.`t` ENGINE = InnoDB;Modifikasi data dalam 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 data dari tabel partisi yang diarsipkan di OSS
Untuk 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 akan dihapus.
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 konsisten dengan |
Contoh
Di database, pulihkan data dari partisi p1 dari tabel partisi t, yang diarsipkan di OSS, ke PolarStore.
ALTER TABLE t REORGANIZE PARTITION p1 INTO(PARTITION p1 values less than(100));Hapus file yang sesuai dari OSS
Hanya kluster PolarDB for MySQL dengan versi berikut yang mendukung penghapusan file yang sesuai dari OSS:
8.0.1 dengan versi minor 8.0.1.1.42 atau lebih baru.
8.0.2 dengan versi minor 8.0.2.2.23 atau lebih baru.
Jika versi minor kluster Anda tidak memenuhi persyaratan, Anda tidak dapat menghapus file yang sesuai dari OSS. Anda harus meningkatkan versi minor kluster Anda. Untuk informasi selengkapnya, lihat Mengelola versi minor.
Saat Anda menghapus tabel dari OSS atau memulihkannya ke PolarStore, file di OSS tidak dihapus. Setelah Anda memastikan bahwa data tersebut tidak lagi diperlukan, Anda dapat menggunakan sintaks berikut untuk menghapus file yang sesuai dari OSS:
CALL dbms_oss.delete_table_file('database_name', 'table_name');Karena penghapusan file dari OSS adalah operasi asinkron, file tersebut hanya dapat dihapus sepenuhnya setelah semua node di kluster tidak lagi bergantung padanya. Operasi ini mungkin tertunda saat lalu lintas sedang tinggi. Oleh karena itu, jika perintah di atas gagal dan mengembalikan pesan kesalahan OSS files are still in use, tunggu beberapa saat lalu jalankan kembali perintah tersebut.