设置恢复目录:
1. 创建一个数据库catdb作为恢复目录的数据库。一个恢复目录可服务于多个数据库,所以您可以选择创建一个恢复目录数据库可以服务于要进行备份的所有数据库。
2. 在恢复目录数据库中,创建一个将拥有恢复目录数据的用户。例如,假定catdb 是目录数据库的名称,rcat_ts 是您所创建的表空间的名称,该表空间用于存储目录数据。
$ sqlplus sys/password@catdb as sysdba
SQL> CREATE TABLESPACE rcat_ts datafile '...' size 5M;
SQL> CREATE USER rman IDENTIFIED BY cat TEMPORARY TABLESPACE temp DEFAULT TABLESPACE rcat_ts QUOTA UNLIMITED ON rcat_ts;
3. 将RECOVERY_CATALOG_OWNER 角色授予目录所有者。该角色将为用户提供维护和查询恢复目录所需的所有权限。
GRANT connect,resource,RECOVERY_CATALOG_OWNER TO rman;
4. 启动RMAN,并以目录所有者身份登录。
$ rman catalog rman/cat@catdb
RMAN> CREATE CATALOG TABLESPACE rcat_ts;
5. 使用RMAN 连接到目标数据库,并在新创建的恢复目录中注册该目标数据库。
$ rman target sys/oracle@orcl catalog rman/cat@catdb
RMAN> register database;
RMAN> resync catalog;
注意:Oracle 10g中,连接到恢复目录通过一条简单的命令RMAN>unregister database orcl; 就可以将恢复目录中已注册的数据库注销。该命令不会删除该数据库的备份文件,而只是删除这些备份文件的恢复目录引用。
数据库的迁移和升级问题
升级数据库时,必须同时升级恢复目录,因为数据库版本, RMAN 版本和恢复目录版本之间存在严格的格则。
连接到恢复目录用户数据库,然后查询rcver表,就可以看到恢复目录的版本:
SQL> conn rman/cat@catdb;
SQL> select version from rcver;
VERSION
------------
11.02.00.01
只要恢复目录的版本不低于数据库的版本,就能够执行各种操作。 因此,如果在同一个恢复目录中存储多个数据库,只要升级这个恢复目录中的一个数据库。
升级恢复目录很简单,只需要在RMAN 里执行upgrade catalog命令即可。 RMAN 会提示用户再次输入upgrade catalog命令,随后将升级恢复目录。
$ rman target /@orcl catalog rman/cat@catdb;
RMAN> upgrade catalog;
恢复目录所有者是RMAN
再输入一次 UPGRADE CATALOG 命令来确认目录升级
RMAN> upgrade catalog;
恢复目录已升级到版本11.02.00.01
DBMS_RCVMAN 程序包升级为 11.02.00.01 版
DBMS_RCVCAT 程序包升级为 11.02.00.01 版