oracle truncate閃回數據庫恢復


1、創建試驗表

conn scott/tiger

create table truncate_test as select * from user_objects;

select count(*) from truncate_test;

 

2、記錄truncate table 的時間,但在生產中是不知道准確的時間的只能嘗試找時間點了

SQL> select to_char(systimestamp,'yyyy-mm-dd hh24:mi:ss.FF9') from dual;

TO_CHAR(SYSTIMESTAMP,'YYYY-MM
-----------------------------
2009-11-06 17:15:18.406000000


3、截斷表
truncate table truncate_test;
select * from truncate_test;

shutdown immediate

startup mount


flashback database to timestamp
to_timestamp('2009-11-06 17:15:18','yyyy-mm-dd hh24:mi:ss');
閃回完成。

alter database open read only;

select * from scott.truncate_test;

發現數據已經找回來了,這樣就可以吧數據庫online了

4、看看在此時表是否恢復回來了,如果沒有恢復回來,重新選擇時間點

startup mount
alter database open resetlogs

select * from scott.truncate_test;

這屬於不完全恢復

出處:http://blog.163.com/card_2005/blog/static/11781036820091065501988/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM