Oracle中表被刪除或數據被錯誤修改後的恢復方法 .

表被修改或刪除後可以按照以下步驟恢復:
1、刪除目標表(表被錯位修改的情況,如果被刪除就沒有這步了);

2、刪除表後,可以採用如下操作:
在user_recyclebin中找到最近操作過的表名稱,然後用閃回(只能用於10G及以上版本)。
FLASHBACK TABLE TABLE_NAME TO BEFORE DROP;

3、如果是刪了或修改裏面的數據,可以先建立一個快表將刪除修改之前狀態的數據找回到這個表中:
CREATE TABLE QUICK_TABLE AS
SELECT * FROM TABLE_NAME AS OF TIMESTAMP SYSDATE-1/24 (一小時前的),減去的時間可以自己定 如:select * from TABLE_NAME  AS OF TIMESTAMP  (SYSTIMESTAMP - INTERVAL '1' MINUTE)

4.恢復後的TABLE_NAME是回收站的表不可以用,最後可以直接把QUICK_TABLE改成需要的TABLE_NAME

注意:這個恢復的QUICK_TABLE表好像不能恢復主鍵和外鍵,所有在刪除表之前最好把源表的主鍵、外鍵和索引的語句拷貝下來

 

樣例(比如表AAA內數據被錯位修改):
select * from user_recyclebin;
可以查詢到所有被刪除的記錄,從記錄中可以找到AAA,找到表名後,作如下操作
FLASHBACK TABLE AAA TO BEFORE DROP;
恢復到5個小時前
CREATE TABLE QUICK_TABLE AS SELECT * FROM AAA AS OF TIMESTAMP SYSDATE-5/24
恢復到10分鐘之前
CREATE TABLE QUICK_TABLE AS SELECT * FROM AAA AS OF TIMESTAMP  (SYSTIMESTAMP - INTERVAL '10' MINUTE)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章