2009年4月16日 星期四

Auxiliary Database 實作

在標準的 RMAN 備份還原指令中,不外乎會指定(I)Target database:指定被備份或還原的資料庫。(II)Catalog database 或 controlfile:儲存歷史備份資訊與參數的 repository,但其中還有一個比較不常見但相當實用,被稱為 Auxiliary database 的語法。Auxiliary database 是指 duplicate(複製)一個與 Target database 完全相同的資料庫,另外也可以被使用來作為 Data Guard 中 Physical standby 資料庫的建立。此方法大大的簡化了複製資料庫或是建立 Physical standby 資料庫所需的程序與時間,也是 Oracle 官方主要建議的建置方法之一。

本文將實作透過 RMAN 的 Auxiliary 語法來複製名稱、結構與資料完全相同的資料庫。

預計目標:
將 Pri 主機上的 demo2 資料庫透過 RMAN 完整複製成 Std 主機上的 demo2 資料庫。

環境說明:
DB 版本:10gR2
主機:Pri 資料庫:demo2(Target DB)
主機:Std 資料庫:demo1(Catalog DB)、demo2(Auxiliary DB)

前置作業:
* 使用 RMAN 產生 Pri 上 demo2 的 incremental level 0 backupset
* 將 incremental level 0 backupset 由 Pri 複製至 Std 上,並確保存放路徑完全相同
* 在 Std 上建立與 Pri 檔案路徑完全相符的目錄,包含 datafile,redo log files 與 control files
* 將 Std 上 demo2 參數 log_file_name_convert 路徑設定為與 Pri 上放置 redo logs 的路徑相符,避免複製過程中 DB 找不到參數而直接將 redo logs 放置到 flash_recovery_area 路徑下
* 在 Std 上建立一個名稱為 demo2 的 instance,並將其啟動至 nomount 狀態

執行步驟
Step1:
[oracle@Std db_1]$ export ORACLE_SID=demo2

Step2:
[oracle@Std db_1]$ rman target sys/password@pdemo2 catalog rman_user/password@demo1 auxiliary /

若連線成功,會出現類似以下的訊息:
connected to target database: DEMO2 (DBID=3656776519)
connected to recovery catalog database
connected to auxiliary database: DEMO2 (not mounted)

Step3:
RMAN> RUN {
DUPLICATE TARGET DATABASE TO DEMO2
NOFILENAMECHECK;
}

待指令完成後,Std 上的 demo2 會被自動帶至 open 的狀態,即可進行連線測試。

沒有留言:

張貼留言