首页 > 代码库 > oracle备份恢复之recover database的四条语句区别
oracle备份恢复之recover database的四条语句区别
1 recover database using backup controlfile 本文主要介绍以下四种恢复方式的含义与区别: 1. recover database using backup controlfile 如果丢失当前控制文件,用冷备份的控制文件恢复的时候,用来告诉oracle,不要以controlfile中的scn作为恢复的终点; 2. recover database until cancel 如果丢失current/active redo的时候,手动指定终点。 3. recover database using backup controlfile until cancel; 如果丢失当前controlfile并且current/active redo都丢失,会先去自动应用归档日志,可以实现最大的恢复; 4. recover database until cancel using backup controlfile; 如果丢失当前controlfile并且current/active redo都丢失,以旧的redo中的scn为恢复终点。因为没有应用归档日志,所有会丢失数据。 要理解recover database using backup controlfile,先理解 recover database,也就是说,不加using backup controlfile的情况。 在普通的recover database 或者 recover tablespace, recover datafile时, Oracle会以当前controlfile所纪录的SCN为准,利用archive log和 redo log的redo entry, 把相关的datafile 的 block恢复到“当前controlfile所纪录的SCN” 而某些情况下,Oracle需要把数据恢复到比当前controlfile所纪录的SCN还要靠后的位置(比如说,control file是backup controlfile , 或者 controlfile是根据trace create的。),这时候,就需要用using backup controlfile. 恢复就不会受“当前controlfile所记录的SCN”的限制。这时候的限制就来自于你的语句(until time , until scn),或者可用的archive log(until cancel) ... 结果如下: 结论:
可以得出结果,如果有旧的数据库备份,在归档日志和在线日志全部保存完好的情况下,使用recover database或recover database using backup controlfile。则不丢失数据
until cancel就是不完全恢复
在线日志文件丢失: 如果正常关闭数据库,然后启动时报错: SQL> alter database open;
数据库已更改。 |
oracle备份恢复之recover database的四条语句区别