1. 恢复目录概述
当没有恢复目录时, RMAN 相关的备份信息,比如归档文件路径、备份集路径等均存储在目标数据库的控制文件中,不过考虑到控制文件并不能无限增长,而且控制文件也不仅仅时用来存储与备份相关的信息,因此 RMAN 也有一个专门的备份信息存储地,这就是恢复目录了。当待备份的数据库注册到恢复目录后, RMAN 相关的信息除了保存在控制文件以外(控制文件实际上只保存了一部分),更加详细的信息就被存储在恢复目录中。
2. 恢复目录创建
(1) 建立一个独立的表空间
SQL> create tablespace rmancatalog datafile '/u01/app/oracle/oradata/orcl/rman01.dbf' size 50m;
注意千万不要将恢复目录创建在要备份的目标数据库。
(2) 创建一个独立的 CSHEMA ,用来记录备份信息,并授予相关权限
SQL> grant connect,resource,recovery_catalog_owner to rmanct identified by rmanct;
(3) 通过 RMAN 连接到新创建的恢复目录中
$ rman catalog rmanct/rmanct
(4) 在 RMAN 中创建 CATALOG
RMAN> create catalog tablespace rmancatalog;
此时,恢复目录已经创建完成,一个恢复目录数据库可以同时为多个数据库服务,不过在使用恢复目录执行备份前,需要在恢复目录中注册该数据库
3. 恢复目录中注册数据库
( 1 )以 catalog 模式连接到目标数据库和恢复目录
$ rman target / catalog rmanct/rmanct@orcl
( 2 )注册数据库
RMAN> register database;
在这之后的操作信息都会存入存储目录中。
4. 取消注册数据库
RMAN> unregister database;
5. 是否使用恢复目录
恢复目录只是 RMAN 中的一个可选项,而不是必选项,备份信息是否记入 CATALOG 取决于 RMAN 操作时是否连接 CATALOG ,也就是说,及时目标数据库已经注册到恢复目录中,连接时没有以 CATALOG 模式连接,则备份信息仍然只存储在控制文件中。
如果 DBA 要管理的 Oracle 数据库较多,那么对于这些数据库的备份,建议使用恢复目录。不过 DBA 只管理一个或者几个数据库,就不建议使用恢复目录,别给自己找麻烦。