參考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;
如今就恢復完成。