All Products
Search
Document Center

AnalyticDB:Keranjang daur ulang tabel

Last Updated:Mar 29, 2026

Keranjang daur ulang tabel melindungi dari kehilangan data akibat pernyataan DROP TABLE yang tidak disengaja. Tabel yang di-drop dipindahkan ke database tersembunyi bernama ADB_RECYCLE_BIN dan disimpan selama tiga hari secara default, memberi Anda waktu untuk memulihkannya sebelum dihapus secara permanen.

Prasyarat

Sebelum memulai, pastikan Anda telah memiliki:

  • Kluster AnalyticDB for MySQL yang berjalan dengan versi V3.2.3.0 atau lebih baru

Catatan

Untuk memeriksa versi minor kluster Edisi Data Lakehouse, jalankan SELECT adb_version();. Untuk melakukan upgrade versi minor, hubungi dukungan teknis. Untuk kluster Edisi Data Warehouse, lihat Update the minor version of a cluster.

Batasan

  • Jenis tabel yang didukung: hanya tabel internal dengan engine XUANWU atau XUANWU_V2. Tabel eksternal tidak didukung.

  • Tabel dalam keranjang daur ulang tetap mengonsumsi penyimpanan disk.

  • Menjalankan DROP TABLE saat INSERT OVERWRITE SELECT sedang berjalan akan memindahkan tabel ke keranjang daur ulang dan menyebabkan pernyataan INSERT OVERWRITE SELECT gagal.

  • Menjalankan DROP TABLE saat BUILD sedang berjalan akan memindahkan tabel ke keranjang daur ulang tanpa mengganggu pernyataan BUILD.

  • Untuk menjalankan pernyataan apa pun terkait keranjang daur ulang (SHOW, RESTORE, PURGE), Anda harus memiliki izin DROP pada tabel sumber. Hanya pernyataan PURGE, RESTORE, dan SHOW yang didukung untuk tabel dalam keranjang daur ulang.

Cara kerja

Pertama kali Anda menjalankan pernyataan DROP TABLE, AnalyticDB for MySQL membuat database tersembunyi bernama ADB_RECYCLE_BIN dan memindahkan tabel yang di-drop ke sana. Pernyataan DROP TABLE berikutnya akan memindahkan tabel ke database yang sama.

Penting

DROP TABLE ... FORCE menghapus tabel secara permanen dan melewati keranjang daur ulang.

Periode retensi dan pembersihan

Secara default, tabel disimpan dalam keranjang daur ulang selama tiga hari (259.200.000 ms). Setelah periode retensi berakhir, AnalyticDB for MySQL secara otomatis menghapusnya menggunakan thread pembersihan latar belakang yang berjalan setiap 60 detik. Anda juga dapat menjalankan pernyataan PURGE untuk membersihkan keranjang daur ulang secara manual. Untuk informasi lebih lanjut, lihat bagian Delete tables from the recycle bin.

Penting

Tetapkan periode retensi yang sesuai untuk menghindari kehabisan ruang penyimpanan disk.

Konvensi penamaan

Tabel dari berbagai database disimpan dalam satu keranjang daur ulang. Untuk memastikan nama unik, setiap tabel diberi nama ulang dengan format SourceDatabaseName_SourceTableName_Timestamp.

Contoh: Tabel customer dari database adb_demo yang di-drop pada 1 Januari 2024 pukul 00:00:00 diberi nama ulang menjadi adb_demo_customer_1704038400000.

Catatan
  • Jika panjang nama gabungan melebihi batas maksimum, nama database sumber dan nama tabel akan dipotong secara berurutan dan mungkin tampak tidak lengkap.

  • Jika nama tabel yang sama di-drop lagi dari database yang sama, tabel tersebut akan disimpan dengan timestamp yang berbeda.

Konfigurasi keranjang daur ulang

Gunakan SET ADB_CONFIG untuk mengonfigurasi keranjang daur ulang.

