全部产品
Search
文档中心

PolarDB:Pulihkan tabel dari recycle bin tabel

更新时间:Jul 06, 2025

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

  1. 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.

  2. Jalankan pernyataan berikut untuk dengan cepat memulihkan tabel dari recycle bin tabel:

    CALL DBMS_RECYCLE.restore_table('RECYCLE_TABLE','DEST_DB','DEST_TABLE');
    Catatan

    Anda dapat menjalankan pernyataan restore_table untuk 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.

    Catatan

    Jika 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');