Rman操作簡單分析
2024-07-21 02:40:21
供稿:網友
通過設置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=0
DBGSQL: :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模式進行分析是一種非常有效的辦法。假如可能得話,以后的文章中我會舉幾個例子來說明。