Oracle数据库RMAN恢复归档日志文件的常用方法
本帖最后由 paulyi 于 2014-2-23 15:55 编辑
Oracle数据库RMAN恢复归档日志文件的常用方法
恢复归档日志文件恢复归档文件也是使用RESTORE命令,如果只是为了在恢复数据文件后应用归档文件,那并不需要手动对归档文件进行恢复,RMAN会在RECOVER的时候自动对适当的归档进行恢复。单独恢复归档文件一般是有特别的需求,如创建了Data Guard环境,Standby端丢失了部分归档文件,必须从Primary端重新获取。或者是需要通过LogMiner对之前的归档进行分析等。恢复归档文件非常灵活,可以全部恢复归档文件,也可以精确指定恢复哪些备份的归档文件,以下是具体例子:
1. 恢复全部的归档日志文件RMAN>Restore archivelog all;
2. 恢复归档序号为20到30之间的归档文件:RMAN> RESTORE ARCHIVELOG SEQUENCE BETWEEN 20 AND 30;
3. 恢复从哪个归档日志起RMAN> restore archivelog from logseq 5;
4. 恢复7天内的归档日志RMAN> restore archivelog from time 'sysdate-7';
5. 恢复到哪个日志文件为止RMAN> restore archivelog until logseq 100;默认情况下,RMAN将归档文件恢复到初始化参数LOG_ARCHIVE_DEST_1指定的路径下,有时候我们希望将恢复出来的归档文件存储到其他路径下,而不要与当前系统正在生成的归档文件混在一起,那么可以在执行RESTORE命令前,通过SET ARCHIVELOG DESTINATION TO命令
设置归档的新路径,例如:RMAN> RUN{ 2> SET ARCHIVELOG DESTINATION TO 'F:\ORACLE\BACKUP\ARCLOG'; 3> RESTORE ARCHIVELOG SEQUENCE BETWEEN 35 AND 40; 4> }
这样,恢复出来的SEQUENCE序号为35~40的归档文件就将被存储到F:\oracle\backup\arclog目录下。同一个RUN块中允许同时出现多个SET ARCHIVELOG命令,也就是说可以通过在不同位置设置不同的归档路径的方式,将归档恢复到不同的目录,例如:RMAN> RUN{ 2> SET ARCHIVELOG DESTINATION TO 'F:\ORACLE\BACKUP\ARCLOG1'; 3> RESTORE ARCHIVELOG SEQUENCE BETWEEN 15 AND 20; 4> SET ARCHIVELOG DESTINATION TO 'F:\ORACLE\BACKUP\ARCLOG2'; 5> RESTORE ARCHIVELOG SEQUENCE BETWEEN 21 AND 30; 6> SET ARCHIVELOG DESTINATION TO 'F:\ORACLE\BACKUP\ARCLOG3'; 7> RESTORE ARCHIVELOG SEQUENCE BETWEEN 31 AND 40; 8> }