ParameterDefaultDeskripsi
DROP_FORCEFALSEAtur ke TRUE untuk menghapus tabel secara permanen saat menjalankan DROP TABLE, melewati keranjang daur ulang. Atur ke FALSE untuk memindahkan tabel ke keranjang daur ulang.
RECYCLE_BIN_EXPIRED_TIME259200000 (3 hari)Periode retensi dalam milidetik. Hanya berlaku untuk tabel yang di-drop setelah pengaturan ini diubah. Tabel yang sudah ada di keranjang daur ulang tetap menggunakan periode retensi aslinya.
ENABLE_RECYCLE_BIN_CLEAN_EXPIRED_TABLETRUEAktifkan atau nonaktifkan thread pembersihan latar belakang. Jangan nonaktifkan kecuali diperlukan untuk troubleshooting.
RECYCLE_BIN_CLEAN_EXPIRED_TABLE_INTERVAL60000 (60 detik)Interval dalam milidetik saat thread pembersihan dijalankan.

Mengubah periode retensi

SET adb_config RECYCLE_BIN_EXPIRED_TIME=<RetentionPeriodInMilliseconds>;
Penting

Periode retensi baru hanya berlaku untuk tabel yang di-drop setelah perubahan ini. Tabel yang sudah ada di keranjang daur ulang tetap menggunakan waktu kedaluwarsa aslinya.

Contoh: Tetapkan periode retensi menjadi dua hari:

-- 2 hari = 2 × 24 × 3600 × 1000 = 172.800.000 ms
SET adb_config RECYCLE_BIN_EXPIRED_TIME=172800000;

Menanyakan tabel dalam keranjang daur ulang

Sintaks

-- Menampilkan semua tabel dalam keranjang daur ulang
SHOW RECYCLE_BIN ALL;

-- Menampilkan tabel dari database sumber dan nama tabel tertentu
SHOW RECYCLE_BIN TABLE <SourceDatabaseName>.<SourceTableName>;

-- Menampilkan tabel berdasarkan nama tabel sumber (di semua database)
SHOW RECYCLE_BIN TABLE <SourceTableName>;

-- Menampilkan semua tabel dari database sumber tertentu
SHOW RECYCLE_BIN DATABASE <SourceDatabaseName>;

Contoh

Menampilkan semua tabel dalam keranjang daur ulang:

SHOW RECYCLE_BIN ALL;
+----------+-----------------+---------------------------------+------------------+-----------------+---------------------+---------------------+
| userName | schemaName      | tableName                       | originSchemaName | originTableName | recycledTime        | expiredTime         |
+----------+-----------------+---------------------------------+------------------+-----------------+---------------------+---------------------+
| testUser | ADB_RECYCLE_BIN | adb_demo_customer_1720086117277 | adb_demo         | customer        | 2024-07-04 17:42:00 | 2024-07-07 17:42:00 |
| testUser | ADB_RECYCLE_BIN | adb_demo_orders_1720086094102   | adb_demo         | orders          | 2024-07-04 17:41:37 | 2024-07-07 17:41:37 |
| testUser | ADB_RECYCLE_BIN | testdb_customer_1720085752664   | testdb           | customer        | 2024-07-04 17:35:56 | 2024-07-07 17:35:56 |
+----------+-----------------+---------------------------------+------------------+-----------------+---------------------+---------------------+

Menampilkan tabel tertentu dari `adb_demo.customer`:

SHOW RECYCLE_BIN TABLE adb_demo.customer;
+----------+-----------------+---------------------------------+------------------+-----------------+---------------------+---------------------+
| userName | schemaName      | tableName                       | originSchemaName | originTableName | recycledTime        | expiredTime         |
+----------+-----------------+---------------------------------+------------------+-----------------+---------------------+---------------------+
| testUser | ADB_RECYCLE_BIN | adb_demo_customer_1720086117277 | adb_demo         | customer        | 2024-07-04 17:42:00 | 2024-07-07 17:42:00 |
+----------+-----------------+---------------------------------+------------------+-----------------+---------------------+---------------------+

Menampilkan semua versi tabel `customer` di semua database:

