表被修改或刪除後可以按照以下步驟恢復:
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)