RMAN CATALOG

  1. NocatalogNocatalog 方式 就是用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 相关的信息除了保存在控制文件中外(控制文件实际上只保存一部分),更加详细的信息就都被存储在恢复目录中。
    提示:强烈建议不要将恢复目标数据库放到目标数据库中。
    在一个恢复目录中登记称为注册。一个恢复目录可以注册多个目标数据库。 
  2. CATALOG 的优点
    ·能保留更多的历史备份信息
    ·一个恢复目录能管理与备份多个目标数据库
    ·如果没有恢复目录,而且发生了结构上的改变,时间点的恢复需要小心操作
    同样,如果选择使用恢复目录方式,也同样要对恢复目录做备份。
    恢复目录一般不需要用RMAN 做备份,只要EXP 即可。一旦恢复umulu 数据库发生故障,通过IMP 恢复即可。 
  3. 创建 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 的空间。 
  4. 创建一个独立的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; 
  5. 通过RMAN 连接到新创建的恢复目录中:
    [oracle@oracle ~]$ rman catalog RC_ADMIN/RC_ADMIN@emrep 
  6. 在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