故障重连是DMDSC 集群的基本功能,在之前的博客也测试过,如下:
DM7 达梦 共享存储数据库集群 (7) — DMDSC连接的故障重连
https://www.cndba.cn/dave/article/3701
但之前测试时,一直有一个问题,就是每次故障重连的时候,需要等待的时间过程,需要60秒左右。 当时测试的方法是直接kill DM 数据库实例进程。
大致过程如下:
连接到DMDSC集群:
[dmdba@www.cndba.cn1 ~]$ disql SYSDBA/SYSDBA@cndba
服务器[192.168.74.132:5236]:处于普通打开状态
登录使用时间: 17.137(毫秒)
disql V8
SQL> set timing on
SQL> select * from v$dsc_ep_info;
行号 EP_NAME EP_SEQNO EP_GUID EP_TIMESTAMP EP_MODE EP_STATUS
---------- ------- ----------- -------------------- -------------------- ------------ ---------
1 RAC0 0 937940659 937952137 Control Node OK
2 RAC1 1 966297571 966297680 Normal Node OK
已用时间: 3.891(毫秒). 执行号:1.
SQL> select name from v$instance;
行号 NAME
---------- ----
1 RAC1
已用时间: 2.819(毫秒). 执行号:2.
SQL>
当前我们的连接是RAC1实例,也就是节点2.
在节点2上直接kill RAC1实例:
[root@www.cndba.cn2 ~]# ps -ef|grep dm.ini
dmdba 19578 1 1 16:18 ? 00:00:02 /dm/dmdbms/bin/dmserver path=/home/data/rac1_config/dm.ini dcr_ini=/home/data/dmdcr.ini
root 19778 19233 0 16:21 pts/1 00:00:00 grep --color=auto dm.ini
[root@www.cndba.cn2 ~]# kill -9 19578
[root@www.cndba.cn2 ~]#
在之前的会话中继续查询:会有一个较长的等待,大概60秒左右:
SQL> select name from v$instance;
[-70065]:连接异常,切换当前连接成功.
服务器[192.168.74.131:5236]:处于普通打开状态
SQL> select name from v$instance;
行号 NAME
---------- ----
1 RAC0
已用时间: 3.519(毫秒). 执行号:3.
SQL>
后来测试DMCSSM监视器的时候发现,在DMCSSM监视器中使用ep halt GRP_RAC.RAC1 命令退出程序,可以几秒内完成故障重连。
ep halt GRP_RAC.RAC0
[monitor] 2020-01-05 18:00:34: 通知CSS(CSS0, seqno:0)执行EP HALT GRP_RAC.RAC0
[monitor] 2020-01-05 18:00:38: 通知当前活动的CSS执行清理操作
[monitor] 2020-01-05 18:00:38: 清理CSS(0)请求成功
[monitor] 2020-01-05 18:00:38: 清理CSS(1)请求成功
[monitor] 2020-01-05 18:00:38: 命令EP HALT GRP_RAC.RAC0执行成功
[CSS0] [DB]: 设置命令[EP_CRASH_STEP1], 目标站点 RAC1[1], 命令序号[170]
[CSS0] [DB]: 设置命令[NONE], 目标站点 RAC1[1], 命令序号[0]
[CSS0] [DB]: 命令[EP_CRASH_STEP1]处理结束
[CSS0] [DB]: 设置命令[EP_CRASH_STEP2], 目标站点 RAC1[1], 命令序号[173]
[CSS0] [DB]: 设置命令[NONE], 目标站点 RAC1[1], 命令序号[0]
[CSS0] [DB]: 命令[EP_CRASH_STEP2]处理结束
[CSS0] [CSS]: 设置命令[CONFIG VIP], 目标站点 CSS1[1], 命令序号[6]
[CSS0] [CSS]: 设置命令[NONE], 目标站点 CSS1[1], 命令序号[0]
[CSS0] [DB]: 设置命令[CONFIG VIP], 目标站点 RAC1[1], 命令序号[180]
[CSS0] [DB]: 设置命令[NONE], 目标站点 RAC1[1], 命令序号[0]
[CSS0] [DB]: 命令[CONFIG VIP]处理结束
[CSS0] [DB]: 上次故障处理未真正完成,不允许故障ep重加入
关于DMCSSM监视器的更多内容可以参考我的博客:
DM7 达梦 共享存储数据库集群 (8) — DMCSSM监视器 和 监控相关试图
https://www.cndba.cn/cndba/dave/article/3703
导致这2种情况差距的原因实际上和DMCSS的CSS 的心跳容错时间 DCR_GRP_DSKCHK_CNT 有关,该参数默认配置的是60秒,我们直接kill 进程的方式,无法让CSS及时知道实例的真实状态,必须等待心跳时间后,CSS才会发现实例异常,然后执行了故障重连,所以中间要等待60秒。
如果要快速完成故障重连,可以在DMCSSM监视器中使用ep halt GRP_RAC.RAC1 命令退出程序,就可以几秒内完成故障重连。
版权声明:本文为博主原创文章,未经博主允许不得转载。






