全部产品
Search
文档中心

PolarDB:Recycle Bin Tabel

更新时间:Jul 06, 2025

Operasi bahasa definisi data (DDL) bersifat permanen dan tidak dapat dikembalikan. Kehilangan data dapat terjadi akibat operasi yang tidak disengaja, seperti saat pengguna menjalankan perintah DROP TABLE. PolarDB menyediakan fitur recycle bin tabel untuk menyimpan tabel yang dihapus secara sementara. Anda dapat menyesuaikan periode retensi untuk pemulihan tabel tersebut.

Penting

Fitur recycle bin tabel menggunakan kapasitas penyimpanan tambahan, yang mengakibatkan biaya penyimpanan. Sesuaikan periode retensi maksimum berdasarkan kebutuhan bisnis Anda.

Prasyarat

Kluster Anda harus menjalankan salah satu versi mesin database berikut. Untuk informasi lebih lanjut tentang cara memeriksa versi mesin database kluster, lihat Versi Mesin.

  • PolarDB for MySQL 8.0.1 dengan versi revisi 8.0.1.1.2 atau lebih baru.

  • PolarDB for MySQL 8.0.2 dengan versi revisi 8.0.2.1.0 atau lebih baru.

Fitur

  • Mendaur ulang dan membersihkan tabel

    • Mendaur ulang tabel

      Saat menjalankan pernyataan DROP TABLE untuk menghapus tabel atau pernyataan DROP DATABASE untuk menghapus basis data, PolarDB hanya menyimpan objek tabel yang dihapus dan memindahkannya ke direktori tertentu di recycle bin. Objek yang tidak terkait dengan objek tabel:

      • Objek yang tidak terkait dengan tabel yang dihapus: Sistem akan menentukan apakah akan menyimpan objek berdasarkan pernyataan yang Anda jalankan. Objek ini tidak didaur ulang.

      • Objek yang melekat pada tabel dan dapat memodifikasi data tabel: Sistem menghapus objek ini, termasuk triggers dan foreign keys. Statistik kolom dipindahkan ke recycle bin bersama dengan tabel, tetapi tidak dihapus.

    • Membersihkan tabel

      Recycle bin memulai thread latar belakang untuk membersihkan tabel yang disimpan lebih lama dari periode waktu yang ditentukan oleh parameter recycle_bin_retention. Untuk tabel dengan jumlah data besar, sistem memulai thread latar belakang lain untuk membersihkan tabel ini secara asinkron.

  • Izin

    Saat kluster PolarDB dimulai, basis data bernama __recycle_bin__ diinisialisasi sebagai basis data recycle bin. Basis data __recycle_bin__ adalah basis data sistem yang tidak dapat dimodifikasi atau dihapus.

    Anda tidak dapat menjalankan pernyataan DROP TABLE pada tabel di dalam recycle bin. Namun, Anda dapat menjalankan pernyataan call dbms_recycle.purge_table('nama tabel'); untuk membersihkan tabel ini.

    Catatan

    Akun yang digunakan untuk membersihkan tabel harus memiliki izin DROP pada tabel asli dan tabel di dalam recycle bin.

  • Cara memberi nama tabel di dalam recycle bin

    Recycle bin memindahkan tabel dari basis data yang berbeda ke basis data __recycle_bin__. Tabel yang didaur ulang diberi nama dalam format unik untuk memastikan identitasnya.

    "__" + <Storage Engine> + <SE private id> 

    Tabel berikut menjelaskan parameter.

    Parameter

    Deskripsi

    Storage Engine

    Nama mesin penyimpanan.

    SE private id

    Nilai unik yang dihasilkan oleh mesin penyimpanan untuk mengidentifikasi tabel. Sebagai contoh, nilai parameter ini di InnoDB adalah table id.

  • Pendauran ulang independen

    Sebagai contoh, Anda dapat menentukan periode retensi 7 hari untuk recycle bin node utama dan periode retensi 14 hari untuk recycle bin node baca-saja.

    Catatan

    Ruang penyimpanan untuk recycle bin bergantung pada periode retensi yang Anda tentukan.

Peringatan

  • Jika basis data __recycle_bin__ dan tabel yang ingin Anda daur ulang berada di sistem file yang berbeda, operasi DROP TABLE memindahkan file di antara tablespace, yang memakan waktu.

  • Jika tabel yang ingin Anda daur ulang berada di tablespace general yang menyimpan beberapa tabel, file tablespace tidak dipindahkan saat Anda mendaur ulang salah satu tabel.

Penagihan

Fitur recycle bin tabel menggunakan kapasitas penyimpanan kluster, yang mengakibatkan biaya penyimpanan. Untuk informasi lebih lanjut, lihat Aturan penagihan untuk penyimpanan.

Penggunaan

