重庆思庄Oracle、Redhat认证学习论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 7274|回复: 2
打印 上一主题 下一主题

Dataguard - 通过主库热备方式创建容灾库

[复制链接]
跳转到指定楼层
楼主
发表于 2012-6-29 00:18:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

部署dataguard时需要利用主库的备份创建容灾库,对于小库可以采用冷备方式,而对于大库,因做冷备导致过长的停机时间是很多企业无法容忍的。下面介绍在主库不关闭的情况下,做利用热备创建容灾库的方法。(不描述dg实施的细节,只针对主库热备及在容灾主机上做库恢复的方式)

1、主库热备

主库已开启归档功能,在数据库open状态下做全备:

 

Rman> run {

Sql ‘alter system archive log current’;

backup full database format '/data/backup/full_db_%U.bpk';

}

注:这里不备份在线归档日志,后面做容灾库恢复时,直接从主库copy归档文件。

 

2、容灾库创建

 

启动容灾库到mount状态:

sql> startup mount;

 

利用之前主库热备文件还原数据文件:

rman> restore database;

 

由于目前容灾库状态落后于主库,需要利用主库归档日志文件做recover,以实现状态一致。

需要确定要从主库复制哪些用于恢复的归档文件。

检查还原后datafile的checkpoint_change#

sql> select checkpoint_change# from v$datafile_header;

513326

那么主库上checkpoint在513326之后的归档日志文件都需要复制到容灾库,用于恢复。

 

登录主库,确定需要复制的归档文件:

sql> Select sequence,first_change#,next_change#,name from v$archived_log where first_change#>=513326;

将文件复制容灾库:

$ scp arch*log  容灾主机:/archive/

 

在容灾库上做日志恢复:

Sql> recover automatic standby database;

输入auto,恢复到最新的归档文件。

Sql> recover automatic standby database;

输入cancel,提示恢复成功。

sql> alter database open;   #可以正常打开

sql> recover managed standby database cancel;

sql> recover managed standby database disconnect from session;  #进入日志恢复状态

 

至此,在生产数据库不中断的情况下,完成了容灾数据库的创建。

 

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 支持支持 反对反对
回复

使用道具 举报

沙发
发表于 2012-6-29 16:27:35 | 只看该作者

不错。还可以使用以下方式实现

rman >duplicate target database for standby

 

另外,11g可以不用对主库进行备份,就可以创建dataguard. 

回复 支持 反对

使用道具 举报

板凳
发表于 2012-6-29 18:03:09 | 只看该作者

11g 不用对主库进行备份,就可以创建dg,具体的命令为:

run
 {
   allocate channel c1 type disk;
   allocate auxiliary channel c2 type disk;
   duplicate target database for standby from active database nofilenamecheck;
 }

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|重庆思庄Oracle、Redhat认证学习论坛 ( 渝ICP备12004239号-4 )

GMT+8, 2024-5-9 20:25 , Processed in 0.089518 second(s), 20 queries .

重庆思庄学习中心论坛-重庆思庄科技有限公司论坛

© 2001-2020

快速回复 返回顶部 返回列表