为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:8
【操作系统】:linux
【CPU】:Intel(R) Xeon(R) Silver 4216 CPU @ 2.10GHz
【问题描述】*:配置自动切换。但是10次有五次不能进行自动切换。
1、目前采用的方案为数据守护集群,将确认监视器部署在备机上。发生主备切换后,则将新主机上的监视器关闭,然后在旧主机上面启动监视器。
其中机器A dmmal配置文件如下
MAL_CHECK_INTERVAL = 5 ##MAL链路检测时间间隔
MAL_CONN_FAIL_INTERVAL = 5 ##判定MAL链路断开的时间
[MAL_INST1]
MAL_INST_NAME = DMSERVER01 ##实例名,和dm.ini中的INSTANCE_NAME一致
MAL_HOST = 172.17.6.47 ##MAL系统监听TCP连接的IP地址
MAL_PORT = 7336 ##MAL系统监听TCP连接的端口
MAL_INST_HOST = 172.17.6.47 ##实例的对外服务IP地址
MAL_INST_PORT = 5236 ##实例的对外服务端口,和dm.ini中的PORT_NUM一致
MAL_DW_PORT = 7436 ##实例本地的守护进程监听TCP连接的端口
MAL_INST_DW_PORT = 7536 ##实例监听守护进程TCP连接的端口
[MAL_INST2]
MAL_INST_NAME = DMSERVER02
MAL_HOST = 172.17.6.55
MAL_PORT = 7336
MAL_INST_HOST = 172.17.6.55
MAL_INST_PORT = 5236
MAL_DW_PORT = 7436
MAL_INST_DW_PORT = 7536
机器A dmwatcher配置文件如下
[GRP1]
DW_TYPE = GLOBAL ##全局守护类型
DW_MODE = AUTO ##自动切换模式
DW_ERROR_TIME = 20 ##远程守护进程故障认定时间
INST_RECOVER_TIME = 60 ##主库守护进程启动恢复的间隔时间
INST_ERROR_TIME = 10 ##本地实例故障认定时间
INST_OGUID = 453331 ##守护系统唯一OGUID值
INST_INI = /var/lib/dm/dmdata/DAMENG/dm.ini ##dm.ini配置文件路径
INST_AUTO_RESTART = 1 ##打开实例的自动启动功能
INST_STARTUP_CMD = /var/lib/dm/dmdbms/bin/dmserver ##命令行方式启动
RLOG_SEND_THRESHOLD = 0 ##指定主库发送日志到备库的时间阈值,默认关闭
RLOG_APPLY_THRESHOLD = 0 ##指定备库重演日志的时间阈值,默认关闭
机器A dmmonitor 配置文件如下
MON_DW_CONFIRM = 1 #确认监视器模式(0非确认监视器)
MON_LOG_PATH = /var/lib/dm/monitor/log #监视器日志文件存放路径
MON_LOG_INTERVAL = 60 #每隔60秒定时记录系统信息到日志文件
MON_LOG_FILE_SIZE = 32 #日志文件最大32M
MON_LOG_SPACE_LIMIT = 0 #不限定日志文件总占用空间
[GRP1] # 这个名称需要与主备中配置的守护进程的名称一致,否则自动切换会失败
MON_INST_OGUID = 453331 #组GRP1的唯一OGUID值,需要保持一致
MON_DW_IP = 172.17.6.55:7436 #集群内部节点1,对应的ip以及mal_port的值
MON_DW_IP = 172.17.6.47:7436 #集群内部节点2,对应的ip以及mal_port的值
机器A dmarch 配置文件如下
[ARCHIVE_REALTIME1]
ARCH_TYPE = REALTIME #实时归档类型
ARCH_DEST = DMSERVER02 #实时归档目标实例名(主库则填写备库实例名)
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL #本地归档类型
ARCH_DEST = /var/lib/dm/dmarch #本地归档存放路径
ARCH_FILE_SIZE = 128 #单位MB,本地单个归档文件最大值
ARCH_SPACE_LIMIT = 0 #单位MB。0标识无限制,范围1024~4294967294MB
机器B配置如下
dmmal
MAL_CHECK_INTERVAL = 5 ##MAL链路检测时间间隔
MAL_CONN_FAIL_INTERVAL = 5 ##判定MAL链路断开的时间
[MAL_INST1]
MAL_INST_NAME = DMSERVER01 ##实例名,和dm.ini中的INSTANCE_NAME一致
MAL_HOST = 172.17.6.47 ##MAL系统监听TCP连接的IP地址
MAL_PORT = 7336 ##MAL系统监听TCP连接的端口
MAL_INST_HOST = 172.17.6.47 ##实例的对外服务IP地址
MAL_INST_PORT = 5236 ##实例的对外服务端口,和dm.ini中的PORT_NUM一致
MAL_DW_PORT = 7436 ##实例本地的守护进程监听TCP连接的端口
MAL_INST_DW_PORT = 7536 ##实例监听守护进程TCP连接的端口
[MAL_INST2]
MAL_INST_NAME = DMSERVER02
MAL_HOST = 172.17.6.55
MAL_PORT = 7336
MAL_INST_HOST = 172.17.6.55
MAL_INST_PORT = 5236
MAL_DW_PORT = 7436
MAL_INST_DW_PORT = 7536
dmwatcher
[GRP1]
DW_TYPE = GLOBAL ##全局守护类型
DW_MODE = AUTO ##自动切换模式
DW_ERROR_TIME = 20 ##远程守护进程故障认定时间
INST_RECOVER_TIME = 60 ##主库守护进程启动恢复的间隔时间
INST_ERROR_TIME = 10 ##本地实例故障认定时间
INST_OGUID = 453331 ##守护系统唯一OGUID值
INST_INI = /var/lib/dm/dmdata/DAMENG/dm.ini ##dm.ini配置文件路径
INST_AUTO_RESTART = 1 ##打开实例的自动启动功能
INST_STARTUP_CMD = /var/lib/dm/dmdbms/bin/dmserver ##命令行方式启动
RLOG_SEND_THRESHOLD = 0 ##指定主库发送日志到备库的时间阈值,默认关闭
RLOG_APPLY_THRESHOLD = 0 ##指定备库重演日志的时间阈值,默认关闭
dmmonitor
MON_DW_CONFIRM = 1 #确认监视器模式(0非确认监视器)
MON_LOG_PATH = /var/lib/dm/monitor/log #监视器日志文件存放路径
MON_LOG_INTERVAL = 60 #每隔60秒定时记录系统信息到日志文件
MON_LOG_FILE_SIZE = 32 #日志文件最大32M
MON_LOG_SPACE_LIMIT = 0 #不限定日志文件总占用空间
[GRP1] # 这个名称需要与主备中配置的守护进程的名称一致,否则自动切换会失败
MON_INST_OGUID = 453331 #组GRP1的唯一OGUID值,需要保持一致
MON_DW_IP = 172.17.6.55:7436 #集群内部节点1,对应的ip以及mal_port的值
MON_DW_IP = 172.17.6.47:7436 #集群内部节点2,对应的ip以及mal_port的值
dmarch
[ARCHIVE_REALTIME1]
ARCH_TYPE = REALTIME #实时归档类型
ARCH_DEST = DMSERVER01 #实时归档目标实例名(备库则填写主库实例名)
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL #本地归档类型
ARCH_DEST = /var/lib/dm/dmarch #本地归档存放路径
ARCH_FILE_SIZE = 2048 #单位MB,本地单个归档文件最大值
ARCH_SPACE_LIMIT = 102400 #单位MB。0标识无限制,范围1024~4294967294MB
目前测试期间,偶现不能切换的情况,截图如下:
我理解监视器在上述获取到的状态已经属于primary 和open,但是检测到故障后,为何提示故障前不是primary 和open?
这里是能正常切换的截图
恳请大佬帮忙指正原因?是否与配置不恰当有关系?谢谢了!!!!
补充一下,再通过断网的方式进行切换时, 没有出现切换失败的情况,我考虑关机之所以会失败,是不是因为关机过程中,先关了实例,再关了守护进程,再关守护进程之前,已经将实例shutdown的消息告诉了对端导致?