SHOW RECYCLE_BIN TABLE customer;
+----------+-----------------+---------------------------------+------------------+-----------------+---------------------+---------------------+
| userName | schemaName      | tableName                       | originSchemaName | originTableName | recycledTime        | expiredTime         |
+----------+-----------------+---------------------------------+------------------+-----------------+---------------------+---------------------+
| testUser | ADB_RECYCLE_BIN | adb_demo_customer_1720086117277 | adb_demo         | customer        | 2024-07-04 17:42:00 | 2024-07-07 17:42:00 |
| testUser | ADB_RECYCLE_BIN | testdb_customer_1720085752664   | testdb           | customer        | 2024-07-04 17:35:56 | 2024-07-07 17:35:56 |
+----------+-----------------+---------------------------------+------------------+-----------------+---------------------+---------------------+

Menampilkan semua tabel dari database `adb_demo`:

SHOW RECYCLE_BIN DATABASE adb_demo;
+----------+-----------------+---------------------------------+------------------+-----------------+---------------------+---------------------+
| userName | schemaName      | tableName                       | originSchemaName | originTableName | recycledTime        | expiredTime         |
+----------+-----------------+---------------------------------+------------------+-----------------+---------------------+---------------------+
| testUser | ADB_RECYCLE_BIN | adb_demo_customer_1720086117277 | adb_demo         | customer        | 2024-07-04 17:42:00 | 2024-07-07 17:42:00 |
| testUser | ADB_RECYCLE_BIN | adb_demo_orders_1720086094102   | adb_demo         | orders          | 2024-07-04 17:41:37 | 2024-07-07 17:41:37 |
+----------+-----------------+---------------------------------+------------------+-----------------+---------------------+---------------------+

Memulihkan tabel dari keranjang daur ulang

Aturan pemulihan

  • Tabel yang dipulihkan menggunakan nama aslinya sebelum di-drop.

  • Jika database sumber sudah berisi tabel dengan nama yang sama, ganti nama, hapus, atau pindahkan tabel yang ada tersebut sebelum memulihkan.

  • Jika beberapa versi tabel ada dalam keranjang daur ulang (database sumber dan nama tabel sama, timestamp berbeda), RESTORE RECYCLE_BIN ALL akan memulihkan versi dengan timestamp terbaru dan melaporkan error untuk versi lainnya.

Sintaks

-- Memulihkan semua tabel ke database sumbernya
RESTORE RECYCLE_BIN ALL;

-- Memulihkan tabel tertentu menggunakan nama keranjang daur ulangnya
RESTORE RECYCLE_BIN TABLE <RecycleBinTableName>;

<RecycleBinTableName> adalah nama yang ditampilkan di kolom tableName pada output SHOW RECYCLE_BIN (format: SourceDatabaseName_SourceTableName_Timestamp).

Memulihkan versi tertentu dari sebuah tabel

Saat beberapa versi tabel yang di-drop ada dalam keranjang daur ulang, gunakan langkah-langkah berikut untuk memulihkan versi tertentu:

  1. Tanyakan keranjang daur ulang untuk menemukan semua versi dan nama keranjang daur ulangnya:

    SHOW RECYCLE_BIN TABLE <SourceTableName>;
  2. Identifikasi versi target dengan membandingkan kolom recycledTime dengan akhiran timestamp pada tableName.

  3. Pulihkan versi tertentu menggunakan nama keranjang daur ulangnya:

    RESTORE RECYCLE_BIN TABLE <RecycleBinTableName>;

Contoh: Untuk memulihkan tabel customer seperti kondisinya sebelum di-drop pada 2024-07-04 17:42:00:

RESTORE RECYCLE_BIN TABLE adb_demo_customer_1720086117277;

Menghapus tabel dari keranjang daur ulang

Gunakan PURGE untuk menghapus tabel secara permanen dari keranjang daur ulang sebelum masa berlakunya habis.

Sintaks

-- Menghapus permanen semua tabel dari keranjang daur ulang
PURGE RECYCLE_BIN ALL;

-- Menghapus permanen tabel tertentu dari keranjang daur ulang
PURGE RECYCLE_BIN TABLE <RecycleBinTableName>;

Contoh

Hapus permanen tabel adb_demo_customer_1720086117277:

PURGE RECYCLE_BIN TABLE adb_demo_customer_1720086117277;