在WINDOWS 上恢复一个DB 的步骤
Kevin Zou
2011-8-25
用户要求在搭建一个生产环境的测试环境,我想通过RESTORE 来实现。把基本的步骤记录如下。
环境:
环境的平台是WINDOWS 2008,Oracle 11GR2。
前提工作:
在生产库上做个热备,把备份集拷贝到新的服务器上,创建对应的目录。
创建DB的过程:
在新的服务器上创建密码文件:
password file:
orapwd file=orapwkbthprd.ora password=just4db8
由于目录环境不一致,需要修改pfile中的相关目录设置。修改完毕,创建spfile。
SQL> conn /as sysdba
Connected to an idle instance.
SQL> create spfile from pfile='P:\backup\pfilekbthprd.ora';
File created.
要到Windows 命令行上创建一个新的服务:
ORADIM -NEW -SID kbthprd -startup auto
注意在注册一个新的服务,要确保初始化参数文件存在,否则ORADIM会报错:
Thu Aug 25 03:20:56 2011
E:\oracle\product\11.2.0\bin\oradim.exe -startup -sid kbthdev -usrpwd * -log oradim.log -nocheck 0
Thu Aug 25 03:21:01 2011
ORA-01078: failure in processing system parameters
LRM-00109: could not open parameter file 'E:\ORACLE\PRODUCT\11.2.0\DATABASE\INITKBTHDEV.ORA'
这时可以把DB 启动到NOMOUNT 状态:
|
由于backup piece 的目录和源目录不一样,需要使用catalog命令把backup piece 加到controlfile中。否则会报错,说找不到backup piece。
RMAN> catalog backuppiece 'P:\backup\FULL_20110825_1308_1';
cataloged backup piece
backup piece handle=P:\BACKUP\FULL_20110825_1308_1 RECID=1308 STAMP=760074939
RMAN> catalog backuppiece 'P:\backup\FULL_20110825_1309_1';
cataloged backup piece
backup piece handle=P:\BACKUP\FULL_20110825_1309_1 RECID=1309 STAMP=760074944
执行RESTORE的操作:
|
恢复DATAFILE后,需要做RECOVER DB。这个步骤和恢复DATAFILE的步骤类似。
|
这个报错应该目录的变化,而且当前服务器上没有E:\ORACLE\KBTHPRD\REDO11 目录。
解决这个问题有2个方法,1) 创建缺失的目录;2) 通过ALTER 命令指向存在的目录。 本次的恢复通过方法2来实现。
在SQLPLUS中执行:
|
回到RMAN 界面执行:
MAN> alter database open resetlogs;
atabase opened
到此整个RESTORE & RECOVER 的过程完毕。
如果恢复后,需要修改DB NAME,可以通过重建CONTROLFILE文件来实现,这里不再详细列出操作步骤。
-END-