Oracle數(shù)據(jù)庫(kù)中Rman操作簡(jiǎn)單分析
2024-08-29 13:36:20
供稿:網(wǎng)友
 
             
  Rman操作簡(jiǎn)單分析 
  rman 備份恢復(fù)的一個(gè)特定例子。(參考:http://www.dbanotes.net/Oracle/Rman...lfile_howto.htm)
  
  rman 對(duì)dbms_backup.restore 的一些特定調(diào)用完梢醞üebug 分析出來。
  
                                                                                              通過設(shè)置debug 模式,我們可以跟蹤到大量的Log,從而為分析提供一定的說明。假定我們提交如下的命令:
  
  rman target / debug trace=d:/rman_trace.log
  
  通過查看日志我們得之,rman 首先確定數(shù)據(jù)庫(kù)狀態(tài):
  
  DBGSQL: EXEC SQL AT TARGET select decode(status,'OPEN',1,0) into :b1 from v$instance 
  DBGSQL: sqlcode=0
  DBGSQL: :b1 = 1
  
  判定數(shù)據(jù)庫(kù)是否是在open 狀態(tài)下。然后,要去獲取數(shù)據(jù)庫(kù)的compatible參數(shù)值。
  接下來調(diào)用dbms_backup_restore確定rman 可用的版本信息。對(duì)應(yīng)的一些參數(shù)如下:
  
  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 ,這個(gè)范圍內(nèi)可用,804 ? 920 ? 是不是很熟悉?
  
  下面調(diào)用dbms_rcvman的getPackageVersion 函數(shù)
  ($ORACLE_HOME/rdbms/admin/recover.bsq創(chuàng)建dbms_rcvman ,并可以獲得相關(guān)注釋)獲取package 的版本可用信息。
  
  08.00.04到09.02.00
  
  接下來rman 會(huì)查詢V$database ,從中獲取name ,resetlogs_time ,resetlogs_change# ,dbid 等信息。
  
  下面這個(gè)比較重要, x$kcccp( Kernel Cache Checkpoint Progress)中獲取檢查點(diǎn)記錄:
  
  類似如下的SQL:
  select nvl(max(cpmid),0) from x$kcccp where cpsta=2
  
  這些操作完成后,rman 從v$option 中獲取相關(guān)信息,包括:'Parallel backup and recovery','Incremental backup and 
  
  recovery','Duplexed backups','Block Media Recovery','Point-in-time tablespace recovery',通過這些來判定數(shù)據(jù)庫(kù)是否具有這些功能。
  
  然后Log中顯示連接到目標(biāo)數(shù)據(jù)庫(kù)。
  
  分析過程并不復(fù)雜,不過在涉及到深入的命令的時(shí)候會(huì)產(chǎn)生大量的Log,要有一定的耐心才能繼續(xù)下去。在rman 出現(xiàn)故障的時(shí)候,設(shè)置Debug模式進(jìn)行分析是一種非常有效的辦法。假如可能得話,以后的文章中我會(huì)舉幾個(gè)例子來說明。