RMAN Catalog目录库

RMAN Catalog目录库

1 目录库的必要性

目录库即catalog database:

  RMAN的知识库(元数据)保存在目标库的控制文件里

  ① 目标库上的控制文件损坏,造成该目标库上RMAN元数据丢失。尽管做了数据备份,但如果没有autobackupRMAN就很难找到那些备份集了

  ② 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客户端连接catalogEMREP

连接到恢复目录数据库EMREP

rman catalog rman/rman@EMREP

2.6 创建catalog目录(自动建了一大堆表)

create catalog;

conn rman/rman@EMREP
select count(*) from user_tables;

2.7 同时连接目标库orclcatalogEMREP

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备份脚本

脚本分为globallocal两种:

  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;

posted @ 2021-07-10 19:34  chchcharlie、  阅读(704)  评论(0编辑  收藏  举报