參考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;


現在就恢復完成,
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/28227.html
標籤:Oracle
