有日志文件!to:guo(还有许多) :对一个表做了Update操作,而且已经提交,现在想回到UPDATE前的状态——只是对这个表,怎么办!

解决方案 »

  1.   

    使用logminer对log文件进行分析,运行UNDO语句.
      

  2.   

    to guo(还有许多) :能具体一点么?真的很急!谢谢!
      

  3.   

    我不确信这方法可行.这种错误我也犯过:update <tbname> set atime=getdate() 少了where语句! 但幸好我有备份.据统计,DBA的错误造成数据出错占所有原因的5%左右. 一二个错误也没什么大不了.像tmx所说的,从数据逻辑上着手进行修复.
      

  4.   

    你有数据库文件的备份吗,如果有,我就有办法
    数据文件必须是你在update你这张表之前的
      

  5.   

    to flyfk961(fk) :有! how do!??
      

  6.   

    如果是在ARCHIVELOG模式下可以恢复到UPDATE之前的时间点。
      

  7.   

    刚才没看清,只是恢复某一个表恐怕只能用logminer,它只在8i才有,抱歉我还没试过。
      

  8.   

    时间点恢复应该还是可以的吧!
    1、备份当前数据库,用前一版本(脱机备份)进行替换
    2、前滚recover database until time 'yyyy-mm-dd:hh24:mi:ss'
    3、alter database open resetlogs;
    4、exp system/manager file=saved.dmp tables=(owner.tab)
    5、恢复数据库到以前的状态
    6、imp system/manager file=saved.dmp full=y commit=y buffer=64000