全部产品
Search
文档中心

PolarDB:Hapus Flashback

更新时间:Jul 02, 2025

PolarDB for PostgreSQL (Kompatibel dengan Oracle) tidak menyediakan log undo. Operasi yang tidak disengaja dapat mengakibatkan kehilangan data, seperti saat menjalankan pernyataan DROP TABLE. Fitur drop flashback pada PolarDB for PostgreSQL (Kompatibel dengan Oracle) memungkinkan Anda untuk dengan cepat mengembalikan tabel yang dihapus, melihat tempat sampah, serta membersihkannya guna memulihkan data.

Tindakan Pencegahan

  • Aktifkan fitur drop flashback saat menghapus tabel penting dan lakukan operasi rutin dengan hati-hati.
  • Saat fitur drop flashback diaktifkan, tabel yang dihapus dipindahkan ke mode tempat sampah. Tabel tersebut tidak benar-benar dihapus sehingga ruang disk tetap terpakai. Kami menyarankan Anda untuk membersihkan tempat sampah secara berkala agar tidak menghabiskan ruang disk dalam jumlah besar.
  • Upaya untuk menghapus dependensi dari tabel yang dihapus mungkin gagal karena tabel tersebut sebenarnya belum dihapus dan masih menggunakan dependensi tersebut.
  • Tabel yang dihapus dipindahkan ke mode recyclebin. Hindari membuat mode dengan nama recyclebinrecyclebin, karena tabel dalam mode ini akan dibersihkan oleh pernyataan purge recyclebin.
  • Saat fitur drop flashback diaktifkan, beberapa operasi tidak didukung:
    • Tabel partisi dan tabel sementara yang dihapus tidak dapat dikembalikan karena mereka benar-benar dihapus dan tidak dapat dipulihkan.
    • Pemicu acara sql_drop tidak didukung.

Parameter

ParameterTipe DataDeskripsi
polar_enable_flashback_dropBOOLMenentukan apakah akan mengaktifkan fitur drop flashback. Nilai default: OFF. Nilai valid:
  • ON
  • OFF

Sintaksis

Fitur drop flashback mendukung pernyataan SQL berikut:

  • Delete a policy
    drop table table_name;         # Pindahkan tabel ke ruang yang berjalan dalam mode tempat sampah.
    drop table table_name purge;   # Hapus tabel, yang tidak dapat dipulihkan.
  • Restore a deleted table
    flashback table table_name to before drop;                        # Kembalikan tabel yang dihapus (tabel terbaru dikembalikan jika tabel memiliki nama yang sama dengan tabel lain).
    flashback table table_name to before drop rename to table_name_1; # Kembalikan dan ubah nama tabel yang dihapus.
  • Permanently delete files from the recycle bin
    purge table table_name;
    Catatan Tabel tertua akan dihapus jika memiliki nama yang sama dengan tabel lain.
  • Clear the recycle bin
    purge recyclebin;
    Catatan Izin polar_super_user diperlukan untuk membersihkan tempat sampah.
  • View recycle bin information
    show recyclebin;

Contoh

  • Persiapkan data untuk pengujian:

    Buat tabel test1 dan tabel test2, lalu masukkan data ke dalamnya.

    CREATE TABLE test1(id int primary key, name text);
    
    CREATE TABLE test2(id int primary key, name text);
    
    INSERT INTO test1 select t,repeat('test1',1024) from generate_series(1, 10000) as t;
    
    INSERT INTO test2 select t,repeat('test2',1024) from generate_series(1, 10000) as t;
    \dt
    Output serupa ditampilkan:
             Daftar relasi
     Skema | Nama  | Tipe  |  Pemilik
    --------+-------+-------+----------
     public | test1 | tabel | postgres
     public | test2 | tabel | postgres
    (2 baris)
  • Hapus tabel dan lihat tempat sampah.
    • Hapus tabel test1 dan test2.
      DROP TABLE test1;
      
      DROP TABLE test2;
      
      \dt
      Output serupa ditampilkan:
      Tidak menemukan relasi apa pun.
    • Lihat tempat sampah.
      show recyclebin;
      Output serupa ditampilkan:
       katalog_tabel |         nama_tabel          | tipe_tabel
      ---------------+-----------------------------+------------
       postgres      | public$test1$69461331094004 | TABEL DASAR
       postgres      | public$test2$69461332967609 | TABEL DASAR
      (2 baris)
  • Kembalikan tabel yang dihapus:
    • Kembalikan tabel yang dihapus.
      FLASHBACK TABLE test1 TO BEFORE DROP;
      
      FLASHBACK TABLE test2 TO BEFORE DROP RENAME TO test3;
      
      \dt
      Output serupa ditampilkan:
         Daftar relasi
       Skema | Nama  | Tipe  |  Pemilik
      --------+-------+-------+----------
       public | test1 | tabel | postgres
       public | test3 | tabel | postgres
      (2 baris)
      Catatan Tabel test2 diubah namanya menjadi test3.
    • Lihat data yang telah dipulihkan.
      Lihat data dalam tabel test1.
      SELECT count(*) FROM test1;
      Output serupa ditampilkan:
       jumlah
      -------
       10000
      (1 baris)
      Lihat data dalam tabel test3.
      SELECT count(*) FROM test3;
      Output serupa ditampilkan:
       jumlah
      -------
       10000
      (1 baris)