Halaman ini mencakup pertanyaan umum mengenai fitur pengarsipan data dingin di PolarDB for MySQL.
Kesalahan
Tabel berikut mencantumkan kesalahan umum dan solusinya.
| Pesan kesalahan | Penyebab | Solusi |
|---|---|---|
[Data Lifecycle Management] DLM storage engine is not support. The value of polar_dlm_storage_mode is OFF. | Pengarsipan data dingin belum diaktifkan pada kluster. | Aktifkan pengarsipan data dingin di Konsol PolarDB. Untuk detailnya, lihat Aktifkan pengarsipan data dingin. |
[Data Lifecycle Management] errmsg: Not allowd archive the archived table. | Tabel target sudah diarsipkan. Pengarsipan ulang tabel yang telah diarsipkan tidak didukung. | Periksa apakah tabel tersebut sudah diarsipkan sebelum menjalankan pernyataan pengarsipan. |
OSS error: error message: The OSS Access Key Id you provided does not exist in our records | Kredensial akses sementara telah kedaluwarsa, sehingga Pasangan Kunci Akses (AccessKey pair) menjadi tidak valid. | Gunakan Pasangan Kunci Akses untuk mengajukan kredensial akses sementara baru dari server aplikasi Anda melalui STS. Untuk detailnya, lihat Gunakan kredensial sementara yang disediakan oleh STS untuk mengakses OSS. Untuk pesan OSS error: lainnya, lihat Kode kesalahan OSS. |
ERROR 8185 (HY000): Change partition not support archive to engine CSV | Fitur pengarsipan data dingin untuk tabel partisi sedang dalam rilis canary dan belum diaktifkan pada akun Anda. | Buka Quota Center, masukkan ID kuota polardb_mysql_hybrid_partition untuk menemukan nama kuota, lalu klik Apply di kolom Tindakan. |
Statement violates GTID consistency: Updates to non-transactional tables can only be done in either autocommitted statements or single-statement transactions, and never in the same statement as updates to transactional tables. | Tabel yang diarsipkan dalam format CSV atau ORC tidak mendukung transaksi. Jika prosedur tersimpan melibatkan tabel yang diarsipkan, ketidakkonsistenan pengenal transaksi global (GTID) dapat terjadi meskipun tidak ada operasi penulisan aktual yang dilakukan. | Ubah mesin penyimpanan menjadi X-Engine, yang mengurangi biaya penyimpanan dan menjaga semua tabel tetap transaksional. |
The last packet successfully received from the server was 15,287 milliseconds ago. The last packet sent successfully to the server was 15,287 milliseconds ago. | Proses pemulihan melebihi ambang batas timeout klien. | Tingkatkan spesifikasi minimum Unit Kapasitas PolarDB (PCU) kluster Anda, lalu jalankan ulang tugas pemulihan. |
Periksa apakah data telah diarsipkan
Gunakan salah satu metode berikut untuk memeriksa apakah suatu tabel atau partisi telah diarsipkan.
Metode 1: Jalankan pernyataan SQL
Jalankan SHOW CREATE TABLE table_name;:
Untuk tabel biasa: jika ditampilkan
STORAGE OSSatauCONNECTION='default_oss_server', berarti data telah diarsipkan.Untuk tabel partisi: jika ditampilkan
ENGINE=CSVatauENGINE=ORCuntuk partisi-partisinya, berarti data telah diarsipkan.
Metode 2: Periksa di konsol
Masuk ke Konsol PolarDB. Temukan kluster dan klik ID-nya. Di panel navigasi sebelah kiri, pilih Settings and Management > Cold Data Archiving. Jika nama tabel muncul dalam daftar, berarti data telah diarsipkan ke OSS.
Jika menu Cold Data Archiving tidak muncul setelah Anda mengaktifkan fitur tersebut, tunggu beberapa menit dan refresh halaman.
Operasi data yang diarsipkan
Kueri data dingin yang diarsipkan
Tabel biasa: Lakukan kueri seperti data panas. Tidak diperlukan perubahan pada metode akses.
Tabel partisi: Lihat Kueri data dalam tabel partisi hibrida.
Modifikasi data dingin yang diarsipkan
Data dingin yang diarsipkan ke OSS dalam format CSV atau ORC tidak dapat dimodifikasi secara langsung. Untuk memodifikasinya:
Jalankan
ALTER TABLE table_name ENGINE=InnoDB;untuk mengimpor data tabel dari OSS ke PolarStore.Modifikasi data di PolarStore.
Jalankan
ALTER TABLE t ENGINE = CSV STORAGE OSS;untuk mengarsipkan kembali data yang telah dimodifikasi ke OSS.
Untuk detailnya, lihat Impor data dari tabel OSS ke PolarStore.
Hapus data dingin yang diarsipkan
Gunakan Akun istimewa untuk menghapus data dingin yang diarsipkan.
Untuk menghapus data dingin yang diarsipkan:
Jalankan
DROP TABLEuntuk menghapus tabel yang diarsipkan dari PolarDB.Jalankan
CALL dbms_oss.delete_table_file('database_name', 'table_name');untuk menghapus data dingin yang diarsipkan dari OSS.
Unduh data dingin yang diarsipkan
Pengunduhan langsung data dingin yang diarsipkan tidak didukung. Untuk meminta akses unduh, buka Quota Center, masukkan ID kuota polardb_mysql_download_oss untuk menemukan nama kuota, lalu klik Apply di kolom Tindakan.
Lihat ukuran data dingin yang diarsipkan
Lihat ukurannya di Konsol PolarDB atau dengan melakukan kueri langsung pada tabel data dingin di kluster. Untuk detailnya, lihat Lihat informasi tentang data dingin yang diarsipkan di OSS.
Ukuran dan format
Bagaimana pengarsipan memengaruhi ukuran tabel?
Ukuran setelah diarsipkan bergantung pada mesin penyimpanan asli dan format arsip:
| Skenario | Dampak pada ukuran |
|---|---|
| Tabel InnoDB tanpa indeks | Lebih kecil — data dikompresi selama pengarsipan. |
| Tabel InnoDB dengan indeks | Jauh lebih kecil — indeks dihapus selama pengarsipan. |
| Tabel X-Engine | Mungkin lebih besar — kompresi OSS mungkin tidak sebaik kompresi bawaan X-Engine. |
| Format CSV vs. format ORC | Data yang diarsipkan dalam format CSV mungkin lebih besar daripada dalam format ORC. ORC memberikan rasio kompresi yang lebih tinggi. |
Untuk informasi tentang pengarsipan dalam format CSV, lihat Arsipkan data dingin secara manual dalam format CSV.
Apakah tabel asli masih mengonsumsi penyimpanan setelah diarsipkan?
Tidak. Setelah diarsipkan, PolarDB hanya menyimpan metadata tabel. Data aktual disimpan di OSS dan tidak mengonsumsi penyimpanan kluster.
Mengapa tabel yang diarsipkan tidak terlihat di konsol setelah mengarsipkan tabel kosong?
Untuk tabel kosong, tidak ada file CSV yang dihasilkan di OSS setelah pengarsipan, sehingga tidak ada informasi tabel yang muncul di konsol.
Mengapa saya tidak dapat melihat data dingin yang diarsipkan di OSS milik saya sendiri?
PolarDB menyimpan data dingin di OSS default-nya, bukan di akun OSS Alibaba Cloud Anda. Anda hanya dapat melihat data dingin yang diarsipkan di Konsol PolarDB.
Pengarsipan otomatis
Bagaimana pengarsipan otomatis dipicu?
Pengarsipan otomatis dipicu oleh event siklus hidup (lifecycle events) Manajemen Siklus Hidup Data (DLM). Untuk detailnya, lihat Manajemen siklus hidup data (DLM).
Di mana log untuk data yang diarsipkan secara otomatis?
Log disimpan di tabel mysql.dlm_progress. Akun apa pun yang memiliki izin pada database MySQL dapat melakukan kueri terhadapnya. Untuk skema tabelnya, lihat Tabel mysql.dlm_progress.
Bagaimana cara melihat kebijakan pengarsipan otomatis saat ini?
Kebijakan pengarsipan disimpan di tabel mysql.dlm_policies. Akun apa pun yang memiliki izin pada database MySQL dapat melakukan kueri terhadapnya. Untuk skema tabelnya, lihat Tabel mysql.dlm_policies.
Pertanyaan lainnya
Berapa lama waktu yang dibutuhkan untuk mengganti nama tabel yang diarsipkan?
Saat Anda mengganti nama tabel yang diarsipkan ke OSS, informasi file di OSS dimodifikasi dengan laju sekitar 100 Mbit/detik. Perkirakan durasinya berdasarkan ukuran total data yang diarsipkan.
Dapatkah saya mengarsipkan data ke OSS milik saya sendiri?
Tidak. Pengarsipan data dingin PolarDB hanya menggunakan OSS default-nya. Untuk mengekspor data ke OSS milik Anda, jalankan pernyataan SELECT INTO OSSOUTFILE. Untuk detailnya, lihat Ekspor serial tabel lokal ke OSS.
Apa yang harus saya lakukan jika versi kluster PolarDB for MySQL saya terlalu lama untuk mendukung pengarsipan data dingin?
Upgrade kluster Anda ke versi terbaru. Untuk detailnya, lihat Manajemen versi.