前不久因工作需要使用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一切正常。
