oracle做过个rman备份。3号是完整备份,然后4、5、6、7、8都增量备份。现在有个 sys_user表的行,被delete了几行。是今天8号发现的。现在就想恢复sys_user这个表的 7月6日18点之前的数据。应该怎么操作。rman可以查看某个表的内容吗?flashback的配置只是24小时。急需大家的帮助。

解决方案 »

  1.   

    你先根据FLASHBACK查查,在哪个时间段删除的,看数据还在FLASHBACK中?
    c参考..
    http://www.eygle.com/archives/2005/06/eoaoracle9iaeai.html
      

  2.   


    先用flashback去试图恢复下。然后不行,就在测试机上面做个全库恢复,然后导出sys_user表。
      

  3.   

    但是归档日志中有好数据,如果恢复是不是把正确的数据也恢复了。
    可否先看看就这个表 sys_user 的内容呢
      

  4.   


    看下flashback query。 可以在另一张表里把数据恢复到删除到时间点,然后找出删除的数据在插入到当前表里面。 
    1、As of timestamp 的示例:
    SQL>  alter session set nls_date_format='YYYY-MM-DD hh24:mi:ss';
    会话已更改。
    SQL> select sysdate from dual;
    SYSDATE
    -------------------
    2009-10-15 19:04:16
    SQL> select * from A;
            ID
            ----------
             2
             1
             3
             4模拟用户误操作,删除数据
    SQL> delete from A;
    已删除4行。
    SQL> commit;
    提交完成。
    SQL> select * from A;
    未选定行查看删除之前的状态:
    假设当前距离删除数据已经有5 分钟左右的话:
    SQL> select * from A as of timestamp sysdate-5/1440;
            ID
            ----------
             2
             1
             3
             4
    或者:
    SQL>select * from A as of timestamp to_timestamp('2009-10-15 19:04:16','YYYY-MM-DD hh24:mi:ss');
            ID
            ----------
             2
             1
             3
             4用Flashback Query恢复之前的数据:
    SQL>Insert into A select * from A as of timestamp to_timestamp('2009-10-15 19:04:16','YYYY-MM-DD hh24:mi:ss');
    已创建4行。
    SQL> COMMIT;
    提交完成。
    SQL> select * from A;
            ID
            ----------
             2
             1
             3
             4
    Oracle Flashback 技术 总结
    http://blog.csdn.net/tianlesoftware/archive/2009/10/16/4677378.aspx要抓紧时间,这些信息是从undo 里读出来,undo保存数据是有时间限制的,过期可能就覆盖了,那是就恢复不出来了. ------------------------------------------------------------------------------ 
    Blog: http://blog.csdn.net/tianlesoftware 
    网上资源: http://tianlesoftware.download.csdn.net 
    相关视频:http://blog.csdn.net/tianlesoftware/archive/2009/11/27/4886500.aspx 
    DBA1 群:62697716(满); DBA2 群:62697977
    DBA3 群:63306533;     聊天 群:40132017
      

  5.   

    可是我的 Flashback 功能设置时24小时内,就是oracle默认的。不知道可以不
      

  6.   

    看看这里面有你的数据吗SELECT * FROM table0 VERSIONS BETWEEN TIMESTAMP MINVALUE AND MAXVALUE;
      

  7.   

    搞错了,drop table 后是留在回收站。delete操作是记录在还原段