RMAN備份原理

it_newbalance發表於2012-10-11

RMAN備份原理

 

 

在之前,看了使用者管理的備份恢復管理,通過以SCN為線索貫穿整個過程,來熟悉了備份原理。

RMAN的備份過程和使用者備份恢復管理有很大的區別,很多朋友了都沒有理清楚原理

下面的是我的理解:

RMAN備份資料塊的工作原理:

 

原理:RMAN基於備份演算法規則來編譯要備份的資料檔案列表。基於通道數和同時備份的資料檔案數,RMANORACEL共享記憶體段中

建立一些記憶體緩衝區一般是在PGA中不過有時候記憶體緩衝區會被推入SGA。通道服務程式隨後就開始讀取資料檔案,並在RMAN緩衝取

中填充這些資料塊。一個緩衝區被填滿時,輸入緩衝區的資料就會推出到輸出緩衝區。資料檔案中的資料塊都會都會發生這種

memerytomonery write 的過程,如果資料塊符合備份的標準,並且memerytomonery write操作沒有檢查到

資料corruption則該資料塊會被儲存到輸出資料緩衝區中,直到輸出緩衝區被填滿。一但輸出緩衝區被填滿,輸出緩衝區的內容就會被

推到備份位置(磁碟或者磁帶)

 

RMAN備份資料庫過程:

    RMAN發出備份全庫命令後,RMAN生成到目標資料庫的bequeath連線,也就是說會檢查ORACLA_SID變數中的例項名,並在該在實

例上產生一個伺服器程式,然後作為sysdba登陸,然後會產生一個作為備份的通道,(在PGA或者是在SGA分配儲存)。隨後RMAN呼叫

SYS.DBMS_RCVMAN請求資料庫結構資訊,包括控制檔案的資訊(當前序列號,建立時間……)由於指定了備份全庫,所以RMAN會請求

資料庫中資料檔案資訊,並判斷是否存在offline資料檔案(包括所在的位置和工作方式)。

    RMAN開始備份,為了保持資料一致性RMAN必須構建控制檔案快照,接下來RMAN呼叫DBMS _BACKUP_RESTORE資料包,該呼叫

可以建立備份片。RMAN擁有檔案列表,所以它為資料檔案讀取操作分配記憶體緩衝區,分配緩衝區後RMAN初始化備份片。一旦初始化了備份片,

RMAN會判斷是否使用了伺服器引數檔案,如果使用了則會做為備份的一部分,還要備份控制檔案,之後才開始備份資料檔案,並將其推至記憶體。

為了實現這一功能,通道程式在磁碟上執行預讀取操作,並且將多個資料檔案讀入記憶體中,RMAN會判斷資料塊頭資訊是否仍然為零,如果資料塊

沒有被使用過,就不會發生到輸出緩衝區的寫操作,同時會丟棄這個資料塊(這就RMAN為什麼會只備份使用過的資料的原因,也是它的優點)

RMAN還會執行檢查資料塊有沒有corruption操作。當檢查通過了就被寫入到輸出緩衝區。一旦輸出緩衝區填滿了,就被推至備份檔案位置。

    在備份資料塊的時候,RMAN影子程式會得到備份狀態資訊。並將它傳給V$session_longops檢視。查詢它能得到資訊。

    當資料檔案的所有資料塊都被讀入輸入緩衝區並確定了狀態之後RMAN就會通過將這個資料檔案寫入備份片來結束該檔案的備份操作。所有

資料檔案寫入備份片之後,RMAN生成最後一個對SYS DBMS BACKUP RESTORE 資料包的呼叫,該呼叫在控制檔案中寫入備份資訊(包括

備份片名,啟動備份操作時的檢查點的SCN和完成備份的時間)

    至此完成備份!

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

相關文章