我在plsql中用delete命令删除了表中的四条数据,commit了,还能恢复吗?我急啊,如果知道请告知我,谢谢!!

解决方案 »

  1.   

    10g以上的版本可以用Flashback来恢复
      

  2.   

    你自己先google一下flashback的用法
    我没时间得走了
      

  3.   

    如果做了archive模式,那不用担心,数据肯定可以恢复,如果你的系统的undo时间保持时间比较长的话,那也没问题。你用log miner可以恢复数据,不过,用法有点复杂,步骤比较多,你网上search一下。
    如果你开了flashback,那用flashback是最省事的办法之一了
      

  4.   

    你这里是删除了数据,如果undo的数据没有被覆盖的话,可以用
    SQL> select * from tablename as of scn xxxxxxxx;
    SQL> select * from tablename as of timestamp to_timestamp('2009-08-21 18:40:00','YYYY-MM-DD HH24:MI:SS');
    这样的方式把以前的数据查出来,然后找到指定的数据,insert到你的现在的表里来。
    这个是9i也支持的,主要依赖于你的undo表空间,而不是闪回日志,所以如果flashback没有开的话,也可以用。
      

  5.   

    关于flashback的操作 见
    http://www.inthirties.com/?p=600
      

  6.   

    oracle 10g 可以,用过,但9i不知道了。
    FLASHBACK TABLE 表名 TO TIMESTAMP
     TO_TIMESTAMP('2008-04-17 13:30:00', 'YYYY-MM-DD HH24:MI:SS');
    但执行这条语句前先要执行以下语句才可以
    ALTER TABLE 表名 ENABLE ROW MOVEMENT; //允许更改时间挫
      

  7.   

    如果使用10个且启用了Flashback,那就比较简单了,如果不是的话,就只有用备份数据库来恢复了,如果没有备份的话,就只有重新输入了:)
      

  8.   


    lz这里需要的功能只是用到undo表空间,而不需要用到flashback log所以,9i也支持。