注册
记一次读写分离集群故障排查
培训园地/ 文章详情 /

记一次读写分离集群故障排查

2023/01/09 1512 1 0

现象

3节点RWC集群试用授权过期。在更新完license后启动实例与守护,发现site(0)和site(2)始终处于mount状态,site(1)为open状态。

排查过程

  1. 观察监视器信息
    各节点归档均有效,site(0)和site(2)守护状态为startup状态,check recover提示没有可用的open主库
    image.png
  2. 检查守护日志
    image.png
  3. 检查实例日志
    image.png
    均存在大量dm_connect_async超时信息,怀疑网络异常
  4. 观察启动过程
    正常停止集群,在site(0)开启监视器,观察各节点启动过程,意外发现site(0)监视器未能发现site(2)节点的启动,但是site(2)监视器能发现所有节点。
    image.png
  5. 检查网络状态
    site(0)服务器上执行命令nsetstat -nat | grep site(2)IP,定位问题
    image.png
    这里发现site(0)发起的与site(2)的tcp连接状态异常,怀疑其他服务器与site(2)的tcp连接存在单向连接问题。通过运维终端确认,证实了判断。该状态也与日志中的信息互相得到印证。
  6. 重新部署
    用户发现site(2)曾被业务系统部署人员使用过,并修改了管理员密码。于是下发新的云服务器,现场部署数据库后集群恢复正常。(若有site(2)服务器管理员权限,可以进一步确认问题。但为避免后续运行中出现其他未知问题,重新部署site(2)是个比较稳妥的处理方式)

总结

  1. 问题期间调查发现数据库服务器被误作为应用服务器被相关工程师调试过,且修改了操作系统管理员密码、部署了应用,应该是造成本次问题的根本原因。
  2. 起初怀疑云服务器故障,云平台运维检查后表示没有配置横向网络访问策略,并且迁移服务器后问题依旧,定位问题在云服务器操作系统层面。
  3. 该集群异常的基本逻辑是主库site(0)启动后未发现site(2),认为其处于异常状态,需要人工处理正常,site(0)才能被守护自动open。
  4. 处理此类问题可优先从日志入手,通过日志指引确定大致的排查方向。
评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服