delete誤刪數據使用SCN恢復

參考51CTO博客測試

問題描述:使用scn號恢復誤刪數據日誌

1.查詢系統閃回的scn值以及當前日誌的scn值,由於我這個是測試,建立的表是在在後邊,因此scn值要大於下邊這兩個scn值,因此對我恢復數據沒有用,若是我建立的數據是在下邊這兩個SCN值以前,也就是比這兩個時間點SCN值小,就能夠用這兩個scn用來恢復數據,可是我下邊這個實驗建立的測試表晚,就不行了blog

SQL> select dbms_flashback.get_system_change_number from dual;文檔

SQL> select current_scn from v$database;get

 

 2.建立測試數據,博客

SQL> create table aa(id int,name varchar2(10),adress varchar2(10));flash

SQL> insert into aa
2 values(111,'steven','beijing');it

 

 SQL> commit;table

3.這時候至關於數據建立完了,這以後的scn號碼要知道,由於上邊那兩個scn號沒有記錄這個表的信息對我沒用,若是如今查詢current_scn號就有用了,這裏測試我也不麻煩了,文檔是參考的select

SQL> select dbms_flashback.get_system_change_number from dual;

 

 這個scn值是能夠用來恢復數據的

4.刪除數據模擬情景,而後查詢不到數據。

SQL> delete from aa;

1 row deleted.

SQL>
SQL>
SQL> commit;

Commit complete.

 

 5.恢復數據

SQL> select * from aa as of scn 1116916;

 

 能夠查詢到這個scn值之前的數據,能夠用來恢復

SQL> insert into sys.aa select * from sys.aa as of scn 1116916;

 

 

 

 如今就恢復完成。

相關文章
相關標籤/搜索