内容纲要
概要说明
开启HA情况下,manger启动最大的不同是使用的数据库变成了txsql,所以只要保证txsql正常了,其他部分还是用普通的排查方案即可
详细说明
开始之前首先确定是否有开启manager HA :
cat /etc/transwarp-manager/master/application.conf | grep -i ha.enabled
1、开启HA之后不再需要mariadb
如果Manager开启了HA,需要半数以上的Manager服务保持开启状态,请到其他节点上检查Manager服务的状态,如果停止,请启动Manager服务,再尝试访问8180页面。
开启了HA之后,就不再需要mariadb了,而是使用txsql,但是代码中却忘记了修改,导致的结果是:开了HA之后,每次重启manager,还是会尝试连接d
所以,如果开了HA,重启manger时候出现了db启动失败,可以修改/etc/init.d/transwarp-manager文件
把下面这段内容注释掉:
/etc/init.d/transwarp-manager-db start
if [ $? -ne 0 ]; then
echo "[FAILED] start database failed!"
echo "check /var/log/transwarp-manager/master/mysql/transwarp-manager-db.log to see details"
exit ${STATUS_OTHER_ERROR}
fi
这样只要manager-txsql正常manager就可以提供服务,至于mariadb,可以在有空的时候再去寻找启动失败原因
2、验证manager HA 各个角色的容器是否正常
连接txsql数据库的指令是:
mysql -u transwarp -P3366 -p$password -h $hostname
验证manager用到的txsql状态的命令是 docker ps a | grep Manager
,这样就可以列出所有HA相关的continer,其中最主要的是manager-zookeeper跟manager-txsql
PS: zookeeper /txsql一般都会有三个节点,要保证全部健康
重启容器方法是: txsql节点上执行docker restart Manager-TxSQL
如果重启还是不行,就需要专业的技术支持了