DUPLICATE概述
使用RMAN DUPLICATE命令可以在保留目標資料庫的基礎上依靠目標資料庫(TargetDatabase)的備份建立一個副本資料庫(DuplicateDatabase)。該副本即可與目標資料庫完全相同,也可僅包含目標資料庫資料表空間的一部子集。目標網站(TargetSite)以及副本網站(DuplicateSite)甚至可以在同一台機器上。
副本資料庫呢是目標資料庫的一個拷貝。可以實現如下功能比如:
測試備份和恢複過程。如,你可以從Host1複製生產資料庫到Host2,然後使用Host2上的副本資料庫實踐修複、恢複等操作,而生產資料庫則完全不受其影響
匯出資料,例如在生產資料庫上被有意無意刪除的表,然後你就可以再將其匯入生產資料庫。
需要注意的是,雖然都可以通過Duplicate命令建立,但是副本資料庫與備庫(StandbyDatabase)還是有區別地。備庫是主庫(PrimaryDatabase)的一份拷貝,你可以根據主庫的ArchivedLogs定期或不週期性更新它。如果 主庫崩潰,你還可以將其轉換為主庫使用。而副本資料庫則並非為故障切換設計,而且也不支援這種Standby恢複和故障切換。
RMAN如何建立資料庫副本
1、建立一個輔助執行個體通過RMAN必須能夠串連到目標資料庫及啟動到nomount模式下的輔助執行個體。
2、至少在輔助執行個體上分配一條輔助通道,複製的主要工作都是通過在副本網站啟動的伺服器session的輔助通道實施的。3、應用主庫的必要備份,並建立及恢複副本資料庫。
4、RMAN用戶端可以在任何地方運行,只要能夠串連到主、輔執行個體。所有可被副本網站訪問到的備份以及archived redologs都將被用於建立和恢複副本資料庫。如果副本網站與目標網站不在一起,你必須確保副本網站的備份所在路徑與主庫路徑一致,如果路徑無法保持一致,則必須保證副本網站能夠訪問到備份所在路徑。
做為複製操作的一部分,RMAN自動執行下列步驟:
1、為副本資料庫建立控制檔案。
2、Restore資料檔案到副本資料庫,並通過增量備份和Archived RedoLogs進行不完全恢複,故需要備份記錄檔。
重啟輔助執行個體,以載入伺服器端的初始化參數檔案。
3、不完全恢複後通過Resetlogs方式Open副本資料庫以重建Online RedoLogs(Duplicate...For Standby方式除外,該操作不會開啟資料庫)。
4、為副本資料庫產生一個新的,唯一的DBID(Duplicate...ForStandby方式除外,該方式不會建立新的唯一DBID)。
5、在棄置站台期間,RMAN必須進行不完全恢複,因為目標庫的Online RedoLogs並不能時時備份並應用到副本資料庫。RMAN最多也就能取到目標資料庫最近一次備份的資料恢複到副本資料庫。
RMAN可選操作
Oracle提供了一些可選操作,以滿足不同環境的不同需求,具體如下:
1、Duplicate命令可在Catalog或Nocatalog模式下運行
2、使用SKIP READONLY子句跳過唯讀資料表空間。預設情況下複製包含唯讀資料表空間。
3、通過SKIP TABLESPACE子句跳過指定資料表空間。SYSTEM資料表空間或包含復原、UNDO的資料表空間除外。
4、可以將副本資料庫建立到新網站,如果新網站的目錄結構與主相同的話,必須指定NOFILENAMECHECK 選項。
5、從傳統檔案系統複製到ASM或OMF。
6、預設情況下,DUPLICATE命令通過目標資料的最近一次備份棄置站台資料庫,並恢複到歸檔日誌中的最近一致點。另外,你也可以使用RUN命令塊,執行SET UNTIL命令,或者執行DUPLICATE命令時附帶UNTIL子句,控制RMAN將副本資料庫恢複到指定的時間點(不過,注意指定的時間點不要超出了備份的範圍)。
7、可以將副本資料庫在相同恢複目錄中註冊成一個目標資料庫,因為該副本資料庫擁有一個新的唯一的DBID。
8、在某些情況下,你可以設定副本資料庫的DB_NAME與目標資料庫DB_NAME不同,更明確的講,如果副本資料庫與目標庫在相同的OracleHome,則DB_NAME的初始化參數必須不同。如果兩者在不同的OracleHome,則副本資料庫的DB_NAME在其所在的OracleHome中必須唯一。這才是副本資料庫可以與目標庫在相同網站的真正原因。