全部产品
Search
文档中心

AnalyticDB:Recycle bin tabel

更新时间:Jul 02, 2025

Pernyataan DDL tidak dapat dikembalikan. Jika Anda secara tidak sengaja menghapus tabel saat menggunakan pernyataan DDL, data akan hilang dan tidak dapat dipulihkan. Untuk menyelesaikan masalah ini, AnalyticDB for MySQL menyediakan fitur recycle bin tabel yang memungkinkan Anda untuk menyimpan sementara tabel yang dihapus di dalam recycle bin tabel. Anda dapat mengonfigurasi periode retensi untuk recycle bin tabel guna membantu mengembalikan data yang terhapus secara tidak sengaja.

Prasyarat

Sebuah kluster AnalyticDB for MySQL versi V3.2.3.0 atau lebih baru telah dibuat.

Catatan

Untuk melihat dan memperbarui versi minor dari kluster AnalyticDB for MySQL, masuk ke Konsol AnalyticDB for MySQL dan buka bagian Configuration Information pada halaman Cluster Information.

Untuk melihat dan memperbarui versi minor dari kluster AnalyticDB for MySQL, masuk ke Konsol AnalyticDB for MySQL dan buka bagian Configuration Information pada halaman Cluster Information.

Catatan penggunaan

  • Fitur recycle bin tabel hanya mendukung tabel internal AnalyticDB for MySQL dengan mesin tabel XUANWU atau XUANWU_V2. Fitur ini tidak mendukung tabel eksternal.

  • Jika Anda menjalankan pernyataan DROP TABLE ketika pernyataan INSERT OVERWRITE SELECT sedang dijalankan, tabel yang dihapus dipindahkan ke recycle bin tabel, dan pernyataan INSERT OVERWRITE SELECT gagal dijalankan.

  • Jika Anda menjalankan pernyataan DROP TABLE ketika pernyataan BUILD sedang dijalankan, tabel yang dihapus dipindahkan ke recycle bin tabel, dan pernyataan BUILD dijalankan sesuai harapan.

  • Tabel yang dipindahkan ke recycle bin tabel masih menggunakan penyimpanan disk.

Pengenalan fitur recycle bin tabel

Recycle bin tabel digunakan untuk menyimpan sementara tabel yang dihapus. Pada kali pertama Anda menjalankan pernyataan DROP, AnalyticDB for MySQL membuat database tersembunyi bernama ADB_RECYCLE_BIN dan memindahkan tabel yang dihapus ke database ADB_RECYCLE_BIN.

Mekanisme daur ulang

Tabel yang dihapus menggunakan pernyataan DROP TABLE secara otomatis dipindahkan ke recycle bin tabel.

Penting

Tabel yang dihapus secara paksa menggunakan pernyataan DROP TABLE ... FORCE langsung dihapus.

Periode retensi dan mekanisme pembersihan

Secara default, tabel yang dihapus disimpan selama tiga hari setelah dipindahkan ke recycle bin tabel. Setelah tiga hari, tabel yang tersimpan secara otomatis dihapus. Anda dapat mengonfigurasi periode retensi dan mekanisme pembersihan. Untuk informasi lebih lanjut, lihat bagian "Pengaturan recycle bin tabel" dari topik ini. Anda juga dapat menjalankan pernyataan PURGE untuk membersihkan recycle bin tabel. Untuk informasi lebih lanjut, lihat bagian "Hapus tabel dari recycle bin tabel" dari topik ini.

Pernyataan SQL yang didukung oleh recycle bin tabel

  • Untuk menjalankan pernyataan pada tabel di recycle bin tabel, Anda harus memiliki izin DROP pada tabel sumber.

  • Anda hanya dapat menjalankan pernyataan PURGE, RESTORE, dan SHOW pada tabel di recycle bin tabel.

Konvensi penamaan untuk tabel di recycle bin tabel

