工作中一不小心將本不該刪除/更新/插入的數據進行刪除/更新/插入了,這時候一定要盡快進行恢復。
方法/步驟
-
首先新建一張測試表TEST,里面輸入記錄。由於刪除/更新/插入恢復步驟相同,本經驗僅演示刪除數據的情況。
-
刪除其中1條記錄,查看表中記錄情況,由下圖可見,記錄2被刪除了。
-
恢復之前我們先確定我們要恢復到的時間點,下圖可以看出2018-03-07 15:33:00數據是正確的。
SELECT *
FROM TEST AS OF TIMESTAMP TO_TIMESTAMP('2018-03-07 15:33:00', 'YYYY-MM-DD HH24:MI:SS');
-
下面進行表數據恢復。
FLASHBACK TABLE TEST TO TIMESTAMP TO_TIMESTAMP('2018-03-07 15:33:00', 'YYYY-MM-DD HH24:MI:SS');
可以看到報錯了,原因是沒有開啟行移動。
-
開啟該表的行移動。
ALTER TABLE TEST ENABLE ROW MOVEMENT;
-
再次執行數據恢復。
FLASHBACK TABLE TEST TO TIMESTAMP TO_TIMESTAMP('2018-03-07 15:33:00', 'YYYY-MM-DD HH24:MI:SS');
然后查看數據情況,可以看到已經恢復了。