您好,登錄后才能下訂單哦!
一、 準(zhǔn)備工作
1. 環(huán)境設(shè)定
源庫: IP 192.168.131.100 SID:orcl
目標(biāo)庫: IP 192.168.131.101 安裝與源庫相同版本數(shù)據(jù)庫軟件(不創(chuàng)建實例)
2. 準(zhǔn)備工作
源庫創(chuàng)建完整備份集(含控制文件、數(shù)據(jù)文件、歸檔文件)。
為簡單起見,源庫和目標(biāo)庫端目錄結(jié)構(gòu)保持一致。如果不一致,在恢復(fù)過程中則注意修改相關(guān)路徑。
二、 實驗實施
1. 主庫進(jìn)行備份
RMAN> run{
sql 'alter system archive log current';
backup database format '/backup/dbfull_%d_%u_%s.bak' plus archivelog format ' ‘/archivelog/archfull_%d_%u_%s.bak';
backup current controlfile format '/backup/ctl_%d_%T_%s.bak';}
2. 復(fù)制源庫 spfile 到目標(biāo)端相同目錄下
( 1 )源庫進(jìn)行復(fù)制
$ cd $ORACLE_HOME/dbs
$ scp spfileorcl.ora oracle@192.168.131.101:$ORACLE_HOME/dbs
( 2 )目標(biāo)庫修改 spfile
這一步不是必須的。
如果目標(biāo)庫與源庫路徑保持一致,則不需要進(jìn)行任何修改。如果路徑不一致的話,則需要保證以下路徑正確:
n Audit_file_dest : ORACLE 審計輸出的 debug 日志路徑
n Control_files :控制文件路徑
n db_recovery_file_dest : FRA 路徑(如果指定 FRA 的話)
n log_archive_dest_1 :日志歸檔路徑
注: spfile 是二進(jìn)制文件,不能直接編輯。如果要修改,則需要通過 spfile 創(chuàng)建 pfile, 然后對 pfile 進(jìn)行修改,再通過 pfile 創(chuàng)建 spfile 。
3. 目標(biāo)庫啟動 nomount
$ export $ORACLE_SID=orcl
$ sqlplus / as sysdba
SQL> startup nomount
啟動 nomount 狀態(tài)需要 spfile 。如果源庫的 spfile 沒有放在 $ORACLE_HOME/dbs 目錄下,則需要執(zhí)行 :
SQL> startup nomount from spfile=’/url/spfileorcl.ora’;
4. 使用 RMAN 還原 controlfile
$ rman target /
RMAN> restore controlfile from '/backup/ctl_ORCL_20181022_31.bak';
不管有幾個控制文件,都會被恢復(fù)到相應(yīng)路徑下。
5. 開啟數(shù)據(jù)庫到 mount 狀態(tài)
開啟數(shù)據(jù)庫到 mount 狀態(tài)需要讀取 controlfile
SQL> alter database mount;
6. 修復(fù)數(shù)據(jù)庫
在這個環(huán)境中,源庫和目標(biāo)庫的路徑保持一致,因此這里可以直接用原路徑修復(fù)。如果目標(biāo)庫與源庫路徑不同的話,則需要通過 SET NEWNAME FOR DATAFILE 命令來為數(shù)據(jù)文件重新設(shè)定路徑(注意 SET NEWNAME 必須要放在 run 塊中執(zhí)行)。
RMAN> restore database;
此時,數(shù)據(jù)文件都已經(jīng)修復(fù)到相應(yīng)路徑下
7. 恢復(fù)數(shù)據(jù)庫
RMAN> recover database;
archived log thread=1 sequence=13
RMAN-00571: ====================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ====================================================
RMAN-03002: failure of recover command at 10/22/2018 03:39:24
RMAN-06054: media recovery requesting unknown archived log for thread 1 with sequence 13 and starting SCN of 1052433
這里的報錯是正常的,因為我們創(chuàng)建的熱備份是不一致備份,源庫的歸檔過來了,但是 redo 日志沒有隨備份集過來,因此恢復(fù)數(shù)據(jù)庫肯定恢復(fù)不到原來的狀態(tài)。這個錯誤提示你想要繼續(xù)恢復(fù)的話還需要線程 1 生成的 sequence13 的 redo log 。如果你要保持一致的話,必須復(fù)制源庫的重做日志文件。
此時,數(shù)據(jù)庫已經(jīng)恢復(fù)完成了
8. 打開數(shù)據(jù)庫
SQL> alter database open resetlogs;
-------------- end ------------------
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。