參考51CTO博客 問題描述:使用scn號恢復誤刪數據 1.查詢系統閃回的scn值以及當前日誌的scn值,因為我這個是測試,創建的表是在在後邊,所以scn值要大於下邊這兩個scn值,所以對我恢複數據沒有用,如果我創建的數據是在下邊這兩個SCN值之前,也就是比這兩個時間點SCN值小,就可以用這兩個sc ...
參考51CTO博客
問題描述:使用scn號恢復誤刪數據
1.查詢系統閃回的scn值以及當前日誌的scn值,因為我這個是測試,創建的表是在在後邊,所以scn值要大於下邊這兩個scn值,所以對我恢複數據沒有用,如果我創建的數據是在下邊這兩個SCN值之前,也就是比這兩個時間點SCN值小,就可以用這兩個scn用來恢複數據,但是我下邊這個實驗創建的測試表晚,就不行了
SQL> select dbms_flashback.get_system_change_number from dual;
SQL> select current_scn from v$database;
2.創建測試數據,
SQL> create table aa(id int,name varchar2(10),adress varchar2(10));
SQL> insert into aa
2 values(111,'steven','beijing');
SQL> commit;
3.這時候相當於數據創建完了,這之後的scn號碼要知道,因為上邊那兩個scn號沒有記錄這個表的信息對我沒用,如果現在查詢current_scn號就有用了,這裡測試我也不麻煩了,文檔是參考的
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;
現在就恢復完成。