工作中一不小心将本不该删除/更新/插入的数据进行删除/更新/插入了,这时候一定要尽快进行恢复。
工具/原料
PL/SQL
方法/步骤
1
首先新建一张测试表TEST,里面输入记录。由于删除/更新/插入恢复步骤相同,本经验仅演示删除数据的情况。
2
删除其中1条记录,查看表中记录情况,由下图可见,记录2被删除了。
3
恢复之前我们先确定我们要恢复到的时间点,下图可以看出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');
4
下面进行表数据恢复。FLASHBACK TABLE TEST TO TIMESTAMP TO_TIMESTAMP('2018-03-07 15:33:00', 'YYYY-MM-DD HH24:MI:SS');可以看到报错了,原因是没有开启行移动。
5
开启该表的行移动。ALTER TABLE TEST ENABLE ROW MOVEMENT;
6
再次执行数据恢复。FLASHBACK TABLE TEST TO TIMESTAMP TO_TIMESTAMP('2018-03-07 15:33:00', 'YYYY-MM-DD HH24:MI:SS');然后查看数据情况,可以看到已经恢复了。
注意事项
一定要尽快恢复。