环境:oracle 10 归档模式今天上午对一张业务表部分数据进行更新,后发现更新语句有问题(当初测试不到位)。
导致业务停止。
最后没有办法,把该业务表delete,然后有最初备份的数据进行了覆盖,虽然现在业务可以正常进行,
但这期间的数据都丢失了,现在想找回这些数据,应该怎么办?本人数据库水平不高,还请高人指点!

解决方案 »

  1.   

    事情已经悲剧了,用LogMiner找到那段时间的操作,然后手工弥补
      

  2.   

    -------先创建一张表,把数据闪回到你操作失误之前的时间点
    SQL> create table scott.emp_bak as select * from scott.emp as of timestamp to_timestamp('2010-12-17 14:10:20','yyyy-mm-dd hh24:mi:ss');Table created
    -----删除原表数据
    SQL> truncate table scott.emp;Table truncated----把数据从备份表还原过来
    SQL> insert into scott.emp select * from scott.emp_bak;----删除备份表
    SQL> drop table  emp_bak;
      

  3.   

    试试这个看看~
    FLASHBACK TABLE 表名  TIMESTAMP
              TO_TIMESTAMP('时间', 'YYYY-MM-DD HH24:MI:SS');ps:直接执行FLASHBACK,可能不行,先要更改一下设置:
         ALTER TABLE occ_cef ENABLE ROW MOVEMENT; 
      

  4.   

    ps:直接执行FLASHBACK,可能不行,先要更改一下设置:
      ALTER TABLE 表名 ENABLE ROW MOVEMENT;