概要描述
本文主要介绍关闭manager高可用失败时,txsql数据库中数据没有导出成功,mariadb中数据没有导入成功的情况下,如何恢复manager。
详细说明
在某些异常场景下,关闭manager高可用失败时,出现以下情况,导致manager数据丢失无法进行下一步的问题:
1) 所有manager节点的 /etc/transwarp-manager/master/mysql_dump.out
文件是空的或不存在;
2) 所有 manager txsql 的容器都已经不存在了,下面命令没有返回结果。
docker ps | grep Manager-TxSQL
1. 手动启动Manager-TxSQL的容器
需要首先确定哪些节点上安装了Manager-TxSQL角色,如果某个节点上docker ps | grep Manager-TxSQL存在且状态正常则该步骤跳过
参考该文档:异常情况下如何手动重启 Manager 高可用容器
注:transwarp/txsql:transwarp-6.0.2-final 镜像名字要换成实际的,可以在manager的模板文件(/var/lib/transwarp-manager/master/content/meta/services/MANAGER/<manager版本>/metainfo.yaml
)中查看txsql使用的是哪个镜像。
最好是所有的manager txsql都启动(一般是3个)。
docker run --restart on-failure:5 --privileged=true --detach --env CONF_DIR=/etc/manager/conf --volume /etc/manager/conf:/etc/manager/conf --volume /var/lib/transwarp-manager/master/data/txsql:/var/lib/transwarp-manager/master/data/txsql --volume /var/log/manager/txsql:/var/log/manager/txsql --volume /etc/transwarp/conf:/etc/transwarp/conf --net=host --name=Manager-TxSQL transwarp/txsql:transwarp-6.0.2-final /bin/boot.sh
2. 进入txsql数据库
-
进入txsql容器
[root@tdh622-1 ~]# docker ps | grep Manager-TxSQL 4c9d8035a1bb transwarp/txsql:transwarp-6.0.2-final "/bin/boot.sh" 21 hours ago Up 21 hours Manager-TxSQL [root@tdh622-1 ~]# docker exec -it 4c9d8035a1bb bash [root@tdh622-1 /]#
PS: 以下步骤都是在容器中执行,如果manager-txsql并非全部健康,那么可以选择任意一个健康的容器中执行,其中的数据一般不会有缺失,可以通过得到的dump文件内容来验证。
-
从
/usr/bin/txsql/etc/db.properties
获取用户名和密码 -
通过进程查看txsql的socket文件
由下面信息可知socket文件为/var/lib/transwarp-manager/master/data/txsql/percona.workspace/tmp/percona.sock
[root@tdh622-1 /]# ps -ef | grep mysql root 2374 1 0 Jul05 ? 00:00:00 sh /usr/bin/txsql/bin/mysqld_safe --defaults-file=/usr/bin/txsql/etc/my.cnf --super_read_only mysql 3721 2374 3 Jul05 ? 00:42:54 /usr/bin/txsql/sbin/mysqld --defaults-file=/usr/bin/txsql/etc/my.cnf --basedir=/usr/bin/txsql/percona.src --datadir=/var/lib/transwarp-manager/master/data/txsql/percona.workspace/data --plugin-dir=/usr/bin/txsql/percona.src/lib/mysql/plugin --user=mysql --super-read-only --log-error=/var/lib/transwarp-manager/master/data/txsql/log/my.err --pid-file=/var/lib/transwarp-manager/master/data/txsql/percona.workspace/data/percona.pid --socket=/var/lib/transwarp-manager/master/data/txsql/percona.workspace/tmp/percona.sock --port=13366
-
从
/usr/bin/txsql/etc/install_conf.sh
获取端口号 -
由上面信息获得登录txsql数据库的连接串
mysql -uroot -p258333181 -P13366 -S /var/lib/transwarp-manager/master/data/txsql/percona.workspace/tmp/percona.sock
-
进入 transwarp_manager 数据库查看数据是否都正常
3. 备份manager数据
将数据备份到任意持久化目录下,如 /etc/transwarp/conf/ 路径。
mysqldump -uroot -p258333181 -P13366 -S /var/lib/transwarp-manager/master/data/txsql/percona.workspace/tmp/percona.sock --set-gtid-purged=off --triggers --routines --databases transwarp_manager > /etc/transwarp/conf/manager.sql
4. 恢复manager
剩余恢复步骤参考文档:异常情况下如何关闭manage高可用HA