RMAN Catalog目录库
RMAN Catalog目录库
1 目录库的必要性
目录库即catalog database:
RMAN的知识库(元数据)保存在目标库的控制文件里
① 目标库上的控制文件损坏,造成该目标库上RMAN元数据丢失。尽管做了数据备份,但如果没有autobackup,RMAN就很难找到那些备份集了
② RMAN元数据受控制文件参数control_file_record_keep_time限制 缺省是7天,超时可能被覆盖,即造成老化的元数据丢失
可以在另一台服务器上建立一个Catalog Database:
① 它不受control_file_record_keep_time参数的限制,理论上可以无限期的保存目标库的 rman 元数据
② 使用一个catalog目录库就可以管理许多目标库,所谓集中管理多个目标库,这些目标库可以是不同平台,不同版本
③ 可以保存RMAN备份恢复脚本,即catalog script使RMAN的备份与恢复更加灵活,自动化
2 实战案例:创建catalog目录库(OCM)
catalog目录库建在一台独立的Oracle server上(此案例在一台Oracle server上完成)
示例:
target database基于enmoedu1_11204-PROD
catalog database基于enmoedu2_11204 -EMREP
2.1 EMPER端启动listener
lsnrctl start
lsnrctl status
2.2 orcl端配置tnsnames.ora
配置tnsnames.ora能够连接对方
cd $ORACLE_HOME/network/admin vi tnsnames.ora
添加:
EMREP = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = dba)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = EMREP) ) )
远程连接:
sqlplus sys/oracle@EMREP as sysdba
测试orcl端连接EMREP正常
2.3 EMREP创建Catalog所用表空间
create tablespace rman_tbs datafile '/u01/app/oracle/oradata/EMREP/rmantbs.dbf' size 50m autoextend on;
2.4 创建RMAN用户并授权
create user rman identified by rman default tablespace rman_tbs;
grant connect,resource,recovery_catalog_owner to rman;
grant unlimited tablespace to rman;
2.5 orcl端从RMAN客户端连接catalog库EMREP
连接到恢复目录数据库EMREP
rman catalog rman/rman@EMREP
2.6 创建catalog目录(自动建了一大堆表)
create catalog;
conn rman/rman@EMREP select count(*) from user_tables;
2.7 同时连接目标库orcl和catalog库EMREP
rman target / catalog rman/rman@EMREP
2.8 注册目标库
注册目标库,把目标库控制文件中的rman信息同步到catalog里
register database;
2.9 查看catalog库中注册的目标库信息
sqlplus rman/rman
select * from rc_database;
3 catalog目录库存储rman备份脚本
脚本分为global和local两种:
global script:所有target都可以共享
local script:只有连接的target使用
有关脚本的命令有:
- create [global] script
- replace [global] script
- print [global] script
- list [global] script names
- exectue [global] script
- delete [global] script
3.1 同时登陆目标库(orcl库)、catalog库
rman target / catalog rman/rman@EMREP
3.2 创建脚本
create global script rman_bak{ backup database format '/u01/backup/rman/db_%U.bak' include current controlfile plus archivelog format '/u01/backup/rman/arch_%U.bak'; }
3.3 查看脚本名称
list script names;
3.4 查看脚本内容
print script rman_bak;
3.5 执行脚本
run{ execute script rman_bak; }
3.5 删除脚本
delete script rman_bak;