刚刚我更新了一个数据表,并且提交了。现在发现有问题,请问如何恢复到更新前的状态。我用flashback table t to TIMESTAMP to_timestamp('2011-04-08 15:00:00','yyyy-mm-dd hh24:mi:ss');试了一下,系统提示
“无法读取数据-表定义已更改”我在更新前修改了一下表t中的一个字段长度。还有其他什么方法么?谢谢。

解决方案 »

  1.   

    把时间改成修改后是可行的,我刚才试过了。可是万一我忘了怎么办呢,有没有什么更好的办法,查到我的更新时间?另外,我也看了一下flashback是一种非完全的恢复,针对这个问题,还有没有其他的方法实现。比如根据系统日志恢复?
      

  2.   

    flash table  使用的是undo 信息来闪回的, 你DDL操作以后没有UNDO 信息 当然不成功了
    建议 flash database
      

  3.   

    oracle数据表是drop 掉是还是其他,如果是drop可以通过如下恢复:1. select original_name from recyclebin where type='TABLE';2. flashback table TAB_test to before drop;如果是删除数据的可以通过scn来恢复。
      

  4.   

    有archive log吗?做time-based recovery
      

  5.   

    有没有备份没有备份但时间又超过了flash所能恢复的时间范围内。。没办法还有。。有没有在线日志呢???如果有,可以用logminer进行处理