• 【原创】MHA对MySQL master Too many connections错误的处理机制


    有台服务器故障期间的现象:

    1、 可以正常ping通

    2、 telnet服务端口报Too many connections错误

    3、 ssh连接不上

    查看MHA的管理日志,在强制关机前的health check都是正常的

    这点比较奇怪,因此在测试集群上模拟生产的问题做了测试

    1、 模拟压测制造master Too many connections

     

    2、 观察MHA管理日志,与生产环境相似

    3、 查看HealthCheck.pm代码,原来是长连接

     

    【测试kill掉health check长连接】

    管理日志中记录建立连接时Too many connections的报错,但不会发生切换,每隔10秒做一次ping检测

     

    【测试kill掉health check长连接&停止MHA管理进程】

    再次启动MHA管理进程时会报错

      

    【解决思路】

    1、 已发生Too many connections的问题,想办法尽快把master搞死

    尝试ssh连接到本机上shutdown mysql服务,ssh连接不上的情况下,联系NOC重启或关机

    2、 每台服务器本地部署一个检测和扩连接的脚本

    3、 还有一个思路是,改进当前调整connections的逻辑,对每台服务器维护一个连接池或建立一个长连接

    4、 最佳的方案是不采用one-thread-per-connection的连接方式,改用pool-threads。

    遗憾的是在MySQL官方版本上这个是收费的,一些公司使用的是Percona。

     
     

  • 相关阅读:
    solrcloud
    nginx代理服务器3--高可用(keepalived)
    Nginx反向代理1--基本介绍-虚拟主机
    Nginx反向代理2--配置文件配置
    C/S与B/S区别
    数据类型转换(客户端与服务器端)
    SYN Cookie的原理和实现
    ubuntu 18.04 配置 rc.local
    Summary Checklist for Run-Time Kubernetes Security
    形意拳内功心法
  • 原文地址:https://www.cnblogs.com/wangdong/p/9237664.html
Copyright © 2020-2023  润新知