RMAN duplicate 建立standby RAC資料庫

tolywang發表於2010-02-09


建立standby RAC資料庫 


源資料庫:    GFS RAC (Houston B2B Core DB) 
目標資料庫:  OCFS2 RAC (Mexico Juarez B2B Core DB) 

兩個資料庫使用的OS及DB Version相同 :  

Linux AS 5.3 64bit
Oracle 10.2.0.4 64bit  RAC , 2個節點

唯一不一樣的就是Cluster共享磁碟的檔案系統, 源資料庫為GFS, 目標資料庫為OCFS2 . 

目的:  要將在Houston 的B2B DB遷移到Mexico Juarez .

現狀:  Houston 到 Mexico Juarez的網路頻寬目前為6M, 還有另外一條為 15M (目前還不確定)。

 

步驟(以下為演示): 

1.在源資料庫B2B RAC節點1上檢視磁碟空間大小,建立/b2bdata2/backup 目錄用於儲存primary DB的rman備份集,
並將資料庫及歸檔以及standby要用的控制檔案備份, 指令碼如下:

hou249bbodb3111$ rman target  / 
RMAN> BACKUP DEVICE TYPE DISK FORMAT '/b2bdata2/backup/%U' DATABASE PLUS ARCHIVELOG;
RMAN> BACKUP DEVICE TYPE DISK FORMAT '/b2bdata2/backup/%U' CURRENT CONTROLFILE FOR

STANDBY;

備註: 這裡的 /b2bdata2/backup 是共享磁碟下的目錄, 檔案格式為GFS . 


2.在目標資料庫Server上安裝Standby的OCFS2 RAC系統,包括clusterware,db software,dbca建庫,這裡取同樣的db

名稱,
在Standby RAC節點1 上將資料庫shutdown,  然後對比目標庫及源庫的spfile, 最後將Standby庫置為
SQL> startup nomount

備註: 這裡使用新建庫的spfile也可以,或者複製源資料庫的spfile也可以,總之要符合production的目錄及引數設定即可。
我們打算使用手工複製歸檔的方式進行recovery ,所以整個過程不會設定Standby相關的引數。 還有,這裡的clusterware及db
software 安裝目錄可以與源資料庫不一樣 。 

 

3.在Standby RAC節點1上建立/b2bdata2/backup 同樣的目錄,複製primary db上的rman備份集到Standby節點1的這個

目錄。

備註:  這裡的 /b2bdata2/backup 是共享磁碟檔案格式 OCFS2 .

 

4.在Standby RAC節點1上tnsnames.ora 中加入連線primary DB RAC節點1的別名比如 houston_b2b .

 

5. 準備開始恢復RMAN備份集到Standby RAC節點1上, 可以先刪除Standby RAC上dbca建庫時候的初始化系統dbf文

件,在Standby上
到 /b2bdata2/backup 目錄下, 注意,Standby RAC每個節點的檔案路徑注意需要與Primary DB保持一致,也就是

說Standby RAC
要建立與Primary 上一樣的路徑(如果不一樣,需要在恢復的時候註明, 這裡設定一樣) 。


rac01sty$cd  backup/


rac01sty$ls
01l277gl_1_1  03l277i0_1_1  05l277jq_1_1 
02l277h6_1_1  04l277i9_1_1  

 

rac01sty$rman target   auxiliary /

Recovery Manager: Release 10.2.0.4.0 - Production on Wed Dec 30 05:50:35 2009

Copyright (c) 1982, 2007, Oracle.  All rights reserved.

connected to target database: wmb2bprd (DBID=1234616916)
connected to auxiliary database: wmb2bprd (not mounted)


RMAN> duplicate target database for standby nofilenamecheck; 


如遇到無法找到備份集檔案,則可執行如下命令來設定:
RMAN> CONFIGURE CHANNEL DEVICE TYPE DISK  FORMAT   '/b2bdata2/backup/%U';
(一般在target備份時已經設定過, 一般是不需要了,只要確保路徑是一致的就OK) 

如果檔案路徑較之前有較複雜的變化,可以使用set newname方式:

 這裡 +ASMDAT1 是一個ASM磁碟組, 如果是檔案系統,   可以根據實際情況設定路徑與檔名。

RMAN> run {

        set newname for datafile 1 to '+ASMDAT1';
        set newname for datafile 2 to '+ASMDAT1';
        set newname for datafile 3 to '+ASMDAT1';
        set newname for datafile 4 to '+ASMDAT1';   
       duplicate target database for standby
              nofilenamecheck;  
    }

 

6. 我們可以在執行dupliate db 的standby RAC節點1上檢視到資料庫的open_mode 是mounted standby狀態
(V$database),  同時也需要檢查一下它的alert log 。  

 

7. 現在已經在RAC Standby 節點1上實現了physical standby, 可以類似單機Standby一樣操作。 由於我們採用手工
ftp或其他方式傳輸歸檔到Standby, 所以這裡沒有設定自動傳輸歸檔的引數。  


SQL> alter database open read only;
Database altered.

SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.

SQL> startup nomount
ORACLE instance started.
Total System Global Area  339738624 bytes
Fixed Size                  1267380 bytes
Variable Size             109054284 bytes
Database Buffers          226492416 bytes
Redo Buffers                2924544 bytes

SQL> alter database mount standby database;
Database altered.

 


8.從源Primary RAC資料庫複製一部分歸檔到目標Standby資料庫,在Standby上手工進行recovery動作
SQL> recover standby database;  檢視是否可以正常recovery .  

 

 

9.由於這裡Standby是RAC結構, Standby兩臺機器重新啟動後crs預設會將database開啟為open read only模式,
Standby資料庫會不能正常recovery , 所以對於物理standby RAC來說, 我們還需要設定系統重新啟動的時候crs自動
將standby db開啟為 mount standby 狀態:

如果沒有使用Data Guard broker,CRS就無法知道角色轉換,可能就需要手工修改OCR的狀態資訊。 命令如下:

$ Srvctl modify database -d wmb2bprd -r PHYSICAL_STANDBY -s mount (standby節點1執行即可)

 


10.我們關閉Standby RAC資料庫,crs服務,然後重新啟動Standby RAC Server,如果有執行上面一步的命令, 那麼
預設情況下standby db會開啟為mout standby 狀態。 

 

11.再次複製歸檔恢復測試 。

 


12.啟用Physical Standby . 
注意: 啟用physical standby之前, 需要關閉兩個standby RAC例項, 然後在rac1上啟用資料庫並開啟 。

SQL> startup nomount 
SQL> alter database mount standby database;  
SQL> alter database activate standby database;
SQL> alter database mount;
SQL> alter database open ; 
SQL> shutdown immediate ;
SQL> startup 

確認spfile沒有問題後,在第二個Standby RAC節點 SQL> startup 

同樣, 如果沒有使用Data Guard broker,CRS就無法知道primary和standby的角色轉換,可能就需要手工
修改OCR的狀態資訊。 命令如下:

$ srvctl modify database -d wmb2bprd -r PRIMARY -s open 
(standby節點1執行即可, RAC以後開啟都會自動open) 

 

13.啟用RAC Standby後, 由於是兩個節點,可能還需要調整一下spfile中的引數, 以及節點2的redo , undo ...... 

 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/35489/viewspace-627081/,如需轉載,請註明出處,否則將追究法律責任。

相關文章