备份与恢复(四)--RMAN使用恢复目录catalog来保存档案资料库

(一)恢复目录概述

RMAN档案资料库用于存储数据库备份、修复以及恢复所需的信息。这些信息可以保存在备份数据库的控制文件中,也可以单独保存在一个独立的恢复目录数据库的恢复目录中。两种方式差别如下:

(1)将备份信息保存在控制文件中。如果将备份信息保存在控制文件中,那么控制文件中将包括不可重复使用的记录和可以重复使用的记录,不可重复使用的是记录数据文件、联机日志文件等不经常变化的、关键性的信息;可重复的是数据库运行过程中不断新生成的信息,如:重做日志文件的历史信息、归档日志文件信息、备份信息等。因为可重复使用的空间是有限的,采用循环覆盖的方式进行工作,因此,能够保存的备份信息也有限。

(2)将备份信息保存在恢复目录中。使用RMAN对数据库进行备份恢复时,RMAN直接从恢复目录获取所需信息,而不是从控制文件获取信息。一个恢复目录可以被多个目标数据库使用,只需将目标数据库注册到恢复目录即可。恢复目录主要保存:

  • 目标数据库数据文件与重做日志文件的信息
  • 目标数据库镜像复制的信息
  • 目标数据库表空间与数据文件的关系
  • 存储用户创建的RMAN脚本,可以重复使用
  • 永久性的RMAN预定义参数配置信息

本文将使用恢复目录进行备份恢复测试。


(二)测试环境信息

IP地址 数据库实例名备注
192.168.10.11testdb1待备份数据库1,也称目标数据库
192.168.10.12testdb2待备份数据库2,也称目标数据库
192.168.10.51catalogdbcatalog数据库

              
(三)为数据库配置恢复目录

(3.1)在恢复目录数据库(192.168.10.51:catalogdb)创建表空间用于存放RMAN备份数据

 
 

(3.2)在恢复目录数据库创建用户

多个目标数据库可以使用同一个用户,也可以单独为每个目标数据库创建一个用户,这里为每个目标库单独创建用户。

 
 


(3.3)配置各个实例的连接字符串

为各个服务器配置连接字符串tnsnames.ora,目标数据库节点需要配置catalog数据库的tns,catalog数据库需要配置所有目标数据库的tns。
(3.3.1)在testdb1节点添加catalogdb数据库的连接字符串

 
 


(3.3.2)在testdb2节点添加catalogdb数据库的连接字符串

 
 

(3.3.3)在catalogdb节点添加testdb1和testdb2数据库的连接字符串

 
 


(3.4)启动RMAN,创建恢复目录
在catalogdb数据库节点启动RMAN,创建恢复目录

(3.4.1)为testdb1创建恢复目录

 
 


(3.4.2)为testdb2创建恢复目录

 
 


(3.5)注册数据库
(3.5.1)将testdb1注册到恢复目录中

 
 


(3.5.2)将testdb2注册到恢复目录中

 
 


(四)备份与恢复测试
(4.1)创建测试数据

在数据库testdb1中的用户lijiaman下面创建表test01,并插入测试数据

 
 

(4.2)将test01数据库备份到/rman_backup目录下面,需要主义的是,备份只能放在目标数据库服务器的本地

# 创建备份路径
[root@primarynode ~]# mkdir /rman_backup
[root@primarynode ~]# chown -R oracle:oinstall /rman_backup/
# 开始备份
rman target sys/Oracle123@testdb1 catalog rman_testdb1/rman_testdb1

run{            
 configure controlfile autobackup on;
 configure controlfile autobackup format for device type disk to '/rman_backup/controlfile_%F.bak';
 allocate channel c1 type disk;
 backup full tag 'dbfull' format '/rman_backup/full_%u_%s_%p' database;
 sql 'alter system archive log current';
 backup archivelog all format '/rman_backup/arch_%u_%s_%p';
 backup spfile format '/rman_backup/spfile_%d_%U';
 delete noprompt expired backup;
 delete noprompt obsolete;
 release channel c1;
}

(4.3)模拟误操作

 
 

(4.4)执行恢复
将数据库恢复到truncate之前,这里恢复到2020/4/14 20:48:55
(4.4.1)将testdb1设置为mount状态

 
 

(4.4.2)在备份服务器catalog上执行恢复操作

rman target sys/Oracle123@testdb1 catalog rman_testdb1/rman_testdb1
RMAN>SQL"ALTER SESSION SET NLS_LANGUAGE=''AMERICAN''";
RMAN>SQL"ALTER SESSION SET NLS_DATE_FORMAT=''YYYY-MM-DD HH24:MI:SS''";
RUN{
SET UNTIL TIME '2020-04-14 20:48:55';
RESTORE DATABASE;
RECOVER DATABASE;
 }


(4.5)因为是不完全恢复,以resetlogs方式打开数据库

 
 

(4.6)确认数据已经还原回来

 
 


(五)总结

个人觉得,使用恢复目录来保存RMAN信息的优点有:可以长久保存RMAN信息,可以保存RMAN脚本。

与将备份信息保存在控制文件相比,最大的差别是:使用catalog时,执行备份恢复都需要连接到两个数据库,而使用控制文件则只需连接待恢复的数据库。


【完】          
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值