問題描述:使用scn號恢復(fù)誤刪數(shù)據(jù)
1.查詢系統(tǒng)閃回的scn值以及當前日志的scn值,因為我這個是測試,創(chuàng)建的表是在在后邊,所以scn值要大于下邊這兩個scn值,所以對我恢復(fù)數(shù)據(jù)沒有用,如果我創(chuàng)建的數(shù)據(jù)是在下邊這兩個SCN值之前,也就是比這兩個時間點SCN值小,就可以用這兩個scn用來恢復(fù)數(shù)據(jù),但是我下邊這個實驗創(chuàng)建的測試表晚,就不行了
SQL> select dbms_flashback.get_system_change_number from dual;
SQL> select current_scn from v$database;
2.創(chuàng)建測試數(shù)據(jù),
SQL> create table aa(id int,name varchar2(10),adress varchar2(10));
SQL> insert into aa 2 values(111,'steven','beijing');
SQL> commit;
3.這時候相當于數(shù)據(jù)創(chuàng)建完了,這之后的scn號碼要知道,因為上邊那兩個scn號沒有記錄這個表的信息對我沒用,如果現(xiàn)在查詢current_scn號就有用了,這里測試我也不麻煩了,文檔是參考的
SQL> select dbms_flashback.get_system_change_number from dual;
這個scn值是可以用來恢復(fù)數(shù)據(jù)的
4.刪除數(shù)據(jù)模擬情景,然后查詢不到數(shù)據(jù)。
SQL> delete from aa;
1 row deleted.
SQL> SQL> SQL> commit;
Commit complete.
5.恢復(fù)數(shù)據(jù)
SQL> select * from aa as of scn 1116916;
可以查詢到這個scn值以前的數(shù)據(jù),可以用來恢復(fù)
SQL> insert into sys.aa select * from sys.aa as of scn 1116916;
現(xiàn)在就恢復(fù)完成。
總結(jié)
以上所述是小編給大家介紹的delete誤刪數(shù)據(jù)使用SCN號恢復(fù),希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!
您可能感興趣的文章:- SqlServer2008誤操作數(shù)據(jù)(delete或者update)后恢復(fù)數(shù)據(jù)的方法