windows平台的异机恢复,目录不同
1.异机环境准备
安装oracle介质
安装nbu客户端
在异机主机的host文件中添加nbu server主机和原主机信息
2.恢复spfile文件
C:>oradim -new -sid ybb SQL> startup nomount C:> rman target / RMAN> set dbid= 884218943 RMAN> run { allocate channel ch02 type 'sbt_tape' parms="ENV=(NB_ORA_CLIENT=olddb,NB_ORA_SERV=netbackup)"; restore spfile from 'c-884218943-20160628-03'; release channel ch02; } 分配的通道: ch02 通道 ch02: SID=130 设备类型=SBT_TAPE 通道ch02: Veritas NetBackup for Oracle - Release 7.6 (20141027) 启动 restore 于 19-7月 -16 通道 ch02: 正在从 AUTOBACKUP c-884218943-20160628-03 还原 spfile 通道 ch02: 从 AUTOBACKUP 还原 SPFILE 已完成 完成 restore 于 19-7月 -16 释放的通道: ch02
3.恢复控制文件
RMAN> run { 2> allocate channel ch03 type 'sbt_tape' 3> parms="ENV=(NB_ORA_CLIENT=olddb,NB_ORA_SERV=netbackup)"; 4> restore controlfile from 'c-884218943-20160629-03'; 5> release channel ch03; 6> } 分配的通道: ch03 通道 ch03: SID=63 设备类型=SBT_TAPE 通道ch03: Veritas NetBackup for Oracle - Release 7.6 (20141027) 启动 restore 于 19-7月 -16 通道 ch03: 正在还原控制文件 通道 ch03: 还原完成, 用时: 00:00:07 输出文件名=C:APPADMINISTRATORORADATAybbCONTROL01.CTL 输出文件名=C:APPADMINISTRATORORADATAybbCONTROL02.CTL 完成 restore 于 19-7月 -16 释放的通道: ch03
4.将数据库置于mount状态
RMAN> sql 'alter database mount';
5.恢复数据文件
RMAN> run{ 2> allocate channel ch01 type 'sbt_tape'; 3> SEND 'NB_ORA_SERV=netbackup,NB_ORA_CLIENT=olddb'; 4> set newname for datafile 'D:appAdministratororadataybbSYSTEM01.DBF' to 'C:appAdministratororadataybbSYSTEM01.DBF'; 5> set newname for datafile 'D:APPADMINISTRATORORADATAybbSYSAUX01.DBF' to 'C:APPADMINISTRATORORADATAybbSYSAUX01.DBF'; 6> set newname for datafile 'D:APPADMINISTRATORORADATAybbUNDOTBS01.DBF' to 'C:APPADMINISTRATORORADATAybbUNDOTBS01.DBF'; 7> set newname for datafile 'D:APPADMINISTRATORORADATAybbUSERS01.DBF' to 'C:APPADMINISTRATORORADATAybbUSERS01.DBF'; 8> set newname for datafile 'D:APPADMINISTRATORORADATAybbNNC_DATA01.DBF' to 'C:APPADMINISTRATORORADATAybbNNC_DATA01.DBF'; 9> set newname for datafile 'D:APPADMINISTRATORORADATAybbNNC_DATA02.DBF' to 'C:APPADMINISTRATORORADATAybbNNC_DATA02.DBF'; 10> set newname for datafile 'D:APPADMINISTRATORORADATAybbNNC_DATA03.DBF' to 'C:APPADMINISTRATORORADATAybbNNC_DATA03.DBF'; 11> set newname for datafile 'D:APPADMINISTRATORORADATAybbNNC_INDEX01.DBF' to 'C:APPADMINISTRATORORADATAybbNNC_INDEX01.DBF'; 12> set newname for datafile 'D:APPADMINISTRATORORADATAybbNNC_INDEX02.DBF' to 'C:APPADMINISTRATORORADATAybbNNC_INDEX02.DBF'; 13> set newname for datafile 'D:APPADMINISTRATORORADATAybbNNC_INDEX03.DBF' to 'C:APPADMINISTRATORORADATAybbNNC_INDEX03.DBF'; 14> set newname for datafile 'D:APPADMINISTRATORORADATAybbNNC_DATA0101.DBF' to 'C:APPADMINISTRATORORADATAybbNNC_DATA0101.DBF'; 15> restore database; 16> switch datafile all; 17> recover database until scn 272947828; 18> release channel ch01; 19> } 分配的通道: ch01 通道 ch01: SID=63 设备类型=SBT_TAPE 通道ch01: Veritas NetBackup for Oracle - Release 7.6 (20141027) 向通道发命令: ch01 正在执行命令: SET NEWNAME 正在执行命令: SET NEWNAME 正在执行命令: SET NEWNAME 正在执行命令: SET NEWNAME 正在执行命令: SET NEWNAME 正在执行命令: SET NEWNAME 正在执行命令: SET NEWNAME 正在执行命令: SET NEWNAME 正在执行命令: SET NEWNAME 正在执行命令: SET NEWNAME 正在执行命令: SET NEWNAME 启动 restore 于 20-7月 -16 通道 ch01: 正在开始还原数据文件备份集 通道 ch01: 正在指定从备份集还原的数据文件 通道 ch01: 将数据文件 00001 还原到 C:appAdministratororadataybbSYSTEM01.DBF 通道 ch01: 将数据文件 00002 还原到 C:APPADMINISTRATORORADATAybbSYSAUX01.DBF 通道 ch01: 将数据文件 00003 还原到 C:APPADMINISTRATORORADATAybbUNDOTBS01.DBF 通道 ch01: 将数据文件 00004 还原到 C:APPADMINISTRATORORADATAybbUSERS01.DBF 通道 ch01: 将数据文件 00005 还原到 C:APPADMINISTRATORORADATAybbNNC_DATA01.DBF 通道 ch01: 将数据文件 00006 还原到 C:APPADMINISTRATORORADATAybbNNC_DATA02.DBF 通道 ch01: 将数据文件 00007 还原到 C:APPADMINISTRATORORADATAybbNNC_DATA03.DBF 通道 ch01: 将数据文件 00008 还原到 C:APPADMINISTRATORORADATAybbNNC_INDEX01.DBF 通道 ch01: 将数据文件 00009 还原到 C:APPADMINISTRATORORADATAybbNNC_INDEX02.DBF 通道 ch01: 将数据文件 00010 还原到 C:APPADMINISTRATORORADATAybbNNC_INDEX03.DBF 通道 ch01: 将数据文件 00011 还原到 C:APPADMINISTRATORORADATAybbNNC_DATA0101.DBF 通道 ch01: 正在读取备份片段 bk_dybb_u95r99ttg_s3365_p1_t915732400 通道 ch01: 段句柄 = bk_dybb_u95r99ttg_s3365_p1_t915732400 标记 = TAG20160628T180639 通道 ch01: 已还原备份片段 1 通道 ch01: 还原完成, 用时: 00:04:56 完成 restore 于 20-7月 -16 数据文件 1 已转换成数据文件副本 输入数据文件副本 RECID=15 STAMP=917694346 文件名=C:APPADMINISTRATORORADATAybbSYSTEM01.DBF 数据文件 2 已转换成数据文件副本 输入数据文件副本 RECID=16 STAMP=917694346 文件名=C:APPADMINISTRATORORADATAybbSYSAUX01.DBF 数据文件 3 已转换成数据文件副本 输入数据文件副本 RECID=17 STAMP=917694346 文件名=C:APPADMINISTRATORORADATAybbUNDOTBS01.DBF 数据文件 4 已转换成数据文件副本 输入数据文件副本 RECID=18 STAMP=917694346 文件名=C:APPADMINISTRATORORADATAybbUSERS01.DBF 数据文件 5 已转换成数据文件副本 输入数据文件副本 RECID=19 STAMP=917694346 文件名=C:APPADMINISTRATORORADATAybbNNC_DATA01.DBF 数据文件 6 已转换成数据文件副本 输入数据文件副本 RECID=20 STAMP=917694346 文件名=C:APPADMINISTRATORORADATAybbNNC_DATA02.DBF 数据文件 7 已转换成数据文件副本 输入数据文件副本 RECID=21 STAMP=917694346 文件名=C:APPADMINISTRATORORADATAybbNNC_DATA03.DBF 数据文件 8 已转换成数据文件副本 输入数据文件副本 RECID=22 STAMP=917694346 文件名=C:APPADMINISTRATORORADATAybbNNC_INDEX01.DBF 数据文件 9 已转换成数据文件副本 输入数据文件副本 RECID=23 STAMP=917694347 文件名=C:APPADMINISTRATORORADATAybbNNC_INDEX02.DBF 数据文件 10 已转换成数据文件副本 输入数据文件副本 RECID=24 STAMP=917694347 文件名=C:APPADMINISTRATORORADATAybbNNC_INDEX03.DBF 数据文件 11 已转换成数据文件副本 输入数据文件副本 RECID=25 STAMP=917694347 文件名=C:APPADMINISTRATORORADATAybbNNC_DATA0101.DBF 启动 recover 于 20-7月 -16 正在开始介质的恢复 通道 ch01: 正在开始将归档日志还原到默认目标 通道 ch01: 正在还原归档日志 归档日志线程=1 序列=25090 通道 ch01: 正在读取备份片段 arch_dybb_u97r99ue8_s3367_p1_t915732936 通道 ch01: 段句柄 = arch_dybb_u97r99ue8_s3367_p1_t915732936 标记 = TAG20160628T181535 通道 ch01: 已还原备份片段 1 通道 ch01: 还原完成, 用时: 00:00:25 归档日志文件名=C:APPADMINISTRATORPRODUCT11.2.0DBHOME_1RDBMSARC0000025090_0818501732.0001 线程=1 序列=25090 介质恢复完成, 用时: 00:00:00 完成 recover 于 20-7月 -16 释放的通道: ch01
6.打开数据库
RMAN> alter database open resetlogs; RMAN-00571: =========================================================== RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS =============== RMAN-00571: =========================================================== RMAN-03002: alter db 命令 (在 07/20/2016 11:08:53 上) 失败 ORA-00344: 无法重新创建联机日志 'D:APPADMINISTRATORORADATAybbREDO01A.LOG' ORA-27040: 文件创建错误, 无法创建文件 OSD-04002: 无法打开文件 O/S-Error: (OS 21) 设备未就绪。
7.针对上一步出现的错误,重命名redo日志
SQL> alter database rename file 'D:APPADMINISTRATORORADATAybbREDO01A.LOG' to 'C:APPADMINISTRATORORADATAybbREDO01A.LOG'; SQL> alter database rename file 'D:APPADMINISTRATORORADATAybbREDO01B.LOG' to 'C:APPADMINISTRATORORADATAybbREDO01B.LOG'; SQL> alter database rename file 'D:APPADMINISTRATORORADATAybbREDO02A.LOG' to 'C:APPADMINISTRATORORADATAybbREDO02A.LOG'; SQL> alter database rename file 'D:APPADMINISTRATORORADATAybbREDO02B.LOG' to 'C:APPADMINISTRATORORADATAybbREDO02B.LOG'; SQL> alter database rename file 'D:APPADMINISTRATORORADATAybbREDO03A.LOG' to 'C:APPADMINISTRATORORADATAybbREDO03A.LOG'; SQL> alter database rename file 'D:APPADMINISTRATORORADATAybbREDO03B.LOG' to 'C:APPADMINISTRATORORADATAybbREDO03B.LOG';
8.重新打开数据库
RMAN> alter database open resetlogs; 数据库已打开 RMAN>