Konfigurasikan parameter loose_recycle_bin untuk mengaktifkan atau menonaktifkan recycle bin. Setelah diaktifkan, data didaur ulang sesuai aturan untuk mendaur ulang tabel. Secara default, tabel tidak dibersihkan. Kami merekomendasikan untuk mengaktifkan pembersihan tabel guna menghindari biaya penyimpanan tambahan yang disebabkan oleh data di dalam recycle bin.

Catatan

Parameter loose_recycle_scheduler mengontrol fitur pembersihan tabel. Jika pembersihan tabel dinonaktifkan, parameter loose_recycle_bin_retention diabaikan dan data tetap berada di dalam recycle bin tanpa dihapus secara otomatis.

Parameter

Level

Deskripsi

loose_recycle_bin

Global dan sesi

Menentukan apakah akan mengaktifkan recycle bin. Nilai default: OFF. Nilai valid:

  • ON

  • OFF

loose_recycle_scheduler

Global

Menentukan apakah akan mengaktifkan thread yang digunakan untuk membersihkan recycle bin secara asinkron. Nilai default: OFF. Nilai valid:

  • ON

  • OFF

loose_recycle_bin_retention

Global

Periode retensi maksimum untuk data di dalam recycle bin. Nilai valid: 86400 hingga 1209600. Unit: detik. Nilai default: 604800. Nilai 1209600 setara dengan 14 hari, dan 604800 setara dengan 7 hari.

Penting
  • Jika loose_recycle_scheduler diatur ke ON, data di dalam recycle bin tabel dibersihkan secara otomatis berdasarkan periode retensi yang ditentukan oleh loose_recycle_bin_retention (nilai default adalah 7 hari).

  • Jika loose_recycle_scheduler diatur ke OFF, data di dalam recycle bin tabel tetap ada tanpa dibersihkan secara otomatis.

Mengelola recycle bin

PolarDB menyediakan pernyataan berikut untuk mengelola recycle bin:

  • show_tables

    Anda dapat menjalankan pernyataan berikut untuk melihat semua tabel yang disimpan sementara di dalam recycle bin:

    call dbms_recycle.show_tables()

    Contoh:

    call dbms_recycle.show_tables();
    +-----------------+---------------+---------------+--------------+---------------------+---------------------+
    | 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.

    Parameter

    Deskripsi

    SCHEMA

    Skema recycle bin.

    TABLE

    Nama tabel setelah tabel dipindahkan ke recycle bin.

    ORIGIN_SCHEMA

    Skema tabel asli sebelum tabel dipindahkan ke recycle bin.

    ORIGIN_TABLE

    Nama asli tabel.

    RECYCLED_TIME

    Waktu saat tabel dipindahkan ke recycle bin.

    PURGE_TIME

    Perkiraan waktu saat tabel dibersihkan dari recycle bin.

  • purge_table

    Metode ini digunakan untuk menghapus tabel secara manual dari recycle bin.

    call dbms_recycle.purge_table('NAMA_TABEL')
    Catatan
    • Parameter NAMA_TABEL menentukan nama tabel setelah tabel dipindahkan ke recycle bin.

    • Akun yang digunakan untuk membersihkan tabel harus memiliki izin DROP pada tabel asli dan tabel di dalam recycle bin.

    Contoh:

    mysql> call dbms_recycle.purge_table('__innodb_1063');
  • restore_table

    Anda dapat menjalankan pernyataan berikut untuk memulihkan tabel dari recycle bin:

    call dbms_recycle.restore_table('RECYCLE_TABLE','DEST_DB','DEST_TABLE');
    Catatan
    • Hanya kluster PolarDB for MySQL Edisi Kluster 8.0 dengan versi revisi 8.0.1.1.12 atau lebih baru yang mengizinkan Anda memulihkan tabel dari recycle bin dengan menjalankan pernyataan restore_table. Untuk informasi lebih lanjut tentang cara memeriksa versi, lihat Memeriksa versi mesin.

    • Untuk menjalankan pernyataan di atas, akun Anda harus memiliki izin ALTER_ACL dan DROP_ACL pada basis data __recycle_bin__ dan izin CREATE_ACL dan INSERT_ACL pada tabel tujuan.

    Tabel berikut menjelaskan parameter.

    Parameter

    Deskripsi

    TABEL_RECYCLE

    Nama tabel yang ingin Anda pulihkan dari recycle bin.

    Catatan

    Jika Anda hanya menentukan parameter ini, data tabel asli dipulihkan.

    DEST_DB

    Basis data tujuan untuk tabel yang ingin Anda pulihkan.

    DEST_TABLE

    Nama baru untuk tabel yang dipulihkan.

    Contoh:

    call dbms_recycle.restore_table('__innodb_1063','testDB','testTable');

Hubungi kami

Jika Anda memiliki pertanyaan tentang operasi DDL, hubungi kami.