RMAN備份中catalog和nocatalog區別[轉]

zhouxianwang發表於2013-01-05
nocatalog方式就是用control file作為catalog,每一次備份都要往控制檔案裡面寫好多備份資訊,控制檔案裡面會有越來越多的備份資訊,即RMAN的備份資訊寫在本地控制檔案裡面。
  若為catalog則必須要首先要建立目錄備份資料庫,建立恢復目錄,即資料庫的備份資訊寫到恢復目錄裡面。
  當透過rman nocatalog方式備份Oracle資料庫,Oracle使用controlfile存放RMAN的備份資訊。因此,當使用Rman nocatalog方式備份資料庫時,一定要記得備份controlfile。
  初始化引數control_file__record_keep_time設定備份資訊儲存時間,到規定時間就自動清除以前的備份資訊:
  SQL> alter sysem set control_file_record_keep_time=7 scope=spfile;
  注意:
  當使用Rman nocatalog恢復時,資料庫必須是處於“mount”狀態的,即一定要先載入控制檔案,不然RMAN找不到記錄的備份資訊。而 Oracle startup mount的前提條件是control必須存在。因此,你必須在恢復datafile之前先恢復controlfile。 使用Rman catalog方式時,可以startup nomount然後restore controlfile;但使用 Rman nocatalog時,必須先用檔案方式恢復controlfile。
  下面對比一下Rman nocatalog和Rman catalog的恢復時的步驟,以便建立正確的備份策略(以下的恢復都是在online狀態下的備份):
  Rman nocatalog恢復:
  1) 建立oracle執行環境(包括init或sp檔案)
  2) 檔案方式恢復controlfile到init檔案指定的位置
  3) startup mount
  4) Rman,恢復datafile
  5) alter database open resetlogs
  Rman catalog恢復
  1) 建立oracle執行環境(包括init或sp檔案)
  2) Rman ,restore controfile
  3) alter database mount
  4) Rman, restore datafile
  5) alter database open resetlogs
  可以看出,Rman nocatalog備份時,必須用檔案方式備份controlfile。
  另外,由於nocatalog時利用controlfile存放備份資訊,建議將Oracle引數檔案中的 CONTROL_FILE_RECORD_KEEP_TIME值加大(預設為7天), 該引數在$ORACLE_HOME/dbs /initSID.ora中(9i後也可能在spfile中,只能透過Oracle語句更改)。

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

相關文章