MGR + Proxy 集群故障排查

有私有部署项目报DB连接失败。

当然啦,这只是表象,我们的数据库架构是 MGR 集群(3台 MySQL 实例) + n 个 proxy 组成。

可能是集群崩了,比如剩一个实例了,只能读不能写了。

也可能是 proxy 有问题了,没能成功转发请求。

也可能,是网络问题……

因为不在现场,所以只能请项目经理帮忙收集下信息:

查看 MGR 状态

每台实例上均执行以下操作:

查看实例的状态

查看实例错误日志

less error.log

最后启动时间

登录进入 MySQL,执行 \s 命令:

mysql> \s

查看实例是否只读

查看 MGR 集群状态

查看集群内的成员

查看 MGR 节点的连接状态

查看 MGR 配置信息

查看当前实例是否为主节点

查看节点在 proxy 中的配置

看 Proxy 状态

每个 proxy 上执行以下命令:(不排除是 proxy 故障,导致无法查询)

查看 proxy 错误日志

less error.log

查看 proxy 的最后启动时间

ps -ef | grep proxysql

查看管理成员及其分组

查看连接日志

日志很可能过长,请分别按时间和出错内容进行查询

查看 ping log

如果连接日志有异常,查看 ping log 辅助查询

查看服务器状态

在每台服务器上执行以下命令:

查看服务是否 OOM

查看 docker 是否重启过

后记

项目经理说他执行了以下命令,使得访问恢复正常:

该命令只是把 proxy 的配置从磁盘加载到内存中,如果真是它决定了生死,那大概率就是 这个 proxy 的问题了。

最后更新于

这有帮助吗?