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

标题: Dataguard - 通过主库热备方式创建容灾库 [打印本页]

作者: 爱心果    时间: 2012-6-29 00:18
标题: Dataguard - 通过主库热备方式创建容灾库

部署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;  #进入日志恢复状态

 

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

 


作者: 郑全    时间: 2012-6-29 16:27

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

rman >duplicate target database for standby

 

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


作者: 郑全    时间: 2012-6-29 18:03

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

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






欢迎光临 重庆思庄Oracle、Redhat认证学习论坛 (http://bbs.cqsztech.com/) Powered by Discuz! X3.2