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
Lepaskan: 2022-07-25 20:18:22
ke hadapan
3247 orang telah melayarinya

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');
Salin selepas log masuk

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');
Salin selepas log masuk

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

kemudian laksanakan:

alter table DEMO enable row movement;
Salin selepas log masuk

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');
Salin selepas log masuk

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);
Salin selepas log masuk

Pulihkan 4 (pulihkan berdasarkan scn):

Soal nombor scn semasa

select current_scn from v$database;
Salin selepas log masuk

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

select * from DEMO as of scn 166937913;
Salin selepas log masuk

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

flashback table DEMO to scn 166937913;
Salin selepas log masuk

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!

Label berkaitan:
sumber:jb51.net
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan