一、背景说明:一个朋友需要定期把正式库的备份还原到一个测试系统中,便于系统进行测试;从需求上来讲这个需求是比较奇怪的,但是作为技术人员还是得进行配合完成相应的需求。
二、以下是整个自动回复的步骤
1、需要创建一台环境和正式数据库一样的测试库(环境变量、文件路径都需要一样)
2、正式库通过rman的方式进行备份
3、数据库备份的时候需要自动备份控制文件
4、把正式库的备份拷贝到测试库上面(路径需要一样)
5、在测试库上面启动数据库到nomount状态
6、进行控制文件的恢复,恢复完毕后启动到mount状态
7、进行数据库的restore
8、进行数据库的recover
9、通过resetlog的方式启动数据库
思路:控制文件记录着数据库的备份信息,只要还原了控制文件后面的数据库的restore和recover都可以解决,因为数据库是进行不完全恢复,所以必须通过resetlogs的方式打开
三、数据库的自动还原脚本:
1、数据库的恢复脚本
rman target / @/home/oracle/script/recover.sql log /home/oracle/script/recover
recover.sql的脚本如下:
shutdown abort; startup nomount; run{ SET DBID=1364366567 ALLOCATE CHANNEL CH1 TYPE DISK; restore controlfile from autobackup; release channel CH1 ; sql 'alter database mount'; ALLOCATE CHANNEL CH2 TYPE DISK; ALLOCATE CHANNEL CH3 TYPE DISK; restore database; recover database; release channel CH2; release channel CH3; } |
2、数据库的打开脚本
/home/oracle/script/open.sql
conn / as sysdba; alter database open resetlogs; |
以上是认为比较主要的语句,有需要完整方案的文档,还原发送QQ联系;
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
本文作者:JOHN
ORACLE技术博客:ORACLE 猎人笔记 数据库技术群:367875324 (请备注ORACLE管理 )
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++