暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

mogdb备库宕机主库不可用的问题一例 most_available_sync

原创 由迪 2023-10-12
165

原作者:银醇超

  • 适用范围
  • 问题概述
  • 问题原因
  • 解决方案
  • 参考文档

适用范围

mogdb2.0及以上

问题概述

客户反馈,mogdb2.0,一主一备,安装有mogha,客户期望实现高可用,但在一些场景中未达预期,其中一个场景是,当备库宕机(直接关主机),主库就变得不可用了(表现为应用界面一直刷新,无法完成登录),预期的结果应该是备库不可用,但主库不受影响;另一种场景是,当主机宕机(异常关机)后,备库应切换成新的主库(包含VIP的切换),然后新主库可用,但实际现象为,备库切换成新主库了,但新主库却不可用(表现为应用界面一直刷新,无法完成登录,如图所示:
003.png004.png

问题原因

从两个场景的现象看,估计是同一个问题,就是集群出现异常时,主库处于一种受保护的阻塞模式,mogdb中有一个参数most_available_sync又叫“最大可用模式”,就有可能产生这样的阻塞;
所以,这一个参数需要首先进行检查,经查发现,这个参数确实没有设置,那么直接设置这个参数,能否解决问题呢?
使用gs_guc进行了参数调整:
gs_guc reload -N all -I all -c “most_available_sync=on”
gs_guc check -N all -I all -c “most_available_sync”
从检查的结果看,这个参数已经on了,此时再做了一次测试,把备库异常关机,结果发现主库仍然不可用,并没有达到预期的结果;
所以重新检查了环境,发现了几个细节问题:
1、主库的mogha在一个月前已关闭:
mogha.jpg
2、主库中查集群,只显示主库,未显示备库:
gs_om_p.jpg
3、查看备库的配置,发现IP是不对的,经查,最初部署备库时这个IP就是错的,但后面用新的IP弄好了备库,然后配置信息却没有完全更新;
因此,当前集群的配置还存在不当信息,状态不是完全正常,需要首先处理好这些问题;
针对集群的配置,是利用集群名称(printenv GS_CLUSTER_NAME),日志目录,GAUSSHOME,GPHOME,PGHOST等几个参数,重新生成配置XML文件,具体命令为:gs_om -t generateconf -X <XML文件> --distribute;
配置更新后验证,显示的IP正确了,主库也能正确显示备库信息了;

此时,重新验证,当备库宕机时,主库依然可写;当主库宕机时,能切换到备库,并且备库可用;

解决方案

首先要保证集群配置正确,状态正常,然后确认已打开最大可用模式参数;

参考文档

mogdb官方文档

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论