Operasi bahasa definisi data (DDL) tidak dapat dibatalkan. Sebagai contoh, jika Anda secara tidak sengaja menghapus tabel menggunakan pernyataan DROP TABLE, operasi DDL tersebut tidak dapat dibatalkan dan dapat menyebabkan kehilangan data. PolarDB menyediakan fitur recycle bin tabel yang menyimpan tabel terhapus secara sementara. Anda dapat memulihkan tabel yang terhapus secara tidak sengaja dari recycle bin tabel.
Informasi latar belakang
Untuk informasi lebih lanjut tentang fitur recycle bin tabel, lihat Recycle bin tabel.
Prasyarat
Kluster Anda menjalankan PolarDB for MySQL 8.0 dengan versi revisi 8.0.1.1.2 atau yang lebih baru.
Fitur recycle bin tabel harus diaktifkan sebelum data terhapus secara tidak sengaja. Untuk mengaktifkan fitur ini, atur parameter loose_recycle_bin kluster ke ON. Untuk informasi tentang cara mengonfigurasi nilai parameter, lihat Konfigurasikan parameter kluster dan node.
Waktu yang berlalu sejak penghapusan tabel secara tidak sengaja tidak melebihi periode retensi maksimum recycle bin tabel. Anda dapat menggunakan parameter loose_recycle_bin_retention untuk menentukan periode retensi maksimum recycle bin tabel (dalam detik). Untuk informasi tentang cara mengonfigurasi nilai parameter, lihat Konfigurasikan parameter kluster dan node.
Prosedur
Jalankan pernyataan berikut untuk melihat semua tabel dalam recycle bin tabel:
CALL DBMS_RECYCLE.show_tables();Hasil berikut dikembalikan:
+-----------------+---------------+---------------+--------------+---------------------+---------------------+ | SCHEMA | TABLE | ORIGIN_SCHEMA | ORIGIN_TABLE | RECYCLED_TIME | PURGE_TIME | +-----------------+---------------+---------------+--------------+---------------------+---------------------+ | __recycle_bin__ | __innodb_1063 | product_db | t1 | 2019-08-08 11:01:46 | 2019-08-15 11:01:46 | | __recycle_bin__ | __innodb_1064 | product_db | t2 | 2019-08-08 11:01:46 | 2019-08-15 11:01:46 | | __recycle_bin__ | __innodb_1065 | product_db | parent | 2019-08-08 11:01:46 | 2019-08-15 11:01:46 | | __recycle_bin__ | __innodb_1066 | product_db | child | 2019-08-08 11:01:46 | 2019-08-15 11:01:46 | +-----------------+---------------+---------------+--------------+---------------------+---------------------+ 4 rows in set (0.00 sec)Tabel berikut menjelaskan parameter dalam hasil yang dikembalikan.
Parameter
Deskripsi
SCHEMA
Skema recycle bin tabel.
TABLE
Nama tabel setelah tabel dipindahkan ke recycle bin tabel.
ORIGIN_SCHEMA
Skema tabel asli sebelum tabel dipindahkan ke recycle bin tabel.
ORIGIN_TABLE
Nama asli tabel.
RECYCLED_TIME
Waktu ketika tabel dipindahkan ke recycle bin tabel.
PURGE_TIME
Perkiraan waktu ketika tabel dihapus dari recycle bin.
Jalankan pernyataan berikut untuk dengan cepat memulihkan tabel dari recycle bin tabel:
CALL DBMS_RECYCLE.restore_table('RECYCLE_TABLE','DEST_DB','DEST_TABLE');CatatanAnda dapat menjalankan pernyataan
restore_tableuntuk dengan cepat memulihkan tabel dari recycle bin tabel hanya jika kluster Anda menjalankan PolarDB for MySQL 8.0 dengan versi revisi 8.0.1.1.12 atau yang lebih baru. Untuk menanyakan versi kluster Anda, lihat bagian "Query the engine version" dari topik Versi mesin.Tabel berikut menjelaskan parameter dalam pernyataan tersebut.
Parameter
Deskripsi
RECYCLE_TABLE
Nama tabel yang ingin Anda pulihkan dari recycle bin tabel.
CatatanJika Anda hanya menentukan parameter ini, tabel dipulihkan ke kondisinya sebelum dihapus.
DEST_DB
Database tujuan tempat Anda ingin memulihkan tabel.
DEST_TABLE
Nama baru tabel yang dipulihkan.
Contoh pernyataan:
CALL dbms_recycle.restore_table('__innodb_1063','testDB','testTable');