溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

[RMAN]異機(jī)恢復(fù)實驗

發(fā)布時間:2020-08-10 12:37:30 來源:ITPUB博客 閱讀:162 作者:恩強(qiáng)Boy 欄目:關(guān)系型數(shù)據(jù)庫

一、        準(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 ------------------


向AI問一下細(xì)節(jié)

免責(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)容。

AI