RUN {
 CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS;
 CONFIGURE CONTROLFILE AUTOBACKUP ON;
 CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO 'd:/backup/%F';
 ALLOCATE CHANNEL CH1 DEVICE TYPE DISK FORMAT 'd:/backup/%U';
 BACKUP DATABASE SKIP INACCESSIBLE FILESPERSET 10
   PLUS ARCHIVELOG FILESPERSET 20
   DELETE ALL INPUT;
 RELEASE CHANNEL CH1;
 }
 ALLOCATE CHANNEL FOR MAINTENANCE DEVICE TYPE DISK;
 CROSSCHECK BACKUPSET;
 DELETE NOPROMPT OBSOLETE;
---
这个是备份的语句。
shutdown immediate
startup mount
recover database until time '2010-10-28 17:31';
alter database open resetlogs;
---
这个是恢复到某个时间点的语句。
数据库为存档模式为什么我恢复的数据总是不对呢  比如要恢复17:31的数据,但是17:31后增加的数据都还在。在恢复得时候,是不是要把备份的文件放到某个位置哦?  谢谢解答

解决方案 »

  1.   

    flashback database 不行吗?
      

  2.   

    我就是不知道怎么搞啊 我才碰这个oracle能详细说说步骤么 谢谢
      

  3.   

    你用的是rman备份,那肯定是不行的,20:30的备份文件,是为了在系统崩掉时,能恢复到20:30这个点的数据。你要恢复到20:19分的状态,除非你在那个点有备份。要恢复到20:19的状态,你可以通过redo日志来做,看看redo以及archive方面的知识
      

  4.   

    rman肯定是可以实现这个功能得。只是我没搞懂而已。上面的备份语句里也有备份日志的部分吧?
      

  5.   


    Flashback database to timestamp to_timestamp('2010-10-28 17:31','yyyy-mm-ddhh24:mi');参考下flashback database吧:http://ssuhvs.javaeye.com/blog/642452
      

  6.   

    这个flashback倒是没试过明天我去公司试试
    那么我前面的方法是错在哪里呢
      

  7.   

    你要先用20:19之前的某个完整备份restore重建所有的数据文件,之后在recover现在你没restore文件,数据库的内容还是当前的,recover不可能为你往前回溯。
      

  8.   

    你要先用20:19之前的某个完整备份restore重建所有的数据文件----restore 可以有参数来指定恢复的是哪个文件么?能给个SQL示例么  才学,基本的都不怎么懂
      

  9.   

    好像 Flashback 只能恢复当天的数据!
      

  10.   

    你要先用20:19之前的某个完整备份restore重建所有的数据文件----restore 可以有参数来指定恢复的是哪个文件么?能给个SQL示例么   才学,基本的都不怎么懂
      

  11.   

    是不是切换到备份文件的目录  再进行restore?
      

  12.   

    to inthirties:关于这个,你说的是先restore 我试了下。但是restore语句会自动去找最近的一次备份文件进行恢复。请问怎么怎么先restore 20点的备份文件呢?这个操作执行后,再执行的recover操作 是对20:30的备份文件进行recover么?