Tabel yang dipindahkan ke database ADB_RECYCLE_BIN dikumpulkan dari berbagai database. Untuk memastikan nama tabel unik, tabel di recycle bin tabel diberi nama dalam format berikut: NamaDatabaseSumber_NamaTabelSumber_Timestamp.

Sebagai contoh, seorang pengguna menghapus tabel bernama customer dari database adb_demo pada 00:00:00 tanggal 1 Januari 2024. Tabel customer diubah namanya menjadi adb_demo_customer_1704038400000 di recycle bin tabel.

Catatan
  • Jika panjang nama tabel baru melebihi batas, nama tabel sumber dan nama database sumber secara otomatis dipotong secara berurutan. Dalam kasus ini, nama database sumber dan nama tabel sumber di nama tabel baru mungkin tidak lengkap.

  • Jika sebuah tabel sudah dipindahkan dari database ke recycle bin tabel dan tabel lain dengan nama yang sama dihapus dari database yang sama, tabel yang baru saja dihapus dipindahkan ke recycle bin tabel dan diubah namanya menggunakan timestamp yang berbeda.

Pengaturan recycle bin tabel

Anda dapat menjalankan pernyataan SET ADB_CONFIG untuk memodifikasi pengaturan recycle bin tabel. Tabel berikut menjelaskan parameter dalam pernyataan tersebut.

Parameter

Deskripsi

DROP_FORCE

Menentukan apakah tabel dihapus secara permanen ketika Anda menjalankan pernyataan DROP. Jika Anda mengatur parameter ini ke FALSE, tabel dipindahkan ke recycle bin tabel. Jika Anda mengatur parameter ini ke TRUE, tabel dihapus secara permanen. Nilai default: FALSE.

RECYCLE_BIN_EXPIRED_TIME

Periode retensi tabel setelah dipindahkan ke recycle bin tabel. Parameter ini tidak berlaku untuk tabel yang sudah ada di recycle bin tabel. Unit: milidetik. Nilai default: 259200000 (3 hari).

Penting

Untuk mencegah habisnya ruang penyimpanan disk, kami merekomendasikan Anda untuk menentukan periode retensi yang sesuai.

ENABLE_RECYCLE_BIN_CLEAN_EXPIRED_TABLE

Menentukan apakah akan mengaktifkan fitur thread pembersihan asinkron untuk recycle bin tabel. Nilai default: TRUE.

Penting

Kami merekomendasikan Anda untuk tidak menonaktifkan fitur thread pembersihan asinkron.

RECYCLE_BIN_CLEAN_EXPIRED_TABLE_INTERVAL

Interval waktu recycle bin tabel menjalankan thread pembersihan asinkron. Unit: milidetik. Nilai default: 60000.

Kelola recycle bin tabel

Query tabel di recycle bin tabel

Sintaksis

  • Query semua tabel di recycle bin tabel.

    SHOW RECYCLE_BIN ALL;
  • Query informasi tentang tabel tertentu di recycle bin tabel. Beberapa tabel dengan nama database dan nama tabel yang sama mungkin dikembalikan.

    SHOW RECYCLE_BIN TABLE <NamaDatabaseSumber>.<NamaTabelSumber>;
  • Query informasi tentang tabel tertentu di recycle bin tabel. Beberapa tabel dengan nama tabel yang sama tetapi nama database berbeda mungkin dikembalikan.

    SHOW RECYCLE_BIN TABLE <NamaTabelSumber>;
  • Query semua tabel yang termasuk dalam database tertentu di recycle bin tabel.

    SHOW RECYCLE_BIN DATABASE <NamaDatabaseSumber>;

