Topik ini menjelaskan cara menggunakan fitur pengarsipan data dingin. Sebelum memulai, konfirmasi format arsip dan pastikan kluster Anda memenuhi persyaratan. Untuk informasi selengkapnya, lihat Perbandingan format arsip dan Persyaratan versi.
Cakupan
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 yang lebih baru.
MySQL 8.0.2 revisi 8.0.2.2.10 atau yang lebih baru.
Untuk kluster Kluster Multi-master (Limitless) Edisi, diperlukan versi kernel 8.0.1.0.13 atau yang lebih baru.
Mengarsipkan ke format ORC
Untuk kluster Edisi Kluster, diperlukan versi revisi 8.0.2.2.30 atau yang lebih baru.
Untuk kluster Kluster Multi-master (Limitless) Edisi, diperlukan versi revisi 8.0.2.2.30 atau yang lebih baru.
Arsipkan data dingin
Anda harus terlebih dahulu mengaktifkan pengarsipan data dingin. Setelah fitur diaktifkan, Anda dapat mengarsipkan data dari tabel standar atau tabel partisi.
Tabel standar
Arsipkan secara manual tabel standar dalam format CSV atau ORC.
Tabel partisi
Anda dapat mengarsipkan satu atau beberapa partisi dari tabel partisi secara manual atau mengarsipkannya ke tabel eksternal OSS. Untuk informasi selengkapnya, lihat Arsipkan tabel partisi atau Arsipkan tabel partisi ke tabel eksternal OSS.
Anda dapat membuat kebijakan Manajemen Siklus Data (DLM) untuk mengarsipkan data dingin secara otomatis. Untuk informasi selengkapnya, lihat Arsipkan data dingin secara otomatis.
Kueri data dingin
Tabel standar
Tidak peduli format arsip yang Anda pilih, Anda dapat mengkueri data yang diarsipkan tanpa mengubah cara Anda mengakses tabel tersebut.
Tabel partisi
Arsipkan ke tabel eksternal OSS: Untuk mengkueri data yang diarsipkan, Anda harus mengubah metode akses Anda. Artinya, Anda harus mengkueri tabel arsip tertentu. Untuk informasi selengkapnya, lihat Arsipkan tabel partisi ke tabel eksternal OSS.
Arsipkan tabel partisi: Setelah diarsipkan, tabel menjadi tabel partisi hibrida. Untuk informasi selengkapnya, lihat Kueri partisi hibrida.
Anda dapat mengkueri data partisi yang menggunakan engine berbeda dengan salah satu metode berikut:
Jika Anda menyetel parameter
hybrid_partition_query_mix_engine_enabledke ON di Konsol, hasil kueri akan berisi data di partisi yang tidak menggunakan engine InnoDB. Contoh:SELECT * FROM t1;t1adalah tabel partisi hibrida.Jika Anda menyetel parameter
hybrid_partition_query_mix_engine_enabledke OFF di Konsol, Anda dapat mengkueri data di partisi tertentu. Contoh:SELECT * FROM t1 partition (p1);t1adalah tabel partisi hibrida.p1adalah partisi tersebut.
Data dingin yang diarsipkan untuk satu tabel disimpan dalam beberapa file. Untuk mengoptimalkan kinerja kueri saat Anda mengkueri data dingin, Anda dapat menggunakan kueri paralel. Untuk informasi selengkapnya, lihat Kueri paralel untuk data dingin.
Ubah data dingin
Jika Anda jarang perlu memodifikasi data dingin yang disimpan di OSS, Anda dapat menggunakan pernyataan ALTER untuk memindahkan data dingin dari OSS kembali ke PolarDB untuk dimodifikasi. Saat data dipindahkan kembali, data dingin asli di OSS akan dihapus secara otomatis. Setelah Anda memodifikasi data, Anda dapat mengarsipkan kembali data tabel yang telah diperbarui ke OSS.
Tabel standar
Sintaksis
ALTER TABLE table_name ENGINE[=]engine_name;Parameter
Parameter | Deskripsi |
table_name | Nama tabel OSS yang akan dipindahkan kembali. |
engine_name | Jenis engine setelah operasi failback. |
Catatan penggunaan
Tabel OSS bersifat read-only dan tidak mendukung 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 yang bersifat read-only, pesan kesalahan berikut akan dikembalikan:
1036 - Table 't' is read onlyContoh
Pindahkan tabel OSS t dari database oss_test kembali ke PolarDB.
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. Misalnya:
ALTER TABLE t ENGINE = CSV CONNECTION = 'default_oss_server';atau
ALTER TABLE t ENGINE = CSV STORAGE OSS;Tabel partisi
Sintaksis
ALTER TABLE table_name REORGANIZE PARTITION part_name INTO (partition_definition);Parameter
Parameter | Deskripsi |
table_name | Nama tabel OSS yang akan dipindahkan kembali. |
part_name | Nama partisi yang akan dipindahkan kembali. |
partition_definition | Definisi partisi. Ini harus sama dengan |
Contoh
Pindahkan data di partisi p1 dari tabel partisi t dari OSS kembali ke PolarDB.
ALTER TABLE t REORGANIZE PARTITION p1 INTO(PARTITION p1 values less than(100));Hapus data dingin
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 yang lebih baru.
8.0.2 dengan versi minor 8.0.2.2.23 atau yang 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 Kelola versi minor.
Setelah Anda menghapus tabel dari OSS atau memindahkan tabel dari OSS kembali ke PolarDB, file yang sesuai di OSS tidak dihapus secara otomatis. Jika Anda memastikan bahwa data tersebut tidak lagi diperlukan, Anda dapat menghapus file yang sesuai dari OSS. Untuk informasi selengkapnya, lihat Hapus file yang sesuai dari OSS.
Tabel standar dan tabel eksternal OSS
Hapus tabel yang diarsipkan menggunakan pernyataan
DROP TABLE, lalu hapus file yang sesuai di OSS menggunakan perintahCALL dbms_oss.delete_table_file('database_name', 'table_name');.Tabel partisi
Anda dapat menggunakan perintah
CALL dbms_oss.delete_table_file('database_name', 'table_name');untuk menghapus file yang sesuai di OSS.
Menghapus file yang sesuai di OSS merupakan operasi asinkron. File tersebut benar-benar dihapus hanya setelah semua node di kluster tidak lagi bergantung padanya. Selain itu, proses ini mungkin mengalami latensi selama periode lalu lintas tinggi.
Opsi FORCE STORAGE OSS
Saat ini, opsi FORCE STORAGE OSS hanya tersedia pada kluster PolarDB for MySQL yang menjalankan versi 8.0.2 dengan versi revisi 8.0.2.2.29 atau yang lebih baru.
Tabel standar dan tabel eksternal OSS
DROP TABLE table_name [FORCE STORAGE OSS];CatatanOpsi FORCE STORAGE OSS dalam perintah DROP TABLE menyediakan metode pembersihan satu langkah. Opsi ini secara otomatis menghapus file penyimpanan OSS terkait saat Anda menghapus skema tabel.
Tabel partisi
ALTER TABLE table_name DROP PARTITION part_name [FORCE STORAGE OSS];CatatanAnda dapat menggunakan opsi FORCE STORAGE OSS bersama klausa DROP PARTITION dari pernyataan ALTER TABLE untuk menghapus metadata partisi dan file penyimpanan OSS yang sesuai secara sinkron.
CHANGE PARTITION ENGINE
ALTER TABLE table_name CHANGE PARTITION part_name ENGINE = CSV|ORC [FORCE STORAGE OSS]CatatanFitur pengarsipan data dingin CHANGE PARTITION ENGINE mencakup mekanisme penggantian paksa yang secara otomatis mengganti file dengan nama yang sama.
Perbandingan format
Gunakan perbandingan berikut untuk memilih format yang sesuai untuk mengarsipkan data dingin.
Berlaku batasan saat Anda mengarsipkan tabel standar, tabel eksternal OSS, dan tabel partisi. Tinjau batasan ini dengan cermat sebelum mengarsipkan data agar tidak berdampak pada bisnis Anda.
Setelah data dingin diarsipkan, data tersebut disimpan di bucket Object Storage Service (OSS) default yang disediakan sistem, bukan di bucket OSS milik Anda sendiri. Anda hanya dapat melihat daftar data yang diarsipkan di Konsol PolarDB.
Metode pengarsipan tabel partisi:
Arsipkan partisi: Metode ini mengarsipkan partisi tabel secara langsung. Data tetap berada di tabel asli, tetapi media penyimpanan untuk partisi tersebut berubah dari PolarDB (penyimpanan panas) ke OSS (penyimpanan dingin). Tabel tersebut menjadi tabel partisi hibrida yang berisi partisi panas dan dingin.
Arsipkan partisi ke tabel eksternal OSS: Metode ini memindahkan data dari partisi ke tabel eksternal OSS baru yang terpisah. Partisi asli kemudian dihapus dari tabel sumber.
Item perbandingan | CSV | ORC |
Format open-source | Ya | Ya |
Metode pengarsipan |
| Pengarsipan manual: |
Kecepatan pengarsipan | Cepat Catatan Hanya mendukung pengarsipan single-threaded. | Lambat Catatan Hanya mendukung pengarsipan single-threaded. |
Kecepatan kueri |
Catatan Mendukung pembacaan data baik single-threaded maupun multi-threaded. |
Catatan Hanya mendukung pembacaan data single-threaded. |
Dukungan transaksi | Tidak | Tidak |
Kemampuan pengindeksan | Tidak | Tidak |
Cara memodifikasi data yang diarsipkan | Tabel yang diarsipkan di OSS bersifat read-only. Untuk memodifikasi data, Anda harus mengimpornya kembali ke ruang penyimpanan PolarDB. | |
Penggunaan ruang penyimpanan | Sama dengan ruang penyimpanan yang digunakan oleh tabel di engine InnoDB tanpa indeks. | Untuk jumlah data yang sama, format ORC menggunakan 45% dari ruang penyimpanan yang dibutuhkan oleh format CSV. |
Pencadangan dan pemulihan | Tidak didukung. Catatan Operasi pencadangan tidak mencadangkan data dingin yang diarsipkan di OSS. Oleh karena itu, Anda tidak dapat menggunakan cadangan untuk memulihkan database atau tabel, memulihkan dari cadangan, atau melakukan pemulihan pada titik waktu. | |
Dampak setelah pengarsipan |
|
|