使用rman建立standby db,資料檔案目錄結構不同需要注意的地方

djb1008發表於2010-09-08

使用RMANduplicate命令進行建立standby db,如果主庫與備庫的資料檔案,redo檔案的路徑不相同,需要設定下面三個引數:

*.db_file_name_convert='/oradata/gridctl/','/oradata/newgridctl/'

*.log_file_name_convert='/oradata/gridctl/','/oradata/newgridctl/'

*.standby_file_management=AUTO

而在oracle的官方文件中,筆者沒有找到明確指出該引數需要在哪個伺服器(主庫,備庫,主備庫)上設定的幫助內容。為了搞清楚這個問題,做了2種情況的測試:

[@more@]

1.主庫設定這3個引數,備庫沒有設定這3個引數,duplicate 操作成功,不過資料檔案和redo檔案按照omf格式建立了.

[oracle@standbydb oradata]$ sqlplus / as sysdba

SQL> show parameter db_create

NAME TYPE VALUE

------------------------------------ ----------- ------------------------------

db_create_file_dest string /oradata/newgridctl

SQL> select name from v$datafile;

NAME

--------------------------------------------------------------------------------

/oradata/newgridctl/GRIDCTL/datafile/o1_mf_system_68gffrth_.dbf

/oradata/newgridctl/GRIDCTL/datafile/o1_mf_undotbs1_68gffrtn_.dbf

/oradata/newgridctl/GRIDCTL/datafile/o1_mf_sysaux_68gffrtz_.dbf

/oradata/newgridctl/GRIDCTL/datafile/o1_mf_users_68gffrv4_.dbf

/oradata/newgridctl/GRIDCTL/datafile/o1_mf_mgmt_tab_68gffrts_.dbf

/oradata/newgridctl/GRIDCTL/datafile/o1_mf_mgmt_ecm_68gffrv5_.dbf

SQL> select member from v$logfile;

MEMBER

--------------------------------------------------------------------------------

/oradata/newgridctl/GRIDCTL/onlinelog/o1_mf_1_68gfkgft_.log

/oradata/newgridctl/GRIDCTL/onlinelog/o1_mf_2_68gfkgyv_.log

/oradata/newgridctl/GRIDCTL/onlinelog/o1_mf_3_68gfkhph_.log

我們可以看到,因為備庫沒有設定轉換引數,所以oracle使用omf格式建立新的檔名稱.

2.主庫沒有設定,備庫設定了,duplicate操作成功,資料檔案和redo檔案都按照convert引數的設定存放了.結果如下:

SQL> select name from v$datafile;

NAME

--------------------------------------------------------------------------------

/oradata/newgridctl/system01.dbf

/oradata/newgridctl/undotbs01.dbf

/oradata/newgridctl/sysaux01.dbf

/oradata/newgridctl/users01.dbf

/oradata/newgridctl/mgmt.dbf

/oradata/newgridctl/mgmt_ecm_depot1.dbf

radata/newgridctl/undotbs01.dbf

SQL> select member from v$logfile;

MEMBER

--------------------------------------------------------------------------------

/oradata/newgridctl/redo01.log

/oradata/newgridctl/redo02.log

/oradata/newgridctl/redo03.log

透過本次實驗證明了,convert引數需要在備庫上設定,而主庫上不需要設定.

Oracleduplcate操作時有點奇怪,怪在那裡呢?

1).要在主庫上執行rman的登入操作,並且auxiliary連線到備庫.

$rman target / auxiliary sys/pwdofsys@standby

2).要在主庫的rman環境裡執行duplicate 命令.

RMAN>run{duplicate target database for standby;}

3). rman的備份集檔案需要複製到備機的相同目錄(不使用主庫伺服器的備份集檔案)

4).檔名稱或者檔案路徑的修改,需要在備庫上設定三個convert引數,主庫不需要設定這些引數。

以上的這4怪,恰恰是rman建立standby db4個陷阱,跳過這四個陷阱,duplicate就順很多。

關於如何使用rman建立一個standby db,請參看筆者的另外一個文章“使用RMAN線上建立DataGuard備用庫(資料檔案不同路徑結構)”,網址為:http://djb1008.itpub.net/post/42280/505142

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

相關文章