Contoh

  • Query semua tabel di recycle bin tabel.

    SHOW RECYCLE_BIN ALL;

    Hasil sampel:

    +----------+-----------------+---------------------------------+------------------+-----------------+---------------------+---------------------+
    | 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 |
    +----------+-----------------+---------------------------------+------------------+-----------------+---------------------+---------------------+
  • Query informasi tentang tabel adb_demo.customer di recycle bin tabel.

    SHOW RECYCLE_BIN TABLE adb_demo.customer;

    Hasil sampel:

    +----------+-----------------+---------------------------------+------------------+-----------------+---------------------+---------------------+
    | 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 |
    +----------+-----------------+---------------------------------+------------------+-----------------+---------------------+---------------------+
  • Query semua tabel dengan nama tabel sumber customer di recycle bin tabel.

    SHOW RECYCLE_BIN TABLE customer;

    Hasil sampel:

    +----------+-----------------+---------------------------------+------------------+-----------------+---------------------+---------------------+
    | 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 |
    +----------+-----------------+---------------------------------+------------------+-----------------+---------------------+---------------------+
  • Query semua tabel yang termasuk dalam database adb_demo di recycle bin tabel.

    SHOW RECYCLE_BIN DATABASE adb_demo;

    Hasil sampel:

    +----------+-----------------+---------------------------------+------------------+-----------------+---------------------+---------------------+
    | 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 |
    +----------+-----------------+---------------------------------+------------------+-----------------+---------------------+---------------------+

Kembalikan tabel dari recycle bin tabel

Aturan

  • Tabel yang dikembalikan menggunakan nama sebelum dipindahkan ke recycle bin tabel.

  • Jika Anda ingin mengembalikan tabel ke database sumber tetapi database tersebut berisi tabel lain dengan nama yang sama, Anda dapat mengganti nama, menghapus, atau memindahkan tabel yang ada di database ke database lain.

  • Jika Anda mengembalikan beberapa tabel dengan nama database dan nama tabel yang sama tetapi timestamp berbeda, AnalyticDB for MySQL mengembalikan tabel dengan timestamp terbaru dan kemudian melaporkan kesalahan untuk tabel lainnya. Dalam kasus ini, Anda dapat mengganti nama, menghapus, atau memindahkan tabel yang dikembalikan ke database lain.

Sintaksis

  • Kembalikan semua tabel dari recycle bin tabel ke database sumber.

    RESTORE RECYCLE_BIN ALL;
  • Kembalikan tabel tertentu dari recycle bin tabel ke database sumber.

    RESTORE RECYCLE_BIN TABLE <Nama tabel di database ADB_RECYCLE_BIN>;

Contoh

Kembalikan tabel adb_demo_customer_1720086117277 dari recycle bin tabel.

RESTORE RECYCLE_BIN TABLE adb_demo_customer_1720086117277;

Hapus tabel dari recycle bin tabel

Sintaksis

  • Hapus semua tabel dari recycle bin tabel.

    PURGE RECYCLE_BIN ALL;
  • Hapus tabel tertentu dari recycle bin tabel.

    PURGE RECYCLE_BIN TABLE <Nama tabel di database ADB_RECYCLE_BIN>;

Contoh

Hapus tabel adb_demo_customer_1720086117277 dari recycle bin tabel.

PURGE RECYCLE_BIN TABLE adb_demo_customer_1720086117277;

Ubah periode retensi tabel di recycle bin tabel

Sintaksis

Ubah periode retensi tabel di recycle bin tabel.

SET adb_config RECYCLE_BIN_EXPIRED_TIME=<Periode retensi tabel>;
Penting

Setelah Anda mengubah periode retensi tabel, periode retensi baru hanya berlaku untuk tabel yang dihapus setelah perubahan. Periode retensi sebelumnya berlaku untuk tabel yang sudah ada di recycle bin tabel.

Contoh

Ubah periode retensi tabel di recycle bin tabel menjadi dua hari.

# Periode retensi dihitung menggunakan rumus berikut: 2 × 24 × 3600 × 1000 = 172800000. Unit: milidetik.
SET adb_config RECYCLE_BIN_EXPIRED_TIME=172800000;