日期:2014-05-16  浏览次数:20427 次

nocatalog 与catalog的区别

区别:

(1) nocatalog方式就是用control?file作为catalog,每一次备份都要往控制文件里面写好多备份信息,控制文件里面会有越来越多的备份信息,即RMAN的备份信息写在本地控制文件里面。
(2)若为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;
注意:
  (1)当使用Rman?nocatalog恢复时,数据库必须是处于“mount”状态的,即一定要先加载控制文件,不然RMAN找不到记录的备份信息。而Oracle?startup?mount的前提条件是control必须存在。因此,你必须在恢复datafile之前先恢复controlfile。

???? (2)使用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语句更改)。