ORACLE误删除表数据或误更新/插入数据如何恢复

工作中一不小心将本不该删除/更新/插入的数据进行删除/更新/插入了,这时候一定要尽快进行恢复。

工具/原料

 
  • PL/SQL

方法/步骤

 
  1.  

    首先新建一张测试表TEST,里面输入记录。由于删除/更新/插入恢复步骤相同,本经验仅演示删除数据的情况。

    ORACLE误删除表数据或误更新/插入数据如何恢复
  2.  

    删除其中1条记录,查看表中记录情况,由下图可见,记录2被删除了。

    ORACLE误删除表数据或误更新/插入数据如何恢复
  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');

    ORACLE误删除表数据或误更新/插入数据如何恢复
  4.  

    下面进行表数据恢复。

    FLASHBACK TABLE TEST TO TIMESTAMP TO_TIMESTAMP('2018-03-07 15:33:00', 'YYYY-MM-DD HH24:MI:SS');

    可以看到报错了,原因是没有开启行移动。

    ORACLE误删除表数据或误更新/插入数据如何恢复
  5.  

    开启该表的行移动。

    ALTER TABLE TEST ENABLE ROW MOVEMENT;

    ORACLE误删除表数据或误更新/插入数据如何恢复
  6. 6

    再次执行数据恢复。

    FLASHBACK TABLE TEST TO TIMESTAMP TO_TIMESTAMP('2018-03-07 15:33:00', 'YYYY-MM-DD HH24:MI:SS');

    然后查看数据情况,可以看到已经恢复了。

    ORACLE误删除表数据或误更新/插入数据如何恢复
     
原文地址:https://www.cnblogs.com/muhy/p/11337956.html