Rman操作簡單分析
2024-07-21 02:07:49
供稿:網友
http://www.itpub.net/245264.html
rman操作簡單分析
在我的上一篇文章中為大家演示了rman 備份恢復的一個特定例子。(參考:http://www.dbanotes.net/oracle/rman...lfile_howto.htm)rman 對dbms_backup.restore 的一些特定調用完梢醞üebug 分析出來。通過設置debug 模式,我們可以跟蹤到大量的log,從而為分析提供一定的說明。假定我們提交如下的命令:rman target / debug trace=d:/rman_trace.log通過查看日志我們得之,rman 首先確定數據庫狀態:dbgsql: exec sql at target select decode(status,'open',1,0) into :b1 from v$instance dbgsql: sqlcode=0dbgsql: :b1 = 1判斷數據庫是否是在open 狀態下。然后,要去獲取數據庫的compatible參數值。接下來調用dbms_backup_restore確定rman 可用的版本信息。對應的一些參數如下:protocol_version_number_min number := 8;protocol_release_number_min number := 0;protocol_update_number_min number := 4;protocol_version_number_max number := 9;protocol_release_number_max number := 2;protocol_update_number_max number := 0;804-920 ,這個范圍內可用,804 ? 920 ? 是不是很熟悉?下面調用dbms_rcvman的getpackageversion 函數($oracle_home/rdbms/admin/recover.bsq創建dbms_rcvman ,并可以獲得相關注釋)獲取package 的版本可用信息。08.00.04到09.02.00接下來rman 會查詢v$database ,從中獲取name ,resetlogs_time ,resetlogs_change# ,dbid 等信息。下面這個比較重要, x$kcccp( kernel cache checkpoint progress)中獲取檢查點記錄:類似如下的sql:select nvl(max(cpmid),0) from x$kcccp where cpsta=2這些操作完成后,rman 從v$option 中獲取相關信息,包括:'parallel backup and recovery','incremental backup and recovery','duplexed backups','block media recovery','point-in-time tablespace recovery',通過這些來判斷數據庫是否具有這些功能。然后log中顯示連接到目標數據庫。分析過程并不復雜,不過在涉及到深入的命令的時候會產生大量的log,要有一定的耐心才能繼續下去。在rman 出現故障的時候,設置debug模式進行分析是一種非常有效的辦法。如果可能得話,以后的文章中我會舉幾個例子來說明。參考信息dbmsbkrs.sql 和 prvtbkrs.plb 文件說明注釋(可在你的系統 $oracle_home/rdbms/admin/中找到.)《oracle 9i rman備份與恢復技術》 清華出版社 2.12節 從開始到結束的rman進程 p41steve adams's q+a http://www.ixora.com.au/q+a/0102/06135327.htm