txsql服务故障时常规检查

  原理, 故障排查指南
内容纲要

概要描述


当出现 txsql 服务不可用, txsql pod 的状态为 0/1 running 时,可以使用本案例的方法检查 txsql 状态
获取txsql pod运行状态:kubectl get pods -owide | grep txsql
之后进入问题pod做如下检查:

详细说明

1、ps -efw检查以下三个进程否正常如下

file

mysqld是mysql服务进程;phxsqlproxy是用于sql转发到master节点的进程;phxbinlogsvr是用于同步binlog的进程

如果mysqld进程没有起来,可以去日志目录中看my.err,基本会有明显的error日志,然后google或baidu。,
如果phxsqlproxy和phxbinlogsvr进程没有起来(比较常见)
1,端口是否被占用或者可用
2,pod ip是否变更(phxsqlproxy.conf中的ip和pod ip是否一致)。修复方案:TXSQL修改pod ip,
3,容器泄露(https://www.warpcloud.cn/#/documents-support/docs-detail/document/TDH-PLATFORM/6.2/090TxSQLManual?docType=products%3Fcategory%3DTDH&docName=TxSQL%E4%BD%BF%E7%94%A8%E6%89%8B%E5%86%8C 中4.3小节
4,流水是否正常(TxSQL流水监控)。修复方案(视情况选择不同的方案,详见各个方案的适用范围):TxSQL流水停滞问题的修复、TxSQL单节点离线故障修复或迁移步骤、TxSQL在线修复、迁移、扩容,
5,是否多网卡(ifconfig)。修复方案:需要重出image
6,binlog文件是否损坏(phxbinlog日志中readdata from buffer failed)。修复方案(视情况选择不同的方案,详见各个方案的适用范围):TxSQL单节点离线故障修复或迁移步骤、TxSQL在线修复、迁移、扩容

2、master节点是否选举成功

/usr/bin/txsql/tools/txsql.sh list
date #核查当前时间和过期时间差是不是在60s(默认值)之内

时间差小于60s且配置server节点都在list中,说明整个集群处于正常选主状态。-
时间差小于60s,但list中缺少节点,说明缺少的节点没有加入到该集群。这时候需要分析未成功加入节点的状态,是节点初始化失败,还是端口未开放,导致该节点与其它节点不互通等等其它原因。
时间差大于60s,说明当前属于无主状态。

3、txsql状态是否正常

/usr/bin/txsql/tools/txsql.sh status

4、连接数是否小于默认值500

/usr/bin/txsql/tools/txsql.sh localshell
show processlist;

5、日志收集

1.pod日志kubectl logs TXSQL_POD > txsql1_pod1.log
2.启动日志node_init.log(默认路径/mnt/disk1/hadoop/txsql1,具体路径参考配置文件/etc/txsql1/conf/install_conf.sh中的DATA_DIR),记录了txsql初始化启动过程,可以通过该日志排查一些启动失败的问题
3.运行日志/var/log/txsql1,记录txsql运行状态,用于分析txsql异常状态的原因
my.err,记录mysql的运行状态(mysql有问题,可以直接查该日志)
phxbinlog.xxx,记录binlog运行状态(重要,记录心跳,租期,性能指标,流水状态等信息)
phxsqlproxy.xxx,记录应用向txsql的消息(很少出问题,可以不看)

检查脚本

以上步骤也可以直接下载下面的脚本,上传到txsql pod中直接执行,注意事项参考脚本的注释

txsql状态检查脚本

这篇文章对您有帮助吗?

平均评分 0 / 5. 次数: 0

尚无评价,您可以第一个评哦!

非常抱歉,这篇文章对您没有帮助.

烦请您告诉我们您的建议与意见,以便我们改进,谢谢您。