Rumah >pangkalan data >Oracle >Bagaimana untuk memulihkan selepas memadam data jadual secara tidak sengaja dalam contoh oracle parsing delete

Bagaimana untuk memulihkan selepas memadam data jadual secara tidak sengaja dalam contoh oracle parsing delete

WBOY
WBOYke hadapan
2022-07-25 17:42:493251semak imbas

Artikel ini membawakan anda pengetahuan yang berkaitan tentang Oracle Apabila menggunakan data oracle, saya secara tidak sengaja telah memadamkan data dalam jadual dan menyerahkannya mengenai ralat pemadaman oracle kepada semua orang tentang cara memulihkan data jadual selepas memadamkannya.

Bagaimana untuk memulihkan selepas memadam data jadual secara tidak sengaja dalam contoh oracle parsing delete

Tutorial yang disyorkan: "Tutorial Video Oracle"

Pulihkan berdasarkan masa

Kaedah ini memerlukan kita mengetahui secara kasar masa apabila kenyataan padam dilaksanakan.

Soal masa sistem semasa: select to_char(sysdate,‘yyyy-mm-dd hh24:mi:ss’) from dual;

Anggapkan kenyataan padam dilaksanakan pada 2022-04-02 16:27:11 minit
delete from demo ;

Pada masa ini, data tidak boleh disoal dalam jadual. Kami tahu masa pelaksanaan padam, tolak ke hadapan 1 minit (masa pelaksanaan padam boleh sebelum, lebih kecil lebih baik, contoh ini mengambil masa 1 minit sebagai contoh), laksanakan pernyataan berikut

select * from DEMO as of timestamp to_timestamp(‘2022-04-02 16:26:11',‘yyyy-mm-dd hh24:mi:ss');

Anda boleh melihat bahawa walaupun tiada data dalam jadual demo semasa, anda boleh menanyakan data daripada jadual demo seminit yang lalu.

Pemulihan 1: Pada masa ini, anda boleh mengeksport fail sql melalui fungsi hasil pertanyaan eksport alat plsql, dan kemudian laksanakan semula pernyataan sisip dalam fail sql untuk pemulihan data.

Pemulihan 2: Jalankan sql berikut untuk pemulihan data:

flashback table DEMO to timestamp to_timestamp(‘2022-04-02 16:26:11',‘yyyy-mm-dd hh24:mi:ss');

Jika ralat ORA-08189 dilaporkan: Fungsi pergerakan baris tidak didayakan dan jadual tidak boleh dipancarkan kembali

kemudian laksanakan:

alter table DEMO enable row movement;

Selepas menambah fungsi pergerakan baris jadual, lakukan pernyataan imbas balik untuk memulihkan

Jika ralat dilaporkan: ORA-08194: Operasi jadual imbas kembali adalah tidak dibenarkan pada paparan terwujud; kemudian lulus kaedah berikut untuk mencipta jadual sementara baharu untuk pemulihan diperkenalkan.

Pulihkan 3 (buat jadual sementara baharu):

Buat jadual demo1 baharu dan masukkan data yang perlu dipulihkan

create table DEMO1 as select * from DEMO as of timestamp to_timestamp(‘2022-04-02 16:30:11',‘yyyy-mm-dd hh24:mi:ss');

Pulihkan data bagi jadual demo1 ke jadual demo

insert into DEMO select * from DEMO1 where not exists (select * from DEMO where DEMO.id=DEMO1.id);

Pulihkan 4 (pulihkan berdasarkan scn):

Soal nombor scn semasa

select current_scn from v$database;

Kurangkan nombor scn dengan jumlah tertentu, Laksanakan penyata sehingga kami dapat melihat data yang kami padamkan

select * from DEMO as of scn 166937913;

Gunakan nombor scn yang sesuai untuk melaksanakan penyata sql untuk pemulihan data

flashback table DEMO to scn 166937913;

Tutorial yang disyorkan: "Tutorial Video Oracle

Atas ialah kandungan terperinci Bagaimana untuk memulihkan selepas memadam data jadual secara tidak sengaja dalam contoh oracle parsing delete. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:jb51.net. Jika ada pelanggaran, sila hubungi admin@php.cn Padam