DataGuard搭建物理StandBy

实验使用DataGuard搭建一套物理StandBy环境

主库Primary:192.168.1.1
备库StandBy:192.168.1.2

主要步骤
1.主库设置归档模式,并且设置强制日志
SQL> select log_mode from v$database;
LOG_MODE
------------
ARCHIVELOG
SQL> alter database force logging;
Database altered.

2.主库,备库设置tns和监听器
主库和备库的tnsnames.ora设置相同
PRIMARY =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.1)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = orcl)
    )
  )

STANDBY =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.2)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = orcl)
    )
  )
主库和备库的监听器IP地址不同
SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = orcl)
      (ORACLE_HOME = /home/oracle/app/oracle/product/11.2.0/dbhome_1)
      (SID_NAME = orcl)
    )
  )

LISTENER =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.1)(PORT = 1521))
  )

ADR_BASE_LISTENER = /home/oracle/app/oracle

3.备份主库
rman target /
backup database;
backup current controlfile for standby;

4.主库创建密码文件
在$ORACLE_HOME/dbs目录下创建密码文件

[oracle@master dbs]$ pwd
/home/oracle/app/oracle/product/11.2.0/dbhome_1/dbs
[oracle@master dbs]$ orapwd file=orapworcl password=123456

5.将主库的备份,spfile和密码文件传输到备库相同的位置(若备库不存在该位置则创建)

6.修改主库spfile,重启数据库使设置生效
alter system set db_unique_name=orcl scope=spfile;
alter system set log_archive_dest_2='service=standby valid_for=(online_logfiles,primary_role) db_unique_name=orcl' scope=spfile;
alter system set fal_client=primary;
alter system set fal_server=standby;
alter system set standby_file_management=auto scope=spfile;

7.启动备库至nomount,修改备库spfile
(spfile中的目录在备库必须存在,可以先导出pfile,然后创建相关的目录)

alter system set db_unique_name=orcl scope=spfile;
alter system set log_archive_dest_2='service=primary valid_for=(online_logfiles,standby_role) db_unique_name=orcl' scope=spfile;
alter system set fal_client=standby;
alter system set fal_server=primary;
alter system set standby_file_management=auto scope=spfile;

8.主库执行duplicate
rman target / auxiliary sys/123456@standby
duplicate target database for standby nofilenamecheck;

如果主库备份包括归档日志,
backup database;
backup current controlfile for standby;
sql "alter system archive log current";
backup filesperset 10 archivelog all;

则使用如下命令,直接在备库应用归档
duplicate target database for standby dorecover nofilenamecheck;

9.启用物理standby
startup nomount;
ALTER DATABASE MOUNT STANDBY DATABASE;
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;

如果需要停止物理standby,则执行如下命令
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL; 


搭建过程需要注意两点
1.密码文件必须从主库传输到备库,不能使用相同的密码在备库创建密码文件
2.如果备份中有归档执行
duplicate target database for standby dorecover nofilenamecheck;
如果备份中没有归档日志,则执行
duplicate target database for standby nofilenamecheck;
否则报错如下:
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of Duplicate Db command at 03/28/2012 12:20:16
RMAN-03015: error occurred in stored script. Memory Script
RMAN-06026: some targets not found - aborting restore
RMAN-06024: no backup or copy of the control file found to restore

dorecover
从目标数据库用归档日志备份恢复备用数据库。一旦备用数据库的创建完成,RMAN将对备用数据库应用主数据库中的所有归档日志,一直到RMAN中注册的最新的归档日志。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29254281/viewspace-1315088/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/29254281/viewspace-1315088/

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值