manager HA关闭失败,txsql数据库中数据没有保存成功时如何恢复

  异常退出
内容纲要

概要描述


本文主要介绍关闭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使用的是哪个镜像。

file

最好是所有的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 获取端口号

    file

  • 由上面信息获得登录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

这篇文章对您有帮助吗?

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

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

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

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