前不久因工作需要使用RMAN异机恢复,很基础也很具有代表性和普遍性,希望对需要的人有所帮助。
具体过程如下:
先拷贝原库的口令文件和参数文件到备库。
然后使用如下脚本对原库进行备份:
run {
allocate channel d1 type disk;
allocate channel d2 type disk;
backup full database format'c:\rmanbak\date%Y%m%d_full_%d_%s_%p_%u.bak'
tag='full' include current controlfile;
sql 'alter system archive log current';
backup archivelog all format'c:\rmanbak\date%Y%m%d_archivelog_%d_%s_%p_%u.bak' delete all input;
release channel d2;
release channel d1;
}
备份完成后把这些备份文件全部拷到备库中已经事先创建好的目录C:\rmanbak\,注意一定要拷全。
由于我异机恢复的时候的数据文件是和原库不同的目录所以在恢复时使用如下的脚本:
run{
set newname for datafile 1 to"C:\ORACLE\PRODUCT\10.2.0\ORADATA\TEST\SYSTEM01.DBF";
set newname for datafile 2 to"C:\ORACLE\PRODUCT\10.2.0\ORADATA\TEST\UNDOTBS01.DBF";
set newname for datafile 3 to"C:\ORACLE\PRODUCT\10.2.0\ORADATA\TEST\SYSAUX01.DBF";
set newname for datafile 4 to"C:\ORACLE\PRODUCT\10.2.0\ORADATA\TEST\USERS01.DBF";
set newname for datafile 5 to"C:\ORACLE\PRODUCT\10.2.0\ORADATA\TEST\OEEDATA.DBF";
set newname for datafile 6 to"C:\ORACLE\PRODUCT\10.2.0\ORADATA\TEST\OEEINDEX.DBF";
set newname for datafile 7 to"C:\ORACLE\PRODUCT\10.2.0\ORADATA\TEST\SMLDATA.DBF";
set newname for datafile 8 to"C:\ORACLE\PRODUCT\10.2.0\ORADATA\TEST\SMLINDX.DBF";
set newname for datafile 9 to"C:\ORACLE\PRODUCT\10.2.0\ORADATA\TEST\MEDDATA.DBF";
set newname for datafile 10 to"C:\ORACLE\PRODUCT\10.2.0\ORADATA\TEST\MEDINDX.DBF";
set newname for datafile 11 to"C:\ORACLE\PRODUCT\10.2.0\ORADATA\TEST\LRGDATA.DBF";
set newname for datafile 12 to"C:\ORACLE\PRODUCT\10.2.0\ORADATA\TEST\LRGINDX.DBF";
restore database;
switch datafile all;
}
在执行这一步是总是报错如下:
Starting restore at 01-JUN-11
using channel ORA_DISK_1
RMAN-00571:=================================================
RMAN-00569: ===== ERROR MESSAGE STACKFOLLOWS ====
RMAN-00571:==========================================
RMAN-03002: failure of restore command at06/01/2011 21:21:28
RMAN-06026: some targets notfound - aborting restore
RMAN-06023: no backup or copy ofdatafile 3 found to restore
RMAN-06023: no backup or copy of datafile2 found to restore
RMAN-06023: no backup or copy of datafile1 found to restore
提示找不到备份集,我的备份是全备的,而且不存在拷贝不完全的情况啊,我又从原库备份了一份数据,还是不行。百思不得其解,也曾经怀疑是不是controlfile和backupset是不是不一致啊,controlfile过旧的原因呢,controlfile就是从全备中恢复过来的应该不是这个原因。最后,发现在恢复过程中RMAN提示信息,只是查找C:\RMANBAK\DATE_2013%MTEST_FULL_TEST_16_1_0GOOMADP.BAK这样一个backupset,其他的rman备份就没有查到,使用listbackup列出rman的备份集,如下:
RMAN> list backup;
备份集列表
===================
BS 关键字 类型 LV 大小 设备类型 经过时间 完成时间
------- ---- -- ---------- ----------------------- ----------
16 Full 2.53G DISK 00:03:47 11-11月-13
BP 关键字: 16 状态:AVAILABLE 已压缩: NO 标记: FULL
段名:C:\RMANBAK\DATE_2013%MTEST_FULL_TEST_16_1_0GOOMADP.BAK
备份集 16 中的数据文件列表
文件 LV 类型 Ckp SCN Ckp 时间 名称
---- -- ---- ---------- ---------- ----
1 Full 3497054673 11-11月-13C:\ORACLE_STD\PRODUCT\10.2.0\ORADATA\OEENET
CH\SYSTEM01.DBF
4 Full 3497054673 11-11月-13C:\ORACLE_STD\PRODUCT\10.2.0\ORADATA\OEENET
CH\USERS01.DBF
6 Full 3497054673 11-11月-13C:\ORACLE_STD\PRODUCT\10.2.0\ORADATA\OEEIND
EX.DBF
7 Full 3497054673 11-11月-13C:\ORACLE_STD\PRODUCT\10.2.0\ORADATA\SMLDAT
A.DBF
9 Full 3497054673 11-11月-13C:\ORACLE_STD\PRODUCT\10.2.0\ORADATA\MEDDAT
A.DBF
12 Full 3497054673 11-11月-13C:\ORACLE_STD\PRODUCT\10.2.0\ORADATA\LRGIND
X.DBF
果然其他的backupset都没有认到,使用RMAN>catalog start with 'C:\rmanbak\';手动把这些没有追加进去的backupset追加进去。
RMAN> catalog start with 'C:\rmanbak\';
搜索与样式 C:\rmanbak\ 匹配的所有文件
数据库未知文件的列表
=====================================
文件名:C:\RMANBAK\DATE_2013%MTEST_ARCHIVELOG_TEST_20_1_0KOOMALD.BAK
文件名:C:\RMANBAK\DATE_2013%MTEST_ARCHIVELOG_TEST_21_1_0LOOMALD.BAK
文件名:C:\RMANBAK\DATE_2013%MTEST_ARCHIVELOG_TEST_22_1_0MOOMANT.BAK
文件名:C:\RMANBAK\DATE_2013%MTEST_FULL_TEST_17_1_0HOOMADP.BAK
文件名:C:\RMANBAK\DATE_2013%MTEST_FULL_TEST_18_1_0IOOMAL5.BAK
文件名:C:\RMANBAK\DATE_2013%MTEST_FULL_TEST_19_1_0JOOMAL8.BAK
是否确实要将上述文件列入目录 (输入 YES 或 NO)? yes
正在编制文件目录...
目录编制完毕
已列入目录的文件的列表
=======================
文件名:C:\RMANBAK\DATE_2013%MTEST_ARCHIVELOG_TEST_20_1_0KOOMALD.BAK
文件名:C:\RMANBAK\DATE_2013%MTEST_ARCHIVELOG_TEST_21_1_0LOOMALD.BAK
文件名:C:\RMANBAK\DATE_2013%MTEST_ARCHIVELOG_TEST_22_1_0MOOMANT.BAK
文件名:C:\RMANBAK\DATE_2013%MTEST_FULL_TEST_17_1_0HOOMADP.BAK
文件名:C:\RMANBAK\DATE_2013%MTEST_FULL_TEST_18_1_0IOOMAL5.BAK
文件名:C:\RMANBAK\DATE_2013%MTEST_FULL_TEST_19_1_0JOOMAL8.BAK
再次查看ok了。
RMAN> list backup;
备份集列表
===================
BS 关键字 类型 LV 大小 设备类型 经过时间 完成时间
------- ---- -- ---------- ----------------------- ----------
16 Full 2.53G DISK 00:03:47 11-11月-13
BP 关键字: 16 状态:AVAILABLE 已压缩: NO 标记: FULL
段名:C:\RMANBAK\DATE_2013%MTEST_FULL_TEST_16_1_0GOOMADP.BAK
备份集 16 中的数据文件列表
文件 LV 类型 Ckp SCN Ckp 时间 名称
---- -- ---- ---------- ---------- ----
1 Full 3497054673 11-11月-13C:\ORACLE_STD\PRODUCT\10.2.0\ORADATA\OEENET
CH\SYSTEM01.DBF
4 Full 3497054673 11-11月-13C:\ORACLE_STD\PRODUCT\10.2.0\ORADATA\OEENET
CH\USERS01.DBF
6 Full 3497054673 11-11月-13C:\ORACLE_STD\PRODUCT\10.2.0\ORADATA\OEEIND
EX.DBF
7 Full 3497054673 11-11月-13C:\ORACLE_STD\PRODUCT\10.2.0\ORADATA\SMLDAT
A.DBF
9 Full 3497054673 11-11月-13C:\ORACLE_STD\PRODUCT\10.2.0\ORADATA\MEDDAT
A.DBF
12 Full 3497054673 11-11月-13C:\ORACLE_STD\PRODUCT\10.2.0\ORADATA\LRGIND
X.DBF
BS 关键字 大小 设备类型占用时间 完成时间
------- ---------- ----------------------- ----------
17 830.54M DISK 00:00:00 11-11月-13
BP 关键字: 17 状态:AVAILABLE 已压缩: NO 标记:TAG20131111T100012
段名:C:\RMANBAK\DATE_2013%MTEST_ARCHIVELOG_TEST_20_1_0KOOMALD.BAK
备份集 17 中的已存档日志列表
Thrd Seq 低 SCN 短时间 下一个 SCN 下一次
---- ------- ---------- ---------- ---------- ---------
1 90328 3496186914 10-11月-13 3496226142 11-11月-13
1 90329 3496226142 11-11月-13 3496266075 11-11月-13
1 90330 3496266075 11-11月-13 3496299131 11-11月-13
1 90331 3496299131 11-11月-13 3496299548 11-11月-13
1 90332 3496299548 11-11月-13 3496301290 11-11月-13
1 90333 3496301290 11-11月-13 3496301703 11-11月-13
1 90334 3496301703 11-11月-13 3496302828 11-11月-13
1 90335 3496302828 11-11月-13 3496304640 11-11月-13
1 90336 3496304640 11-11月-13 3496309269 11-11月-13
1 90337 3496309269 11-11月-13 3496349250 11-11月-13
1 90338 3496349250 11-11月-13 3496388324 11-11月-13
1 90339 3496388324 11-11月-13 3496427847 11-11月-13
1 90340 3496427847 11-11月-13 3496467668 11-11月-13
1 90341 3496467668 11-11月-13 3496506886 11-11月-13
1 90342 3496506886 11-11月-13 3496546773 11-11月-13
1 90343 3496546773 11-11月-13 3496585866 11-11月-13
1 90344 3496585866 11-11月-13 3496626275 11-11月-13
BS 关键字 大小 设备类型占用时间 完成时间
------- ---------- ----------------------- ----------
18 759.59M DISK 00:00:00 11-11月-13
BP 关键字: 18 状态:AVAILABLE 已压缩: NO 标记:TAG20131111T100012
段名:C:\RMANBAK\DATE_2013%MTEST_ARCHIVELOG_TEST_21_1_0LOOMALD.BAK
备份集 18 中的已存档日志列表
Thrd Seq 低 SCN 短时间 下一个 SCN 下一次
---- ------- ---------- ---------- ---------- ---------
1 90345 3496626275 11-11月-13 3496650977 11-11月-13
1 90346 3496650977 11-11月-13 3496688239 11-11月-13
1 90347 3496688239 11-11月-13 3496731128 11-11月-13
1 90348 3496731128 11-11月-13 3496773991 11-11月-13
1 90349 3496773991 11-11月-13 3496804613 11-11月-13
1 90350 3496804613 11-11月-13 3496810746 11-11月-13
1 90351 3496810746 11-11月-13 3496823955 11-11月-13
1 90352 3496823955 11-11月-13 3496825757 11-11月-13
1 90353 3496825757 11-11月-13 3496830485 11-11月-13
1 90354 3496830485 11-11月-13 3496832351 11-11月-13
1 90355 3496832351 11-11月-13 3496868065 11-11月-13
1 90356 3496868065 11-11月-13 3496909832 11-11月-13
1 90357 3496909832 11-11月-13 3496952274 11-11月-13
1 90358 3496952274 11-11月-13 3496994756 11-11月-13
1 90359 3496994756 11-11月-13 3497037939 11-11月-13
1 90360 3497037939 11-11月-13 3497053401 11-11月-13
1 90361 3497053401 11-11月-13 3497053423 11-11月-13
1 90362 3497053423 11-11月-13 3497060228 11-11月-13
BS 关键字 大小 设备类型占用时间 完成时间
------- ---------- ----------------------- ----------
19 36.50K DISK 00:00:00 11-11月-13
BP 关键字: 19 状态:AVAILABLE 已压缩: NO 标记:TAG20131111T100012
段名:C:\RMANBAK\DATE_2013%MTEST_ARCHIVELOG_TEST_22_1_0MOOMANT.BAK
备份集 19 中的已存档日志列表
Thrd Seq 低 SCN 短时间 下一个 SCN 下一次
---- ------- ---------- ---------- ---------- ---------
1 90363 3497060228 11-11月-13 3497060260 11-11月-13
BS 关键字 类型 LV 大小 设备类型 经过时间 完成时间
------- ---- -- ---------- ----------------------- ----------
20 Full 2.80G DISK 00:00:00 11-11月-13
BP 关键字: 20 状态:AVAILABLE 已压缩: NO 标记: FULL
段名:C:\RMANBAK\DATE_2013%MTEST_FULL_TEST_17_1_0HOOMADP.BAK
备份集 20 中的数据文件列表
文件 LV 类型 Ckp SCN Ckp 时间 名称
---- -- ---- ---------- ---------- ----
2 Full 3497054687 11-11月-13C:\ORACLE_STD\PRODUCT\10.2.0\ORADATA\OEENET
CH\UNDOTBS01.DBF
3 Full 3497054687 11-11月-13C:\ORACLE_STD\PRODUCT\10.2.0\ORADATA\OEENET
CH\SYSAUX01.DBF
5 Full 3497054687 11-11月-13C:\ORACLE_STD\PRODUCT\10.2.0\ORADATA\OEEDAT
A.DBF
8 Full 3497054687 11-11月-13C:\ORACLE_STD\PRODUCT\10.2.0\ORADATA\SMLIND
X.DBF
10 Full 3497054687 11-11月-13C:\ORACLE_STD\PRODUCT\10.2.0\ORADATA\MEDIND
X.DBF
11 Full 3497054687 11-11月-13C:\ORACLE_STD\PRODUCT\10.2.0\ORADATA\LRGDAT
A.DBF
BS 关键字 类型 LV 大小 设备类型 经过时间 完成时间
------- ---- -- ---------- ----------------------- ----------
21 Full 7.83M DISK 00:00:00 11-11月-13
BP 关键字: 21 状态:AVAILABLE 已压缩: NO 标记: FULL
段名:C:\RMANBAK\DATE_2013%MTEST_FULL_TEST_18_1_0IOOMAL5.BAK
包括的控制文件: CkpSCN: 3497060126 Ckp 时间: 11-11月-13
BS 关键字 类型 LV 大小 设备类型 经过时间 完成时间
------- ---- -- ---------- ----------------------- ----------
22 Full 80.00K DISK 00:00:00 11-11月-13
BP 关键字: 22 状态:AVAILABLE 已压缩: NO 标记: FULL
段名:C:\RMANBAK\DATE_2013%MTEST_FULL_TEST_19_1_0JOOMAL8.BAK
包含的 SPFILE: 修改时间: 09-11月-13
再次尝试restore database没有上述错误。
使用recover database完成,但报一个错误:
RMAN-06054: media recovery requestingunknown archived log for thread 1 with sequence 9 and starting SCN of 823627
recover databaseuntil sequence 90364避免了此问题,当然我们可以使用set until scn或者set until time 。来避免提醒恢复到最后一个未知的scn号。
使用sql>alter database open resetlogs;还是报错。
这个错误为ORA-00344:unable to re-create online log
使用网上提供的方法尝试:
如果数据库正常关闭:
用命令清空日志组的方法:
1. 已归档,重建该日志
SQL> alter database clearlogfile group 2;
2. 归档模式下如果没有归档
SQL> alter database clearunarchived logfile group 2
依然不行。
接着执行如下操作:
SQL> select group#,status,member fromv$logfile;
GROUP# MEMBER
---------- ------------------------------------------------------
3 C:\ORACLE_STD\PRODUCT\10.2.0\ORADATA\TEST\REDO03.LOG
2 C:\ORACLE_STD\PRODUCT\10.2.0\ORADATA\TEST\REDO02.LOG
1 C:\ORACLE_STD\PRODUCT\10.2.0\ORADATA\TEST\REDO01.LOG
SQL> selectgroup#,thread#,members,status from v$log;
GROUP# THREAD# MEMBERS STATUS
---------- ---------- --------------------------
1 1 1 CLEARING_CURRENT
3 1 1 INACTIVE
2 1 1 INACTIVE
SQL> alter database rename file'C:\ORACLE_STD\PRODUCT\10.2.0\ORADATA\TEST\R
EDO01.LOG' to'C:\ORACLE\PRODUCT\10.2.0\ORADATA\TEST\REDO01.LOG';
数据库已更改。
SQL> alter database rename file'C:\ORACLE_STD\PRODUCT\10.2.0\ORADATA\TEST\R
EDO02.LOG' to'C:\ORACLE\PRODUCT\10.2.0\ORADATA\TEST\REDO02.LOG';
数据库已更改。
SQL> alter database rename file'C:\ORACLE_STD\PRODUCT\10.2.0\ORADATA\TEST\R
EDO03.LOG' to'C:\ORACLE\PRODUCT\10.2.0\ORADATA\TEST\REDO03.LOG';
数据库已更改。
SQL> alter database open resetlogs;
alter database open resetlogs
*
第 1 行出现错误:
ORA-01092: ORACLE实例终止。强制断开连接
Fri Nov 15 14:13:52 2013
MTTR advisory is disabled becauseFAST_START_MTTR_TARGET is not set
Fri Nov 15 14:13:52 2013
ARC0: STARTING ARCH PROCESSES
Fri Nov 15 14:13:52 2013
SMON: enabling cache recovery
Fri Nov 15 14:13:52 2013
ARC2: Archival started
ARC2 started with pid=20, OS id=4156
Fri Nov 15 14:13:52 2013
Errors in filec:\oracle\product\10.2.0\admin\test\udump\test_ora_5904.trc:
ORA-00704: 引导程序进程失败
ORA-39700:必须用 UPGRADE 选项打开数据库
Fri Nov 15 14:13:52 2013
Error 704 happened during db open,shutting down database
USER: terminating instance due to error704
ARC1 started with pid=19, OS id=5352
Fri Nov 15 14:13:53 2013
ARC0: STARTING ARCH PROCESSES COMPLETE
Fri Nov 15 14:13:53 2013
ARC0: Becoming the 'no FAL' ARCH
ARC0: Becoming the 'no SRL' ARCH
Fri Nov 15 14:13:53 2013
Errors in filec:\oracle\product\10.2.0\admin\test\bdump\test_pmon_3456.trc:
ORA-00704: bootstrap process failure
Fri Nov 15 14:13:54 2013
Errors in filec:\oracle\product\10.2.0\admin\test\bdump\test_reco_4636.trc:
ORA-00704: bootstrap process failure
Fri Nov 15 14:13:54 2013
Errors in filec:\oracle\product\10.2.0\admin\test\bdump\test_mman_5880.trc:
ORA-00704: bootstrap process failure
Fri Nov 15 14:13:54 2013
Errors in filec:\oracle\product\10.2.0\admin\test\bdump\test_psp0_5936.trc:
ORA-00704: bootstrap process failure
Fri Nov 15 14:13:54 2013
Errors in filec:\oracle\product\10.2.0\admin\test\bdump\test_lgwr_4820.trc:
ORA-00704: bootstrap process failure
Fri Nov 15 14:13:54 2013
Errors in filec:\oracle\product\10.2.0\admin\test\bdump\test_smon_3068.trc:
ORA-00704: bootstrap process failure
Fri Nov 15 14:13:54 2013
Errors in filec:\oracle\product\10.2.0\admin\test\bdump\test_dbw0_5212.trc:
ORA-00704: bootstrap process failure
Fri Nov 15 14:13:54 2013
Errors in filec:\oracle\product\10.2.0\admin\test\bdump\test_ckpt_4836.trc:
ORA-00704: bootstrap process failure
这里报这个升级过程中经常报的错误,跟我数据库异机迁移版本不同可能有关系。
根据提示使用:alter database open upgrade;数据库正常打开,最后执行catupgrd.sql一切正常。