All Products
Search
Document Center

AnalyticDB:Keranjang daur ulang tabel

Last Updated:Aug 06, 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 pada V3.2.3.0 atau versi lebih baru

Catatan

Untuk melakukan peningkatan 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

Saat 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 juga akan memindahkan tabel ke database yang sama.

Penting

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

Periode retensi dan mekanisme pembersihan

Setelah masuk ke keranjang daur ulang, tabel disimpan selama tiga hari secara default dan dihapus secara otomatis setelah periode retensi berakhir. Anda dapat menyesuaikan periode retensi dengan mengonfigurasi RECYCLE_BIN_EXPIRED_TIME.

  • Pembersihan otomatis setelah periode retensi berakhir: Tabel dalam keranjang daur ulang yang melebihi periode retensi (RECYCLE_BIN_EXPIRED_TIME) akan dihapus secara otomatis.

  • Pembersihan otomatis saat batas jumlah tabel tercapai: Pada versi V3.2.3.6, V3.2.4.3, V3.2.5.0, dan versi lebih baru, jika jumlah tabel telah mencapai batas maksimum saat pembuatan tabel baru, sistem secara otomatis menghapus tabel dalam keranjang daur ulang yang masa kedaluwarsanya paling dekat. Satu tabel harus dihapus sebelum tabel baru dapat dibuat.

    Catatan

    Tabel mana yang dihapus secara otomatis oleh keranjang daur ulang?

    Misalnya, keranjang daur ulang berisi satu tabel yang kedaluwarsa besok dan satu tabel lain yang kedaluwarsa lusa. Tabel yang kedaluwarsa besok akan dihapus terlebih dahulu.

  • Pembersihan manual: Anda dapat menjalankan PURGE secara manual untuk membersihkan keranjang daur ulang. Untuk detailnya, lihat Delete tables from the recycle bin.

Konvensi penamaan

Tabel dari berbagai database disimpan dalam satu keranjang daur ulang. Untuk memastikan nama unik, setiap tabel diberi nama ulang menggunakan 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 gabungan nama 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 berbeda.

Konfigurasi keranjang daur ulang

Gunakan SET ADB_CONFIG untuk mengonfigurasi keranjang daur ulang.

Parameter Default Deskripsi
DROP_FORCE FALSE Atur 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_TIME 259200000 (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 mempertahankan periode retensi aslinya.
ENABLE_RECYCLE_BIN_CLEAN_EXPIRED_TABLE TRUE Aktifkan atau nonaktifkan thread pembersihan latar belakang. Jangan nonaktifkan kecuali diperlukan untuk troubleshooting.
RECYCLE_BIN_CLEAN_EXPIRED_TABLE_INTERVAL 60000 (60 detik) Interval dalam milidetik saat thread pembersihan dijalankan.
RECYCLE_BIN_TABLE_COUNT_LIMIT_RATIO 1.0

(V3.2.5.2 dan versi lebih baru) Rasio jumlah tabel dalam keranjang daur ulang terhadap batas total jumlah tabel. Jika rasio melebihi nilai ini, sistem secara otomatis membersihkan tabel yang paling baru ditambahkan ke keranjang daur ulang. Untuk informasi lebih lanjut, lihat Usage limits.

Penting

Thread pembersihan menggunakan ambang batas yang lebih kecil dari hasil perhitungan antara RECYCLE_BIN_TABLE_COUNT_LIMIT_RATIO dan RECYCLE_BIN_TABLE_COUNT_LIMIT untuk menentukan kapan keranjang daur ulang perlu dibersihkan.

RECYCLE_BIN_TABLE_COUNT_LIMIT 5000 (V3.2.5.2 dan versi lebih baru) Jumlah maksimum tabel yang dapat disimpan dalam keranjang daur ulang. Jika jumlah melebihi nilai ini, sistem secara otomatis membersihkan tabel yang paling baru ditambahkan.

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 dilakukan. Tabel yang sudah ada di keranjang daur ulang tetap mempertahankan waktu kedaluwarsa aslinya.

Contoh: Atur periode retensi menjadi dua hari:

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

Kueri 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

Tampilkan daftar semua tabel di 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 tersebut sebelum memulihkan.

  • Jika beberapa versi tabel ada dalam keranjang daur ulang (database sumber dan nama tabel sama, timestamp berbeda), RESTORE RECYCLE_BIN ALL 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, ikuti langkah-langkah berikut untuk memulihkan versi tertentu:

  1. Kueri 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 sufiks 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;

Hapus tabel dari keranjang daur ulang

Gunakan PURGE untuk menghapus tabel dari keranjang daur ulang secara permanen sebelum masa kedaluwarsanya tiba.

Sintaks

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

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

Contoh

Hapus secara permanen tabel adb_demo_customer_1720086117277:

PURGE RECYCLE_BIN TABLE adb_demo_customer_1720086117277;