oracle 19c adg broker的配置


Data Guard Broker是简化DG复杂的管理过程的一个工具。仅在控制端输入一个命令就能方便实现主备数据库间的切换。

在Data Guard Broker的基础上,配置并启用Fast-Start Failover,就能自动检测发现主机故障,实现主备切换,故障转移。

一、配置broker(主库)

select flashback_on from v$database;
alter database flashback on;
show parameter flashback;
#主从数据库必须置为最大可用状态,如果不是也不要着急,一会用dgmgrl来切成最大可用。
select database_role,protection_mode,open_mode, switchover_status from v$database;
alter system set dg_broker_start=true;
show parameter dg_broker_start;

二、配置broker(备库)

select flashback_on from v$database;
alter database flashback on;
show parameter flashback;
#这里如果报错需要先取消日志应用。
#ERROR at line 1: 
#ORA-01153: an incompatible media recovery is active
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
alter database flashback on;
show parameter flashback;
alter database recover managed standby database using current logfile disconnect from session;
select database_role,protection_mode,open_mode, switchover_status from v$database;
alter system set dg_broker_start=true;
show parameter dg_broker_start;
##重置备库log_archive_dest_2参数不然添加备库时会报错
alter system set log_archive_dest_2='';

三、create configuration

dgmgrl sys/oracle
create configuration orcl as primary database is primary connect identifier is primary;
add database standby as connect identifier is standby maintained as physical;
###如果不重置log_archive_dest_2参数,添加备库时这里会报错

四、修改broker参数

1.配置最大可用模式

注意:两个数据库必须置为最大可用模式,如果不是,可用用如下命令来操作:

dgmgrl sys/oracle
edit database primary set property 'logxptmode'='sync';
edit database standby set property 'logxptmode'='sync';
edit configuration set protection mode as MAXAvailability; 
show configuration;
2.修改快速故障转移的延迟时间

修改快速故障转移的延迟时间(默认为30秒,有些少):
主库终止 从库延迟10s后从库再启FastStartFailoverThreshold (表示观察者与备库同主库断网后几秒,自动启动failover)
注意:在生产中要把FastStartFailoverThreshold这个参数调大点,要不在生产中发生网络不畅通的情况下,等10s就自动切换了,所以还是改大点吧,我改的是3分钟

DGMGRL> edit configuration set property FastStartFailoverThreshold=180;
3.修改staticconnectidentifier参数或者静态参数文件

如果没有这个步骤在broker切换时会提示连接不到数据库,需要手动启动新备库。
因为staticconnectidentifier
指向静态监听名<db_unique_name>
该参数默认指向的service_name是<db_unique_name>_DGMGRL如果不修改该参数则需要修改监听文件。

DGMGRL> edit database primary set property StaticConnectIdentifier= '(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=oracle1)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=orcl)(INSTANCE_NAME=orcl)(SERVER=DEDICATED)))';
Property "staticconnectidentifier" updated
DGMGRL> edit database standby set property StaticConnectIdentifier= '(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=oracle2)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=orcl)(INSTANCE_NAME=orcl)(SERVER=DEDICATED)))';
Property "staticconnectidentifier" updated
##(SERVICE_NAME=orcl)(INSTANCE_NAME=orcl)为监听文件中的监听名
show database verbose primary;可以看到该设置的参数。

修改监听文件方法
在listener.ora中
SID_LIST_LISTENER =最后一个反括号前添加如下部分。并重新启动监听。

 (SID_DESC =
     (GLOBAL_DBNAME=ocrl_DGMGRL)
     (ORACLE_HOME =/u01/app/oracle/product/12.1.0/db_1)
     (SID_NAME =ocrl)
   )
4.启动快速故障转移:
enable configuration;
show configuration;
show configuration verbose;
show database verbose primary;
show database verbose standby;

五.启动备库观察

连接到备库操作:

DGMGRL> start observer;
备注:通过DGMGRL启动observer会阻塞当前会话,如果这时结束控制台observer会退出,所以建议用后台方式启动
nohup dgmgrl sys/123456@SL "start observer file=FSFO.dat">>observer.log 2>&1 &

六.broker切换

下面的standby、primary非关键字而是tnsname名。
现在可以来回自由切换了。

DGMGRL> show configuration;
DGMGRL> switchover to standby;
DGMGRL> switchover to primary;

七.其他broker操作

测试环境
primary为主库
standby为备库。

1.查看日志应用情况:

select process, status, thread#, sequence#, block#, blocks from v$managed_standby;

2.暂停与开启日志应用:

备库操作。
edit database standby set state=“APPLY-OFF”;
show database standby
edit database standby set state=“APPLY-ON”;

3.暂停与开启日志传输:

主库操作
edit database primary set state=“transport-off”;
show database primary
edit database primary set state=“transport-on”;

4.将数据库离线

edit database primary set state=‘offline’;

5.禁用与删除配置

disable configuration

禁用某个备用库
disable database ‘test’;

从配置中删除备用库
remove database ‘test’

删除配置
remove configuration

5.failover

做failover要小心,总会有一些信息丢失.另外failover还可以加入IMMEDIATE选项,立即切换.
另外这样做如果主库如果能开启的情况下,要打开flashback功能,才能做reinstate操作

ENABLE FAST_START FAILOVER;
show fast_start failover

如果想打开Stuck Archiver 触发条件.执行如下:
DGMGRL> enable fast_start failover Condition “Stuck Archiver”

可以指定触发ora错误是进行failover 如触发ora55623时自动failover
DGMGRL> ENABLE FAST_START FAILOVER CONDITION 55623;

6.reinstate database standby;

在11G以前,failover后,原来的主库需要重建.在11G后可以使用reinstate来重建备用库,这个操作仅仅需要打开flashback功能.
reinstate database standby;
11G要打开flashback的功能,已经不需要进入到mount状态,随时都可以切换flashback功能.
备用库要启用flashback功能,首先要停止redo-apply.切换后在打开redo-apply.

7.snapshot standby

转换为snapshot standby后,数据库为读写模式。
转换为snapshot standby需先进行failover
select database_role,open_mode,protection_mode,force_logging,FLASHBACK_ON from v$database;
disable fast_start failover ;
convert database standby to snapshot standby;

Select database_role,open_mode,protection_mode,force_logging,FLASHBACK_ON,resetlogs_change#,prior_resetlogs_change# from v d a t a b a s e ; s e l e c t ∗ f r o m v database; select * from v database;selectfromvrestore_point;

将数据库恢复成物理standby模式。
convert database standby to physical STANDBY;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值