RMAN CATALOG
-
Nocatalog
Nocatalog 方式 就是用 control file 作为 catalog,每一次备份都要往控制文件里面写好多备份信息,控制文件里面会有越来越多的备份信息。因此,当使用 rman nocatalog 方式备份时,备份 controlfile 是非常重要的。
由于 nocatalog 时利用 controlfile 存放备份信息,建 议将 Oracle 参数文件中的
CONTROL_FILE_RECORD_KEEP_TIME 值 加 大 ( 缺 省 为 7 天 ) , 参 数 在$ORACLE_HOME/dbs/initSID.ora 中,该参数 control_file__record_keep_time 设置备份信息保存时间,到规定时间就自动清除以前的备份信息。
SQL> show parameter control
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
control_file_record_keep_time integer 7
SQL> alter system set control_file_record_keep_time=14 scope=both;
系统已更改。
在不使用 catalog 的情况下,为了更容易地存储和恢复数据库,Oracle 建议:
l 启动控制文件自动备份的功能;
l 记录您的 DBID
l 将控制文件冗余到不同的磁盘上
l 保留所有的 RMAN 备份日志
这样,如果丢失了控制文件,即使没有使用恢复目录也可以自动恢复控制
三、Catalog
建议将恢复目录存放在一个专有的数据库中。
如果恢复目录和其他数据存储在一个数据库中,那么如果这个数据库损坏,你的恢复目
录很有可能也会丢失。
当没有恢复目录时,RMAN 相关的备份信息,比如归档文件路径、备份集路径等均存
储在目标数据库的控制文件中,不过考虑到控制文件并不能无限增长,而且控制文件也不仅仅是用来存储与备份相关的信息,因此 RMAN 也有一个专门的备份信息存储地,这就是恢复目录了。当待备份的数据库注册到恢复目录之后,RMAN 相关的信息除了保存在控制文件中外(控制文件实际上只保存一部分),更加详细的信息就都被存储在恢复目录中。
提示:强烈建议不要将恢复目标数据库放到目标数据库中。
在一个恢复目录中登记称为注册。一个恢复目录可以注册多个目标数据库。
-
CATALOG 的优点
·能保留更多的历史备份信息
·一个恢复目录能管理与备份多个目标数据库
·如果没有恢复目录,而且发生了结构上的改变,时间点的恢复需要小心操作
同样,如果选择使用恢复目录方式,也同样要对恢复目录做备份。
恢复目录一般不需要用 RMAN 做备份,只要 EXP 即可。一旦恢复 umulu 数据库发生故障,通过 IMP 恢复即可。 -
创建 CATALOG 的步骤
创建恢复目录非常简单,RMAN 提供了 CREATE CATALOG 命令,但是在创建恢复目录之前,首先需要为该恢复目录创建一个独立表空间和对应的 SCHEMA ,详细操作步骤
如下:
1) 创建一个独立的表空间:
sqlplus sys/oracle@emrep as sysdba
SQL>create tablespace RC_DATA
Datafile ‘/u01/app/oracle/oradata/emrep/rc_data01.dbf’ size 100M
Autoextend on next 10M
Extent management local
Segment space management auto;
注意千万不要将恢复目录创建在要备份的目录数据库。
由于恢复目录通常不会太大,这里数据文件仅分配了100MB 的空间。
-
创建一个独立的 SCHEMA ,用来记录备份信息,并授予相关权限:
sqlplus sys/oracle@emrep as sysdba
SQL>create user RC_ADMIN identified by RC_ADMIN default tablespace
RC_DATA;
SQL>grant connect,resource,recovery_catalog_owner to RC_ADMIN; -
通过 RMAN 连接到新创建的恢复目录中:
[oracle@oracle ~]$ rman catalog RC_ADMIN/RC_ADMIN@emrep -
在 RMAN 中创建 CATALOG
RMAN>create catalog tablespace RC_DATA;
[oracle@oracle ~]$ rman target sys/oracle@prod catalog
RC_ADMIN/RC_ADMIN@emrep
RMAN>register database;
RMAN> resync catalog;这之后进行的操作,比如创建备份等操作信息都会存入恢复目录中。
对于注册到恢复目录,是否就必须或者只能以 CATALOG 模式进行备份或恢复操作了
呢?当然不是,恢复目录只是 RMAN 中的一个可选项,而不是必选项,备份信息是否记入CATALOG 取决于执行 RMAN 操作时是否连接到了 CATALOG,也就是说,即使目标数据库已经注册到恢复目录中,但连接时没有以 CATALOG 模式连接,则备份信息仍然是只存入目标端数据库的控制文件,相当于 NOCATALOG 模式。
另外,已经注册到 CATALOG 中的数据库希望取消注册怎么办呢?使用 U REGISTER
命令即可:
RMAN>UNREGISTER DATABASE;
database name is "JSSBOOK" and DBID is 1419729528
Do you really want to unregister the database (enter YES or NO)? yes
database unregistered from the recovery catalog
RMAN> drop catalog;
recovery catalog owner is ADMIN
enter DROP CATALOG command again to confirm catalog removal
RMAN> drop catalog;
recovery catalog dropped