签到成功

知道了

CNDBA社区CNDBA社区

DM 达梦数据库 DMDSC 故障重连 等待时间 过长 说明

2020-01-05 18:15 3594 2 原创 DM 达梦
作者: dave

故障重连是DMDSC 集群的基本功能,在之前的博客也测试过,如下:http://www.cndba.cn/dave/article/3911

DM7 达梦 共享存储数据库集群 (7) — DMDSC连接的故障重连
https://www.cndba.cn/dave/article/3701http://www.cndba.cn/dave/article/3911http://www.cndba.cn/dave/article/3911

http://www.cndba.cn/dave/article/3911

但之前测试时,一直有一个问题,就是每次故障重连的时候,需要等待的时间过程,需要60秒左右。 当时测试的方法是直接kill DM 数据库实例进程。

大致过程如下:

http://www.cndba.cn/dave/article/3911
http://www.cndba.cn/dave/article/3911http://www.cndba.cn/dave/article/3911

连接到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 命令退出程序,可以几秒内完成故障重连。 http://www.cndba.cn/dave/article/3911

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/3703http://www.cndba.cn/dave/article/3911

导致这2种情况差距的原因实际上和DMCSS的CSS 的心跳容错时间 DCR_GRP_DSKCHK_CNT 有关,该参数默认配置的是60秒,我们直接kill 进程的方式,无法让CSS及时知道实例的真实状态,必须等待心跳时间后,CSS才会发现实例异常,然后执行了故障重连,所以中间要等待60秒。

如果要快速完成故障重连,可以在DMCSSM监视器中使用ep halt GRP_RAC.RAC1 命令退出程序,就可以几秒内完成故障重连。 http://www.cndba.cn/dave/article/3911

版权声明:本文为博主原创文章,未经博主允许不得转载。

用户评论
* 以下用户言论只代表其个人观点,不代表CNDBA社区的观点或立场
dave

dave

关注

人的一生应该是这样度过的:当他回首往事的时候,他不会因为虚度年华而悔恨,也不会因为碌碌无为而羞耻;这样,在临死的时候,他就能够说:“我的整个生命和全部精力,都已经献给世界上最壮丽的事业....."

  • 2297
    原创
  • 3
    翻译
  • 730
    转载
  • 201
    评论
  • 访问:10559295次
  • 积分:4628
  • 等级:核心会员
  • 排名:第1名
精华文章
    热门文章
      Copyright © 2016 All Rights Reserved. Powered by CNDBA · 皖ICP备2022006297号-1·

      AI QQ群