這是一次RAMN恢復的工作,生產(chǎn)端是Oracle 11.2.0.4 RAC,數(shù)據(jù)文件保存在文件系統(tǒng)上。災備端是Oracle11.2.0.4單實例+ASM方式保存數(shù)
這是一次RAMN恢復的工作,生產(chǎn)端是Oracle 11.2.0.4 RAC,數(shù)據(jù)文件保存在文件系統(tǒng)上。災備端是Oracle11.2.0.4單實例+ASM方式保存數(shù)據(jù)文件。檢修計劃需要將生產(chǎn)庫做一次RMAN全備,然后在災備端恢復。由于生產(chǎn)端和災備端的存儲方式不一樣,文件路徑也不一樣,所以災備端RMAN恢復的時候需要采用set newname的方式將文件路徑轉換一次。
執(zhí)行腳本如下:
run{
set newname for datafile 1 to '+DATA';
set newname for datafile 2 to '+DATA';
set newname for datafile 3 to '+DATA’;
… 500多個數(shù)據(jù)文件
restore database;
switch datafile all;
recover database;
}
在執(zhí)行到recover database 過程中出現(xiàn)錯誤,提示第545號數(shù)據(jù)文件IDX_S007.dbf創(chuàng)建失敗。
RMAN-20505: create datafile during recovery
ORA-0119: error in creating database file '/sgpmdb/oradata/u07/cmsdb/IDX_S007.dbf'
ORA-27400: file create error, unable to create file
HPUX-ia Error: 2: No such file or directory
Additional information: 1
RMAN-11003: failure during parse/execution of SQL statement: alter database recover log file '/orabak/arch/2_147320_666569930.arc'
ORA-00283: recovery session canceled due to errors
ORA-01244: unnamed datafile(s) added to control file by media recovery
ORA-01110: data file 545: '/spgmdb/oradata/u07/cmsdb/IDX_S007.dbf'
分析原因如下:
生產(chǎn)庫做完全備后又做了一些DDL操作,如添加數(shù)據(jù)文件等。 這些新的操作記錄在全備之后的歸檔日志中(/orabak/arch/2_147320_666569930.arc
)。在重演歸檔日志中創(chuàng)建數(shù)據(jù)文件的部分時找不到生產(chǎn)環(huán)境的目錄,所以報錯(HPUX-ia Error: 2: No such file or directory)
該文件被臨時記錄在了/app/oracle/product/11.2.0/db_1/dbs,但也只是控制文件中的記錄,磁盤上時沒有該文件。
第545號數(shù)據(jù)文件在控制文件中的記錄如下,不是我們預期的+DATA
SQL> select name from v$datafile where name like '%545%;
NAME
——————————————————
/app/oracle/product/11.2.0/db_1/dbs/UNAMED00545
解決方案
在RMAN下使用set newname命令先數(shù)據(jù)文件的目錄地址改為+DATA/cmsdb/datafile。然后重新restore一次該數(shù)據(jù)文件,最后switch數(shù)據(jù)文件。
run{
set newname for datafile '/app/oracle/product/11.2.0/db_1/dbs/UNNAMED00545' to '+DATA/cmsdb/datafile/IDX_S007.dbf';
restore datafile '/app/oracle/product/11.2.0/db_1/dbs/UNNAMED00545';
switch datafile '/app/oracle/product/11.2.0/db_1/dbs/UNNAMED00545';
}
也可以寫成
run{
set newname for datafile 545 to '+DATA';
restore datafile 545;
switch datafile 545;
}
輸出如下:
executing command: SET NEWNAME
Staring restore at 27-OCT-14
using channel ORA_DISK1
creating datafile file number=545 name=+DATA/cmsdb/datafile/IDX_S007.dbf
restore not done: all files read only, offline, or already restored
Finished restore at 27-OCT-14
datafile 545 switched to datafile copy
input datafile copy RECID=3615 STAMP=862057086 file name=+DATA/cmsdb/datafile/IDX_S007.dbf
本次操作使用的客戶端主機安全級別很高,,不允許用U盤復制任何文件,包括secureCRT的日志等。所有錯誤信息和屏幕輸出都是我手敲的,如果有錯誤敬請諒解。
--------------------------------------推薦閱讀 --------------------------------------
RMAN 配置歸檔日志刪除策略
Oracle基礎教程之通過RMAN復制數(shù)據(jù)庫
RMAN備份策略制定參考內容
RMAN備份學習筆記
Oracle數(shù)據(jù)庫備份加密 RMAN加密
--------------------------------------分割線 --------------------------------------
本文永久更新鏈接地址:
聲明:本網(wǎng)頁內容旨在傳播知識,若有侵權等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com