RMAN中catalog和nocatalog区别介绍
nocatalog方式就是用control file作为catalog,每一次备份都要往控制文件里面写好多备份信息,控制文件里面会有越来越多的备份信息,若为catalog则必须要首先要创建目录备份数据库,建立恢复目录.
catlog建立恢复目录的例子:
1.创建Catalog所需要的表空间
SQL>create tablespace rman_ts datafile '/u01/oracle/oradata/ora10g/rmants.dbf' size 20M;
2.创建RMAN用户并授权:
- SQL>createuserrmanidentifiedbyrmandefaulttablespacerman_tsquotaunlimitedonrman_ts;
- SQL>grantrecovery_catalog_ownertorman;(grantconnecttorman)
查看角色所拥有的权限:
select * from dba_sys_privs where grantee='RECOVERY_CATALOG_OWNER';(RECOVER_CATALOG_OWNER,CONNECT,RESOURCE)
3.创建恢复目录
- oracle>rmancatalogrman/rman
- RMAN>createcatalogtablespacerman_ts;
- RMAN>registerdatabase;(database是targetdatabase)
- databaseregisteredinrecoverycatalog
- startingfullresyncofrecoverycatalog
- fullresynccomplete--phpfensi.com
- RMAN>connecttarget/;
以后要使用备份和恢复,需要连接到两个数据库中,命令:
oracle>rman target / catalog rman/rman(第一斜杠表示target数据库,catalog表示catalog目录 rman/rman表示catalog用户名和密码)
命令执行后显示:
- RecoveryManager:Release10.2.0.1.0-ProductiononWedDec1015:00:422008
- Copyright(c)1982,2005,Oracle.Allrightsreserved.
- connectedtotargetdatabase:ORA10G(DBID=3988862108)
- connectedtorecoverycatalogdatabase
命令解释:
Report schema Report shema是指在数据库中需找schema
List backup 从control读取信息
Crosscheck backup 看一下backup的文件,检查controlfile中的目录或文件是否真正在磁盘上.
Delete backupset 24 24代表backupset 的编号,既delete目录,也delete你的文件.
当通过rman nocatalog方式备份Oracle,Oracle使用controlfile存放备份信息,因此,当使用rman nocatalog方式备份时,备份controlfile是非常重要的.
初始化参数control_file__record_keep_time设置备份信息保存时间,到规定时间就自动清除以前的备份信息:
SQL> alter sysem set control_file_record_keep_time=7 scope=spfile;
有一个问题,当使用rman nocatalog恢复时,数据库必须是处于“mount”状态的,而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语句更改),该参数control_file__record_keep_time设置备份信息保存时间,到规定时间就自动清除以前的备份信息.
- SQL>showparametercontrol
- NAMETYPEVALUE
- -----------------------------------------------------------------------------
- control_file_record_keep_timeinteger7
- control_filesstringD:/APP/ADMINISTRATOR/ORADATA/O
- control_management_pack_accessstringDIAGNOSTIC+TUNING
- SQL>altersystemsetcontrol_file_record_keep_time=14scope=both;
系统已更改.
- SQL>selectname,value,issys_modifiablefromv$parameterwherename='control_file_record_keep_time';
- NAMEVALUEISSYS_MOD
- ----------------------------------
- control_file_re14IMMEDIATE
热门评论