一步一步配置DataGuard Broker

点击上方"蓝字"

关注我们,享更多干货!

一、DataGuard Broker介绍

DataGuard Broker能更加容易的管理和维护多个Standby Database。如果有多个备库或者RAC数据库中有个多个实例,如果进行手工配置管理,就会太过于麻烦,Oracle提供了DataGuard Broker工具,可以在一台服务器上对所有数据库进行统一的配置和管理,这些配置会自动同步到各个数据库中。Failover和Switchover可以在DGMGRL工具中是用一条命令切换,大大简化了我们管理的过程。

a7e0c60374730350d750504f4b0d3c55.png

简单介绍一下DataGuard Broker的工作原理:Oracle DataGuard Broker分为Client Side和Server Side。

  • Client Side可以通过EM和DGMGRL两种工具对服务端进行管理和维护。

  • Server side会有一个配置文件和一个后台进程叫Data Guard Broker monitor process(DMON)。

b7c30d99d82c7e46614796f4b10bf66b.png

DMON:它是一个用来管理Broker的后台进程,这个进程负责本地数据库与standby数据库的DMON进程进行通讯,当主库上接收到一个请求的时候,它会协调其他数据库上的DMON进程处理相应的请求,比如switchover。同时会更新本地系统中的配置文件,并与standby数据库上的DMON进程进行通信,更新Standby上的配置文件,DMON进程如下图:

6bbe97225c51f843bece1336b3e4aff6.png

配置文件:配置参数控制数据库状态、监控健康状况并提供其他操作特性。

二、DG_broker搭建(RAC→RAC)

1.主、备库需把log_archive_dest_2置为空在搭建DGbroker。

alter system set log_archive_dest_2='' scope=both sid='*';

2.DB_BROKER_CONFIG_FILEn参数用于指定DataGuard配置文件的路径,DG_BROKER_START参数设置实例启动的时候是否自动启动Broker。特别注意一点:RAC中需要把Broker配置文件放入ASM中。

主库
ASMCA
mkdir +fradg/orcl/DATAGUARDCONFIG
mkdir +datadg/orcl/DATAGUARDCONFIG
ALTER SYSTEM SET DG_BROKER_CONFIG_FILE1='+datadg/orcl/DATAGUARDCONFIG/dgb_config1.ora' SCOPE=BOTH sid='*';
ALTER SYSTEM SET DG_BROKER_CONFIG_FILE2='+fradg/orcl/DATAGUARDCONFIG/dgb_config2.ora' SCOPE=BOTH sid='*';
alter system set dg_broker_start=false scope=both sid='*';
备库
ASMCA
mkdir +fradg/orcladg/DATAGUARDCONFIG
mkdir +datadg/orcladg/DATAGUARDCONFIG
ALTER SYSTEM SET DG_BROKER_CONFIG_FILE1='+datadg/orcladg/DATAGUARDCONFIG/dgb_config1.ora' SCOPE=BOTH sid='*';
ALTER SYSTEM SET DG_BROKER_CONFIG_FILE2='+fradg/orcladg/DATAGUARDCONFIG/dgb_config2.ora' SCOPE=BOTH sid='*';

alter system set dg_broker_start=true scope=both sid='*';

设置完上面的参数后,我们还需要修改监听listener.ora文件.我们必须添加一个静态注册的service_name为db_unique_name_DGMGRL.db_domain,这个service_name会在DGMGRL重启数据库的时候用到.通过DGMGRL重启数据库时DMON进程会先将数据库关闭,然后DGMGRL在通过静态监听中的service_name连接到数据库,发送启动的命令。

3.主库添加静态监听

  • 一节点

SID_LIST_LISTENER=(SID_LIST=(SID_DESC=(GLOBAL_DBNAME=orcl_DGMGRL)(SID_NAME=orcl1)(ORACLE_HOME=/app/oracle/oracle/product/12.1.0/db_1)))
  • 二节点

SID_LIST_LISTENER=(SID_LIST=(SID_DESC=(GLOBAL_DBNAME=orcl_DGMGRL)(SID_NAME=orcl2)(ORACLE_HOME=/app/oracle/oracle/product/12.1.0/db_1))

4.备库添加静态监听

  • 一节点

SID_LIST_LISTENER=(SID_LIST=(SID_DESC=(GLOBAL_DBNAME=orcladg_DGMGRL)(SID_NAME=orcladg1)(ORACLE_HOME=/app/oracle/oracle/product/12.1.0/db_1)))
  • 二节点

SID_LIST_LISTENER=(SID_LIST=(SID_DESC=(GLOBAL_DBNAME=orcladg_DGMGRL)(SID_NAME=orcladg2)(ORACLE_HOME=/app/oracle/oracle/product/12.1.0/db_1)))

5.添加完成后依次reload监听

lsnrctl reload

reload完成后依次监听状态,查看对应服务是否注册在监听中

6.四节点Oracle用户添加tnsnames.ora

orcldb_DGMGRL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 对应的vip)(PORT = 1521))
    (ADDRESS = (PROTOCOL = TCP)(HOST = 对应的vip)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcldb_DGMGRL)
    )
  )

orcldbadg_DGMGRL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 对应的vip)(PORT = 1521))
    (ADDRESS = (PROTOCOL = TCP)(HOST = 对应的vip)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcldbadg_DGMGRL)
   )
  )

7.主库一节点配置Broker

dgmgrl sys/xxx
CREATE CONFIGURATION 'orcl_broker'(broker的名字随意起) AS PRIMARY DATABASE IS 'orcl'(主库的db_unique_name) CONNECT IDENTIFIER IS 'orcl_DGMGRL'(连接主库的service_name);

add database 'orcladg'(备库的db_unique_name) as connect identifier is 'orcladg_DGMGRL'(连接备库的service_name) maintained as physical;

enable configuration;开启broker

show configuration;检查broker配置   

switchover to xxx;主备切换

参数说明:orcl_broker是配置的名称,这里可以随便填PRIMARY DATABASE IS ‘orcl’ ,这里的orcl是指Database的db_unique_name,而connect identifier is ‘orcl_DGMGRL’这里的orcl_DGMGRL是指tnsname.ora连接到主库的net service name。

add database ‘orcladg’ ,这里的orcladg2是指database的db_unique_name,而AS CONNECT IDENTIFIER IS orcladg_DGMGRL 这里的orcladg_DGMGRL是指tnsname.ora连接到standby database的net service name。

8.常用命令:

show configuration;
show database orcl;
show database orcladg;
show database verbose orcl;
show database verbose orcladg;
show instance verbose orcl1 on database orcl;
show instance verbose orcl2 on database orcl;
show instance verbose orcladg1 on database orcladg;
show instance verbose orcladg2 on database orcladg;

墨天轮原文链接:https://www.modb.pro/db/113953?sjhy(复制到浏览器或者点击“阅读原文”立即查看)

关于作者

张鹏远,云和恩墨西区技术顾问,Oracle 11g OCP。拥有OBCA、OGCA证书;热衷于技术钻研,对于Oracle、Mysql、Postgres有所了解。致力于将积累的技术与行业实践进行分享!健身狂热分子;吃喝达人。

97a48fd8dbfd60c596c26127d4392073.png

END

583fcf57170be1918e188f4307b7f3ea.png

由中国DBA联盟和墨天轮主办的 2021数据技术嘉年华 将于11月19日-20日在北京丽都皇冠假日酒店盛大召开。

大会门票限时0元领取

    扫描下方的二维码即可!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值