RMAN高階應用之Duplicate複製資料庫(3)複製流程

junsansi發表於2007-12-05

使用rman的duplicate命令複製資料庫系列,本系列可以視為一步一步學RMAN的姊妹篇~~~~

RMAN高階應用之Duplicate複製資料庫(1)概述

RMAN高階應用之Duplicate複製資料庫(2)輔助例項


不同配置決定不同的複製的流程。

一、遠端站點相同路徑結構的複製(Duplicating a Database on a Remote Host with the Same Directory Structure)

對於這種選擇而言,操作實在太過簡單,你甚至不需要修改初始化引數檔案或者重新命名複製的資料文(可惜,做測試的話這卻不能做為我們的首選,一般測試都只有一臺機器,難道讓我再虛擬個作業系統?)如果是多臺機器的話,這種操作非常省事,步驟也很少:

1、建立輔助例項。

2Rman連線並執行duplicate命令,結束。

確實太簡單的是吧,好吧那我來給你找點麻煩,注意第2步,其執行是有幾個先決條件的。或者說偉大的oracle大人又一次下放了它高貴的權力,而給你來做出選擇,如下:

l 如果沒有配置自動分配通道的話,表忘記至少手工指定1條輔助通道。

l 表忘記指定NOFILENAMECHECK參。

l 就像前面說的,如果輔助例項並非伺服器端初始化引數檔案啟動,表忘記指定PFILE引數。更加表忘記該檔案必須在執行RMAN的客戶端上。

例如,假設你配置了自動分配通道,並且決定使用pfile啟動輔助例項,那麼在RMAN連線到目標庫和輔助例項之後,只需要執行下列:

DUPLICATE TARGET DATABASE TO dupdb

PFILE = F:oracleproduct10.2.0adminjssduppfileinit.ora

NOFILENAMECHECK;

最後,RMAN會自動以RESETLOGS方式開啟資料庫並重建REDO LOGS。竣工。

二、遠端站點不同路徑結構的複製(Duplicating a Database on a Remote Host with a Different Directory Structure)

如果副本資料庫建立在遠端站點,並且目錄結構也不一致,那麼你必須修改幾個初始化引數值以便副本資料庫的資料檔案能夠在新的目錄結構存取。這種型別的複製又可以細分成幾個小類:

1、初始化引數中重新命名複製檔案和日誌檔案,複製步驟如下:

a) 首先還是建立輔助例項。注意初始化引數的配置,按下列的方式進行一些調整。

l 瀏覽初始化引數中以_DEST結尾的引數以及包含路徑的引數,確認這些路徑對即將建立的副本資料庫有效。

l 設定DB_FILE_NAME_CONVERT引數,讓其自動轉換資料檔案路徑。

l 設定LOG_FILE_NAME_CONVERT引數,讓其自動轉換日誌檔案路徑。

所謂道有千條我取其一,除了上述方式之外呢,還有很多其它方法來指定檔案存放路徑,比如CONFIGURE AUXNAME或SET NEWNAME命令等等。不過此處是在寫初始化引數中重新命名型別的複製,就不多佔篇章了,後面有章節專門講解。感興趣的朋友不妨keep你的好奇心,往下看

b) RMAN連線並執行duplicate命令,結束。

在這裡同樣需要注意輔助通道的分配和pfile的載入(如果使用pfile的話)。

例如,我們使用自動分配通道,並且輔助例項使用伺服器端初始化引數檔案,這下dulicate命令更簡單了:

DUPLICATE TARGET DATABASE TO dupdb;

這種方式主要的工作都在建立輔助例項上。

2、在Duplicate命令中重新命名資料、日誌檔案,複製步驟如下:

a. 建立輔助例項。

b. RMAN連線執行Duplicate命令,注意此處需要加些引數如下:

l 通道,還是通道!如果沒有自動分配通道,則至少要手工指定一條輔助通道。

l 通過LOGFILE子句指定副本資料庫redo logs檔案地址大小等。

l 通過DB_FILE_NAME_CONVERT轉換原資料檔案路徑到新路徑。

l pfile,又見pfile。如果使用了pfile的話,表忘記指定pfile引數。

例如,我們使用自動分配通道,但輔助例項未使用伺服器端初始化引數檔案,手工指定日誌檔案資料檔案路徑,示例如下:

DUPLICATE TARGET DATABASE TO dupdb

PFILE = F:oracleproduct10.2.0adminjssduppfileinit.ora

DB_FILE_NAME_CONVERT=(F:oracleoradatajssweb,F:oracleoradatajssdup)

LOGFILE

'F:oracleoradatajssdupredo01.log' SIZE 20M,

'F:oracleoradatajssdupredo02.log' SIZE 20M,

'F:oracleoradatajssdupredo03.log' SIZE 20M;

3、使用SET NEWNAME命令重新命名資料檔案,複製步驟如下:

a. 建立輔助例項。

b. RMAN連線並按下列步驟執行:

l 配置通道;

l 使用SET NEWNAME命令設定資料檔案新路徑;

l Duplicate命令設定logfile,如輔助例項採用pfile要載入pfile。

本節重點是SET NEWNAME命令格式,見例:

RUN

{

# set new filenames for the datafiles

SET NEWNAME FOR DATAFILE 1 TO 'F:oracleoradatajssdupsystem01.dbf';

SET NEWNAME FOR DATAFILE 2 TO 'F:oracleoradatajssdupundotbs01.dbf';

. . .

# issue the duplicate command

DUPLICATE TARGET DATABASE TO dupdb

# create at least two online redo log groups

. . .

}

4、使用CONFIGURE AUXNAME命令重新命名資料檔案,複製步驟如下:

略與上同,不詳述,唯一不同處即是CONFIGURE AUXNAME命令格式,如例,而且configure命令是在run塊外執行的:

# configure the new desired filenames

CONFIGURE AUXNAME FOR DATAFILE 1 TO 'F:oracleoradatajssdupsystem01.dbf';

CONFIGURE AUXNAME FOR DATAFILE 2 TO 'F:oracleoradatajssdupundotbs01.dbf';

# ... add more CONFIGURE AUXNAME commands as needed

不過需要注意的是,duplicate執行完之後,推薦清除CONFIGURE AUXNAME。這樣就不會對未來的類似操作造成影響。

# clear specified auxiliary names for the datafiles

CONFIGURE AUXNAME FOR DATAFILE 1 CLEAR;

CONFIGURE AUXNAME FOR DATAFILE 2 CLEAR;

三、本地建立(Creating a Duplicate Database on the Local Host)

與第二種"遠端站點不同路徑結構的複製"有95%以上的相似性。唯一不同的是,本地建立的話需要注意DB_NAME與目標資料庫不可相同。這點主要體現在輔助例項中初始化引數的配置裡,其它的操作步驟可以完全複製第二種中介紹的各種方法,所以也就不詳述了:)

  除此之外呢,還有比如向ASM儲存系統複製,或向OMF儲存複製等等,複製流程與上基本大同小異,不過就是初始化引數檔案中設定不同的引數,或者將引數設定成不同的值罷了。

從上面那麼些廢話我們能分析一下,雖然oracle細分了這麼多型別的操作,但萬變不離其宗有2點是其核心,第1是保證輔助例項的初始化引數檔案中,檔案路徑的有效性,第2是執行duplicate時注意與輔助例項初始化引數設定的配合。上面洋洋灑灑的那一沱沱口水都是在向你舉例各種情況下duplicate命令與初始化引數設定如何有效配合。怎麼,你現在才注意到這一點?呵呵不晚不晚,馬上我們們就要開始進入實戰了:)

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

相關文章