使用RMAN DUPLICATE命令可以在保留目標(biāo)數(shù)據(jù)庫的基礎(chǔ)上依靠目標(biāo)數(shù)據(jù)庫(Target Database)的備份創(chuàng)建一個副本數(shù)據(jù)庫(Duplicate Database)。該副本即可與目標(biāo)數(shù)據(jù)庫完全相同,也可僅包含目標(biāo)數(shù)據(jù)庫表空間的一部子集。目標(biāo)站點(Target Site)以及副本站點(Duplicate Site)甚至可以在同一臺機(jī)器上。哈哈,使用Duplicate命令創(chuàng)建Duplicate數(shù)據(jù)庫,所謂術(shù)業(yè)有專攻僅字面意義理解用到這里也算名有所指了吧,
副本數(shù)據(jù)庫呢是目標(biāo)數(shù)據(jù)庫的一個拷貝。言下之義即是說可以把它當(dāng)成很正式的測試數(shù)據(jù)庫,想干嘛干嘛:),比如: 測試備份和恢復(fù)過程。 導(dǎo)出數(shù)據(jù),例如在生產(chǎn)數(shù)據(jù)庫上被有意無意刪除的表,然后你就可以再將其導(dǎo)入生產(chǎn)數(shù)據(jù)庫。 再比如,你可以從Host1復(fù)制生產(chǎn)數(shù)據(jù)庫到Host2,然后使用Host2上的副本數(shù)據(jù)庫實踐修復(fù)、恢復(fù)等操作,而生產(chǎn)數(shù)據(jù)庫則完全不受其影響。
需要注意的是,雖然都可以通過Duplicate命令創(chuàng)建,但是副本數(shù)據(jù)庫與備庫(Standby Database)還是有區(qū)別地。備庫是主庫(Primary Database)的一份拷貝,你可以根據(jù)主庫的Archived Logs定期或不定期的更新它。如果主庫崩潰,你還可以將其轉(zhuǎn)換為主庫使用。而副本數(shù)據(jù)庫則并非為故障切換設(shè)計,而且也不支持這種Standby恢復(fù)和故障切換。(Duplicate命令創(chuàng)建備庫與創(chuàng)建副本庫只是語法上小有差異,但由于備庫涉及的大部分操作均與duplicate無關(guān)聯(lián),所以本章節(jié)中不會體現(xiàn),如有興趣可以自行參照:Oracle Data Guard Concepts and Administration,或者你有足夠的心耐心等俺出相關(guān)筆記,放心不出三五十年俺一定會寫成的。)
RMAN如何創(chuàng)建數(shù)據(jù)庫副本?
首先需要創(chuàng)建一個輔助實例(auxiliary instance, 至于如何創(chuàng)建嘛,本章是概述就不細(xì)致體現(xiàn)了,你要是著急想看,請翻頁)。通過RMAN必須能夠連接到目標(biāo)數(shù)據(jù)庫及啟動到nomount模式下的輔助實例。
至少在輔助實例上分配一條輔助通道,復(fù)制的主要工作都是通過在副本站點啟動的服務(wù)器session的輔助通道實施的。然后應(yīng)用主庫的必要備份,并創(chuàng)建及恢復(fù)副本數(shù)據(jù)庫。
RMAN客戶端可以在任何地方運(yùn)行,只要能夠連接到主、輔實例。所有可被副本站點訪問到的備份以及archived redo logs都將被用于創(chuàng)建和恢復(fù)副本數(shù)據(jù)庫。如果副本站點與目標(biāo)站點不在一起,你必須確保副本站點的備份所在路徑與主庫路徑一致,如果路徑無法保持一致,則必須保證副本站點能夠訪問到備份所在路徑。
如果你使用的磁盤備份,可以通過下列方式確保路徑可用: 手工復(fù)制備份源站點到遠(yuǎn)程站點的相同路徑。例如,源站點的備份文件在d:\oradata\bkp下,則復(fù)制到副本站點時也復(fù)制到d:\oradata\bkp目錄下。 手工操作備份從源站點到副本站點的新路徑下,例如,源站點的備份文件在d:\oradata\bkp下,你可以將其復(fù)制到副本站點的d:\oradata\dup2下。d:\oradata\dup2對于目標(biāo)站點和副本站點都要可訪問到,運(yùn)行Catalog命令添加這些備份到副本站點Rman備份集中。 使用NFS共享磁盤來確保遠(yuǎn)程站點在相同路徑下。
如果使用的是磁帶備份。。。。。。。。。。。。。。。。磁帶這東西咱可沒用過,如果你不想看使用說明書的話,那你就直接問上帝他老人家吧。
做為復(fù)制操作的一部分,RMAN自動執(zhí)行下列步驟: 為副本數(shù)據(jù)庫創(chuàng)建控制文件。 Restore數(shù)據(jù)文件到副本數(shù)據(jù)庫,并通過增量備份和Archived Redo Logs進(jìn)行不完全恢復(fù)。 重啟輔助實例,以加載服務(wù)器端的初始化參數(shù)文件。 不完全恢復(fù)后通過Resetlogs方式Open副本數(shù)據(jù)庫以重建Online Redo Logs(Duplicate ... For Standby方式除外,該操作不會打開數(shù)據(jù)庫)。 為副本數(shù)據(jù)庫產(chǎn)生一個新的,唯一的DBID(Duplicate ... For Standby方式除外,該方式不會創(chuàng)建新的唯一DBID)。
在創(chuàng)建副本期間,RMAN必須進(jìn)行不完全恢復(fù),因為目標(biāo)庫的Online Redo Logs并不能時時備份并應(yīng)用到副本數(shù)據(jù)庫。RMAN最多也就能取到目標(biāo)數(shù)據(jù)庫最近一次備份的數(shù)據(jù)恢復(fù)到副本數(shù)據(jù)庫。 RMAN數(shù)據(jù)庫副本:可選操作 為了避免你在創(chuàng)建副本數(shù)據(jù)庫時,每次都翻著死魚一樣的白眼盯著黑乎乎的屏幕無所事事,oracle非常用心地提供了一些選項期望能讓你每次的操作都可以不同如下: Duplicate命令可在Catalog或Nocatalog模式下運(yùn)行(關(guān)于catalog的知識你可以找找三思的另一個系列:一步一步學(xué)RMAN)。 使用SKIP READONLY子句跳過只讀表空間。默認(rèn)情況下復(fù)制包含只讀表空間。 通過SKIP TABLESPACE子句跳過指定表空間。SYSTEM表空間或包含回滾、UNDO的表空間除外。 可以將副本數(shù)據(jù)庫創(chuàng)建到新站點,如果新站點的目錄結(jié)構(gòu)與主相同的話,必須指定NOFILENAMECHECK 選項。 從傳統(tǒng)文件系統(tǒng)復(fù)制到ASM或OMF。 默認(rèn)情況下,DUPLICATE命令通過目標(biāo)數(shù)據(jù)的最近一次備份創(chuàng)建副本數(shù)據(jù)庫,并恢復(fù)到歸檔日志中的最近一致點。另外,你也可以使用RUN命令塊,執(zhí)行SET UNTIL命令,或者執(zhí)行DUPLICATE命令時附帶UNTIL子句,控制RMAN將副本數(shù)據(jù)庫恢復(fù)到指定的時間點(不過,注意指定的時間點不要超出了備份的范圍)。 可以將副本數(shù)據(jù)庫在相同恢復(fù)目錄中注冊成一個目標(biāo)數(shù)據(jù)庫,因為該副本數(shù)據(jù)庫擁有一個新的唯一的DBID。 在某些情況下,你可以設(shè)置副本數(shù)據(jù)庫的DB_NAME與目標(biāo)數(shù)據(jù)庫DB_NAME不同,更明確的講,如果副本數(shù)據(jù)庫與目標(biāo)庫在相同的Oracle Home,則DB_NAME的初始化參數(shù)必須不同。如果兩者在不同的Oracle Home,則副本數(shù)據(jù)庫的DB_NAME在其所在的Oracle Home中必須唯一。這才是副本數(shù)據(jù)庫可以與目標(biāo)庫在相同站點的真正原因。
|