RMAN遷移資料庫(rac or single)

lwitpub發表於2010-06-07
環境:Linux AS 5.3 Oracle 10.2.0.4 RAC; 要做兩個節點的Standby RAC 或單機的Standby.

1. 在RAC節點1上建立一個/u01/backup目錄用於儲存primary db的rman備份集。!|3e"mP"f!

[oracle@chicago_host1 stage]$ rman target /
pFX6[#o628922RMAN> BACKUP DEVICE TYPE DISK FORMAT '/u01/backup/%U' DATABASE PLUS ARCHIVELOG;
b+B5g!}3Z3`628922RMAN> BACKUP DEVICE TYPE DISK FORMAT '/u01/backup/%U' CURRENT CONTROLFILE FOR STANDBY;

2. 安裝Standby的RAC系統,包括cluster, db software, dbca建庫,取同樣的db名稱,
h.mU cs-L%L628922在 Standby RAC節點1 上將資料庫shutdown 然後置為ITPUB個人空間5_S Z+c#IK
SQL> startup nomount

3. 在RAC Standby 節點1上建立 /u01/backup 同樣的目錄,複製primary db上的rman備份集到
7[-X }Q5eD)g'k*H628922Standby節點1的這個目錄。

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

5. 準備開始恢復RMAN備份集到Standby 節點1上。
7uN0mmt+|628922rac01sty$cd  backup/

rac01sty$ls

01l277gl_1_1  03l277i0_1_1  05l277jq_1_1  listener.oraITPUB個人空間1@*~[k0~p ]
02l277h6_1_1  04l277i9_1_1  initORCL.ora  tnsnames.ora

ITPUB個人空間 m.z j8`-aROm
rac01sty$rman target sys/oracle@orcl_pri  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: ORCL (DBID=1234616916)
T%cu:`.]628922connected to auxiliary database: ORCL (not mounted)

RMAN> duplicate target database for standby nofilenamecheck; 

ITPUB個人空間C6^m-uKW;F2U:
Starting Duplicate Db at 30-DEC-09ITPUB個人空間n4}W,o4V]aG@
using target database control file instead of recovery catalog

allocated channel: ORA_AUX_DISK_1
"p)|+K3H`8`/w628922channel ORA_AUX_DISK_1: sid=149 instance=orcl1 devtype=DISK

contents of Memory Script.:
A{-|$OM4wPd628922{ITPUB個人空間1e)BMg&J!{-oh Hb5u/U
   restore clone standby controlfile;ITPUB個人空間NnVC+q8B,J Zhb
   sql clone 'alter database mount standby database';
I/W2G+yWZElC628922}
)aa5B9y!yl628922executing Memory Script

Starting restore at 30-DEC-09
C!rI2JM gP7x628922using channel ORA_AUX_DISK_1

channel ORA_AUX_DISK_1: starting datafile backupset restore
)Z2{d6{V{?Z6t628922channel ORA_AUX_DISK_1: restoring control fileITPUB個人空間Ol0D?*?
channel ORA_AUX_DISK_1: reading from backup piece /u01/backup/05l277jq_1_1ITPUB個人空間I+aD'kCvTF[J
channel ORA_AUX_DISK_1: restored backup piece 1
b sR+^_;ho#a628922piece handle=/u01/backup/05l277jq_1_1 tag=TAG20091230T143642
.Ry5k`~W4M,N/{o)v628922channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:01
3`Rr{2QH;a628922output filename=/ocfs_data/orcl/control01.ctl
-\BK*H$s5s]?)m K628922output filename=/ocfs_data/orcl/control02.ctlITPUB個人空間#{)I{P%T!Z{R;a
output filename=/ocfs_data/orcl/control03.ctl
PE:VYe#R628922Finished restore at 30-DEC-09 

sql statement: alter database mount standby database

………………………………………………

Finished Duplicate Db at 30-DEC-09

如遇到無法找到備份集檔案,則可執行如下命令來設定:
j/d:A1k](l R628922RMAN> CONFIGURE CHANNEL DEVICE TYPE DISK  FORMAT   '/ opt/oracle/stage /%U';
.ZEZ|.cn3N_628922(一般在target備份時已經設定過一般不需要了,只要確保路徑一致就OK)

6. 我們可以在執行dupliate db 的standby 節點1上檢視到資料庫V$database的open_mode 是mounted standby狀態,  檢視它的alerg log:

………………………………………………………

Switch of datafile 3 complete to datafile copyITPUB個人空間 ^N1@1u:[3xd5}b)F5H
  checkpoint is 728032ITPUB個人空間 ic#F m{5V
Switch of datafile 4 complete to datafile copyITPUB個人空間N[3@Z2~3b/}"@-j?Q
  checkpoint is 728032
A7]$w2`]}628922Switch of datafile 5 complete to datafile copyITPUB個人空間}ZjTHp7J@
  checkpoint is 728032jE:O;a,Ad}A k1?628922

7.  ok, 現在已經在RAC Standby 節點1上實現了physical standby, 可以類似單機standby一樣操作。

SQL> alter database open read only;

Database altered.

SQL> shutdown immediateITPUB個人空間"be:]N0x Mg,Ty!O
..

SQL> startup nomountITPUB個人空間Gj obr%_4e.M
..

SQL> alter database mount standby database

..

8.  如果需要啟用, 可能需要修改一些spfile中的引數,加入或修改 redo, undo 等。

9.  當RAC Standby重啟後,crs預設會自動將database開啟open read only模式,這時issue recover命令會報錯無法close database,因此,對於物理standby來說,最好使用以下命令將crs開啟設定為自動mount狀態:

srvctl modify database -d orcl -r PHYSICAL_STANDBY-s mount

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

SQL> startup nomountITPUB個人空間Gj obr%_4e.M

SQL> alter database mount standby database

SQL> alter database activate standby database;
;U#D1{ Jt~v w628922SQL> alter database mount;ITPUB個人空間%|S+[1w?Tv%X
SQL> alter database open ; ITPUB個人空間I#q%H)Nf;_(R ZA
SQL> shutdown immediate ;ITPUB個人空間&Tg6];ZSmfSk.N+e
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)

ITPUB個人空間-Z z

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

相關文章