这里使用的测试环境如下:
1. 在需要恢复数据库的机子(本文中为testsvr01)上安装Oracle软件
2. 将Oracle数据库的RMAN备份文件及相应的归档日志传输到目标机子(testsvr01),
并确保oracle用户有权限访问,可以通过 chown-R oracle:oinstall /backup_dir命令
改变备份文件的属主
3. 在$ORACLE_HOME/dbs目录下编辑参数文件pfile以便于启动Oracle实例, 本文的pfile为initmydb.ora
可以在源库中通过create pfile 命令来创建pfile, 然后传到目标机子,修改相应的参数值
在pfile中, 注意以下几个参数的值
4. 确保pfile中使用到的目录已经存在, 并且属主为oracle
5. 在/home/oracle目录下创建auto_recovery.sh脚本, 并赋予可执行权限
auto_recovery.sh 内容示例:
6. 在/home/oracle目录下编辑RMAN脚本${ORACLE_SID}_rman.sql,本文为mydb_rman.sql
mydb_rman.sql内容示例:
7. 在/home/oracle目录下编辑${ORACLE_SID}_sqlplus.sql脚本, 本文为mydb_sqlplus.sql
mydb_sqlplus.sql内容示例:
8. 在/home/oracle目录下编辑用于创建控制文件的脚本${ORACLE_SID}_control.sql,本文为mydb_control.sql
mydb_control.sql内容示例:
9. 通过crontab或nohup在后台执行auto_recovery.sh脚本
nohup /home/oracle/auto_recovery.sh mydb &
注:
本文只是恢复了部分数据文件, 所以需要重建控制文件, 如果是全库恢复,可以不用重建控制文件,将本文脚本进行适当的修改???可.
要点梳理
一、在recover时, 如何自动应用归档日志
根据Oracle官方文档的介绍, 使用sqlplus实现自动recover有两种方法:
1. 使用set autorecovery on命令, 即本文中使用的方法
2. 在recover命令中使用automatic选项
二、归档日志的路径
一般来讲, recover时所需要应用的归档日志默认存在于LOG_ARCHIVE_DEST_n及LOG_ARCHIVE_FORMAT这两个初始化参数所定义的路径及文件名.如果相应的归档日志存在,Oracle可以自动应用它们.
如果目标库与源库中的路径不一样, 可以通过以下方法来修改LOG_ARCHIVE_DEST_n及LOG_ARCHIVE_FORMAT这两个参数的值
1. 修改pfile中对应参数的值
2. 使用alter system 命令修改
如果不想修改以上两个参数的值, 也可以通过以下方法来指定recover所需要用到的归档日志的路径
1. 设定LOGSOURCE参数
2. 在recover命令中使用FROM选项
--End.--