- Oracle 官方建议把恢复目录建议于独立的数据库中。如果把恢复目录与其他一些数据混杂在某库中,若该库失败则恢复目录一起丢失,这将导致恢复异常困难。
- 在恢复目录中登记某个库被称作注册(registration).可以在恢复目录中注册多个目标库。举例来说,你可以注册数据库 prod1,prod2,和prod3在一个单独的由用户catowner拥有的目录中,而该目录位于一个叫catdb的数据库中。 因为RMAN通过DBID即数据库的身份证来分辨各个库。每个在恢复目录中注册过的目标库都有一个唯一的DBID.
- 恢复目录主要包括以下RMAN的使用情况信息:
- 恢复目录保存了目标库控制文件中重要的RMAN操作原数据。同步恢复目录保证与控制文件中当前信息同步。
- RMAN 创建快照控制文件,即临时控制文件,当每次需要做全局同步时。快照临时文件保证了RMAN同步时的一致性读。数据库服务进程保证同时只有一个快照临时文件的存在,这对于保证RMAN操作不受其他进程干扰是必要的。
- 丢失恢复目录将导致严重的恢复问题。如何备份恢复目录可参考一般数据库的备份方式。
- 关于恢复目录的兼容性,可以通过查询恢复目录用户模式下的rcver表了解参与恢复目录使用端的版本号,示例:
SQL> SELECT * FROM rcver;
VERSION
------------
08.01.05.00
09.00.01.00
10.02.01.00只要是8i之后版本一般不存在兼容性问题。 II 管理恢复目录 创建恢复目录 管理恢复目录中的目标库记录 同步恢复目录 恢复目录模式下的控制文件管理 备份恢复目录 导入和导出恢复目录 增强恢复目录可用性 查询恢复目录视图 更新恢复目录 删除恢复目录
- 创建恢复目录,创建恢复目录分成三步:
- 配置恢复目录所在数据库
- 创建恢复目录拥有者
- 创建恢复目录本身
CONNECT SYS/oracle@catdb AS SYSDBA
SQL> CREATE USER rman IDENTIFIED BY cat
TEMPORARY TABLESPACE temp
DEFAULT TABLESPACE tools
QUOTA UNLIMITED ON tools;同时我们要授予 recovery_catalog_owner 权限给用户,该角色拥有管理创建恢复目录的权限。
SQL> GRANT RECOVERY_CATALOG_OWNER TO rman;创建恢复目录 在创建恢复目录用户后,使用RMAN建立恢复目录,操作如下: $ rman
RMAN> CONNECT CATALOG rman/cat@catdb --以目录用户连接恢复目录库
RMAN> create catalog -- 建议恢复目录
当然也可以指定使用的表空间:
RMAN> create catalog tablespace users;
成功建立恢复目录后,可以查询目录下已经存在的目录使用的基表。
SQL>select table_name from user_tables;
2. 管理恢复目录中的目标库记录ü 在恢复目录中注册目标数据库
ü 在恢复目录中注销目标数据库
ü 在恢复目录中重置数据库
ü 在恢复目录中移除已删除的记录
在恢复目录中注册目标数据库
首先确定恢复目录库已经打开,从目标库主机登录:
$ rman TARGET / CATALOG rman/cat@catdb
若目标库未启动,首先启动到加载模式:
RMAN> STARTUP MOUNT;
注册目标库:
RMAN> REGISTER DATABASE;
RMAN会自动在恢复目录中记录目标库的各种信息,将目标库控制文件中的
元信息复制到恢复目录中,可以使用以下命令确认注册情况:
RMAN> REPORT SCHEMA;
Report of database schema
File Size(MB) Tablespace RB segs Datafile Name
---- ---------- ---------------- ------- -------------------
1 307200 SYSTEM NO /oracle/oradata/trgt/system01.dbf
2 20480 UNDOTBS YES /oracle/oradata/trgt/undotbs01.dbf
3 10240 CWMLITE NO ...
在恢复目录中登记备份文件
若有备份文件未在控制文件或恢复目录中存在对应的记录,则需要登记该文件,此处的(control file 为目标数据库control file)。
示例:
RMAN> CATALOG DATAFILECOPY '/disk1/old_datafiles/01_01_2003/users01.dbf';
RMAN> CATALOG ARCHIVELOG '/disk1/arch_logs/archive1_731.dbf',
'/disk1/arch_logs/archive1_732.dbf';
RMAN> CATALOG BACKUPPIECE '/disk1/backups/backup_820.bkp';
在恢复目录中登记多个目标库
可以在一个恢复目录中注册多个目标库,前提是目标库的DBID唯一。
在恢复目录中注销目标库
可以使用命令: unregister database 在RMAN中注销目标数据库。当数据库被
注销,所有的RMAN记录都会丢失,所以要小心操作。
在恢复目录中移除已经删除的记录
在9i之后版本,RMAN在删除备份文件的同时会删除在恢复目录中的对应物记
录,而9i以前版本则只将对应物记录标志为delete.可以通过运行脚本
prgrmanc.sql来删除对应物记录,该脚本储存在($ORACLE_HOME/rdbms/admin)
目
录下。示例如下:
% sqlplus rman/cat@catdb
SQL> @?/rdbms/admin/prgrmanc.sql删过期备份信息
同步恢复目录
当恢复目录当前状态晚于数据库控制文件中的备份信息时,则需要使用同步恢复
目录,这种情况只会出现在一段时间使用恢复目录而一段时间不使用恢复目录的
情况下,造成的时间段差异。RMAN会在您做某些操作时自动完成同步,例如
Backup命令,当然你也可以手动同步: resync catalog .
管理控制文件
数据库参数CONTROL_FILE_RECORD_KEEP_TIME
决定了控制文件中记录可能被复
用的最短自然天数,因此你保证恢复目录在此期间完成同步,否则可能控制文件
中的记录丢失,则需要手动登记备份文件。CONTROL_FILE_RECORD_KEEP_TIME有
效期内需要定期同步。
备份恢复目录
备份恢复目录数据库十分重要,若恢复目录数据库丢失则所有的备份信息将丢
失,导致恢复十分困难。
备份恢复目录数据库与一般的数据库没有大的区别,以下为注意事项:
恢复目录数据库因该运行在归档模式下
使用备份策略冗余量大于一
在不同的介质上备份
不使用恢复目录记录备份信息
使用控制文件自动备份,rman中可以自动完成
结构图:
更新恢复目录
若您使用的恢复目录版本低于使用的客户端,则您需要更新恢复目录。举例来说
当前您使用了8.1版的客户端RMAN,而恢复目录是8.0版本的,则需要更新。
当恢复目录版本高于您使用的客户端,则upgrade catalog报错。更新操作实例如
下:
sqlplus> connect sys/oracle@catdb as sysdba;
sqlplus> grant TYPE to rman;
% rman TARGET / CATALOG rman/cat@catdb
UPGRADE CATALOG;
recovery catalog owner is rman
enter UPGRADE CATALOG command again to confirm catalog upgrade
UPGRADE CATALOG;
recovery catalog upgraded to version 09.02.00
DBMS_RCVMAN package upgraded to version 09.02.00
DBMS_RCVCAT package upgraded to version 09.02.00
删除恢复目录
当恢复目录不在需要时可以在所在数据库中彻底删除目录结构和数据,删除将丢
失所有注册过的备份信息,操作要小心。示例操作:
% rman TARGET / CATALOG rman/cat@catdbIssue the
DROP
CATALOG
command twice to confirm:
DROP CATALOG;
recovery catalog owner is rman
enter DROP CATALOG command again to confirm catalog removal
DROP CATALOG;