Oracle 10g中的RMAN 使用程式主要關注的是將磁碟備份作為介質恢複解決方案的最佳方法。 隨著磁碟價格的下跌,大量的儲存區網路(StorageArea Network:SAN)已經在很多資料中心找到了永久的儲存空間。 隨著業務向著價格越來越便宜而容量越來越大的磁碟發展,對RMAN的功能(如Flashback)進行了升級,從而可以最有效利用可用儲存空間。
RMAN 備份公用程式是按邏輯執行的過程,而寫入到磁碟的操作正是Oracle 資料庫所擅長的工作。因此,當Oracle 資料庫開始改進磁碟寫入功能時,RDBMS也會做相應的工作來改進效能。
但是在許多情況下,資料庫的大小及其位置都使得它無法備份到磁碟。或者仍然存在要簡曆資料副本或者離站歸檔的業務需求。因此還是需要寫入到老式的磁帶裝置。
Oracle 資料庫的磁帶備份需要第三方的輔助裝置,這主要是因為市場上流行的連續介質子系統具有完全不同的性質。 RMAN 開發人員通常使用那些大供應商提供的可讀寫磁帶產品,而不去嘗試這些不同類型的磁帶裝置的不同系統調用。
Oracle 擁有自己的介質管理軟體解決方案,稱為 Oracle 安全備份(Oracle Secure Backup: OSB)。 OSB 是完全整合的,RMAN 到磁碟的解決方案,它不需要任何第三方供應商的軟體外掛程式,但是OSB 不成熟。
一. 使用磁帶備份的原因
第一個理由是由於資料庫的大小。現在的資料庫平均大小已經達到100GB,並且這個資料還在繼續增加。資料庫的大小決定了是否需要執行磁帶備份操作。即使磁碟價格在迅速下降,但購買很多磁碟需要的花費很大。 磁碟備份的優點在於快速恢複,而磁碟的備份與還原相對較慢。
第二個理由是易管理性。通常,全企業備份策略的實現和執行是由中央系統上的人員集中管理的,這樣節省了備份的規模和開支,公司也有能力買大容量的磁帶盒式裝置來儲存更多的資料。
第三個理由:可移植性。 為了歸檔和避免災難,可以很容易的將一堆磁帶離站移動,而硬碟則無法這麼方便的傳輸。
集中備份資源的缺點:會導致備份複雜話,尤其是Oracle 資料庫的複雜化。 Oracle資料檔案,記錄檔和控制檔案的複雜性意味著我們不能簡單的執行一個OS 作業。讓它在空閑時間複製檔案。 相反,我們必須使資料庫做好執行備份的操作,然後通知開始複製,最後重新設定資料庫。
使用RMAN可以避免這個資料庫的配置,備份操作可以發生在任何時候,任何情況下,不過,要將備份寫入集中的磁帶備份位置,就必須執行一些特殊的RMAN 配置。
二. RMAN 和 介質管理器 概述
通過使用介質管理器,RMAN將資料備份到磁帶上。 介質管理器(media manager:MM)是由第三方軟體商提供的,它將資料區塊中的資料流從RMAN通道進程傳遞到相應的磁帶中。 通常,介質伺服器位於一個企業網中。 介質管理伺服器(Media management Server)是一個集中化系統,在這裡可以處理全企業的磁帶備份操作。
電腦系統必須安裝了介質管理(MM)用戶端軟體才能使用介質管理器。介質管理用戶端軟體可以串連MM伺服器,並且通過網路傳輸資料。
如果RMAN要使用MM伺服器,還需要另外的軟體組件。 安裝用戶端軟體之後,我們還必須為介質管理器安裝Oracle 模組。 Oracle 模組(OracleModule)是一個用於Oracle RDMBS 的軟體外掛程式,它可以串連RMAN與用戶端管理軟體,後者可以把資料傳送到MM伺服器。 Oracle 的這個外掛程式也稱為介質管理庫(Media management Library: MML).
2.1 介質管理器目錄
介質管理器是我們使用的整個備份系統中的一個獨立子系統。它有三個組件:與Oracle 結合的介質管理庫(MML),介質管理用戶端 和 介質管理伺服器。MM 伺服器有多種組件,這些組件的規範由供應商提供,所有的MM伺服器都必須具有一些相同的組件。
介質管理器目錄是MM伺服器上的資訊資料庫,它儲存了關於物理磁帶本身,磁帶的存取權限 和 磁帶儲存內容的相關資訊。 備份完成時,介質管理器目錄則記錄RMAN檔案控制代碼,控制代碼(Handle)是使用RMAN執行備份操作時建立的備份片名稱。 如果執行磁碟備份操作,控制代碼就是物理檔案名稱。
如果執行磁帶備份,介質管理器目錄中使用的控制代碼就是備份所在的磁帶位置。
RMAN 完成磁帶備份操作時會向管理器提供控制代碼名,介質管理器把該控制代碼記錄在目錄中。需要執行還原作業時,RMAN會基於自身的目錄向介質管理器請求指定的控制代碼。隨後,介質管理器尋找這個控制代碼,將該控制代碼與指定磁帶關聯在一起,同時判斷磁帶是否有效。 如果磁帶有效,介質管理器會使用這個磁帶,並且開始將資料流傳送回RMAN,這樣就可以重新構建資料檔案。
2.2 介質管理器的其他軟體組件
除了 介質管理器目錄 以外,MM 管理器還包含兩個基本組件:
(1) 裝置代理程式程式(Device agent):裝置代理程式程式是負責使用實際磁帶裝置並在該裝置上傳送資料的組件
(2) 自動機器介面(Robotic Interface): 自動機器介面控制所有自動機器的軟體,這些自動機器負責在磁帶滿時或在請求寫入已填滿的磁帶時更換磁帶。
Oracle 中的RMAN 不瞭解這些組件的存在。 RMAN 只是簡單地把命令請求發送給MML,隨後MM 軟體會處理相應的所有事件。 不過,由於備份和恢複的成功取決於這些組件,所以熟悉這些軟體組件也是至關重要的。使用RMAN出現的問題大多數都與裝置代理程式程式或自動機器介面有關,但從RMAN 介面幾乎察覺不到這些問題。
2.3 介質管理庫(MML)
MML 是一個庫檔案,它將RMAN的一致性的備份或還原請求解釋為在據誒是管理伺服器上的具體的系統調用,以實現要求的操作。 MML 與 MM 用戶端軟體和MM 伺服器軟體一樣是由同一個供應商提供的,但是我們需要單獨購買MML 和取得許可。
首次分配磁帶通道時,MML 作為一個整合的庫檔案載入到Oracle 記憶體空間,它是Oracle RDBMS 軟體的邏輯部分,因此RMAN可以產生正確的MM用戶端軟體調用。 這個整合實際上非常簡單:分配磁帶通道時,Oracle 載入一個名為libobk.so 的檔案。 這個檔案位於ORACLE_HOM/BIN 目錄中,它只是一個要使用的MML 檔案的符號串連。 在Windows平台上,Oracle 會在搜尋路徑中尋找一個名為orasbt.dll 的庫檔案。 不論是哪一種介質管理器,在介質管理DDL 檔案都名為: orasbt.dll, 介質管理器通常將其寫入到WINDOWS/system32 目錄中。 如果這個檔案沒有位於該目錄中,在系統路徑環境變數中有一個能夠尋找到orasbt.DLL 檔案的搜尋路徑。
樣本: 使用Oracle 預設SBT 介面測試磁帶通道
RMAN> run
2> {
3> allocate channel c1 type 'sbt_tape'
4> PARMS="SBT_LIBRARY=oracle.disksbt,
5> ENV=(BACKUP_DIR=f:/BACKUP/)";
6> BACKUP DATABASE FORMAT='%U';}
釋放的通道: ORA_DISK_1
分配的通道: c1
通道 c1: SID=21 裝置類型=SBT_TAPE
通道c1: WARNING: Oracle Test Disk API
啟動 backup 於 18-6月 -10
通道 c1: 正在啟動全部資料檔案備份組
通道 c1: 正在指定備份組內的資料檔案
輸入資料檔案: 檔案號=00001 名稱=D:/APP/ADMINISTRATOR/ORADATA/ORCL/SYSTEM01.DBF
輸入資料檔案: 檔案號=00002 名稱=D:/APP/ADMINISTRATOR/ORADATA/ORCL/SYSAUX01.DBF