本文主要是介绍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语句更改)。
这篇关于nocatalog 与catalog的区别的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!