异常情况下如何关闭manage高可用HA

  其他常见问题
内容纲要

概要描述


一些不规范的操作导致 Manager 8180 页面无法关闭 Manager 高可用,需要在后台操作删除 Manager 高可用,来完成 Manager 的修复;
本案例集群环境:Manager 6.0-2019-01-25,TDH 6.0.2

详细说明


后台关闭 Manager 高可用的流程如下:

  1. 停止 Manager 和 Manager-db,并通过修改配置文件关闭 Manager HA
  2. 将 Manager-TXSQL 数据迁移到 MariaDB,并更新权限
  3. 登录 Manager 数据库停止正在运行的任务
  4. 修改 Manager-db 的登录连接方式
  5. 删除 Manager HA 相关的 container
  6. 登录 MariDB 删除 Manager HA 的安装信息
  7. 删除 Manager HA 相关的目录文件

1、停止 Manager 和 Manager-db,并通过修改配置文件关闭 Manager HA

执行下面命令,手动停止 manager 进程和 manager db,需要在每个 Manager server 节点都操作

/etc/init.d/transwarp-manager stop
/etc/init.d/transwarp-manager-db stop

在配置文件中关闭HA,需要在每个 Manager 节点都操作,涉及到的配置文件:

/etc/transwarp-manager/master/ha.properties
/etc/transwarp-manager/master/application.conf

将文件 ha.properties 中的参数 “transwarp.manager.master.ha.enable” 值修改为 false
将文件 application.conf 中的参数 “ha.enabled” 值修改为 false

修改后的参数如下:

2、将 Manager-TXSQL 数据迁移到 MariaDB,并更新权限

2.1 备份数据库数据信息

一定要备份如下数据文件,涉及到的需要备份的文件:

/var/lib/transwarp-manager/master/data/mysql/* 和 /etc/transwarp-manager/master/mysql_dump.out

可以参考如下方式 cp 一份到其他目录:

cp -r /var/lib/transwarp-manager/master/data/mysql /root/mysql_manager_data
cp /etc/transwarp-manager/master/mysql_dump.out /root/mysql_dump-ha.out

备份完毕之后,清空 /var/lib/transwarp-manager/master/data/mysql注意是只清空该目录下的数据,目录要保留

rm -rfv /var/lib/transwarp-manager/master/data/mysql/*
2.2 Manager-TXSQL 数据迁移到 MariaDB

执行下面命令启动 Manager-db 数据库(MariaDB):

/etc/init.d/transwarp-manager-db start

执行下面命令将 Manager-Txsql 的数据导出到 manager-txsql_dump.out 文件中,注意下面使用到的密码 “538043184” 是文件 /etc/manager/conf/db.properties 中 db.password 对应的密码。导出后检查下文件大小,文件内容等大致对不对!!!

mysqldump --single-transaction -h$(hostname -i) -uroot -P3366 -p"538043184" transwarp_manager > /etc/transwarp-manager/master/manager-txsql_dump.out

执行下面SQL,刷新权限并将 Manager-TXSQL 数据迁移到 MariaDB,注意下面命令中使用到的密码 “rOsNsqX4uC” 是文件 /etc/transwarp-manager/master/db.properties 中的密码

# 设置数据库 root 用户的密码,此密码要和 transwarp 用户的密码保持一致
mysqladmin -S /var/run/mariadb/transwarp-manager-db.sock -h127.0.0.1 -uroot -P3308 password "rOsNsqX4uC"

# 刷新数据库的用户权限
mysql -h127.0.0.1 -uroot -p"rOsNsqX4uC" -P3308 -e "
CREATE DATABASE IF NOT EXISTS transwarp_manager CHARACTER SET utf8;
GRANT ALL PRIVILEGES ON transwarp_manager.* TO 'transwarp'@'%' IDENTIFIED BY 'rOsNsqX4uC';
GRANT ALL PRIVILEGES ON transwarp_manager.* TO 'transwarp'@'localhost' IDENTIFIED BY 'rOsNsqX4uC';
SET PASSWORD FOR 'transwarp'@'%' = PASSWORD('rOsNsqX4uC');
SET PASSWORD FOR 'transwarp'@'localhost' = PASSWORD('rOsNsqX4uC');
FLUSH PRIVILEGES;"

# 将 Manager-TXSQL 数据迁移到 MariaDB
mysql -h127.0.0.1 -utranswarp -p"rOsNsqX4uC" -P3308 transwarp_manager < /etc/transwarp-manager/master/manager-txsql_dump.out

3、登录 Manager 数据库停止正在运行的任务

进入 Manager MariaDB 数据库:

mysql -h localhost -u transwarp -p$(cat /etc/transwarp-manager/master/db.properties | grep io.transwarp.manager.db.password | awk -F = '{print $2}') -S /var/run/mariadb/transwarp-manager-db.sock -D transwarp_manager

将 task、stage、job表中状态是 WAITING 和 RUNNING 的任务都设置为 FAILED,参考如下SQL:

UPDATE task SET status = 'FAILED' WHERE status = 'WAITING' OR status = 'RUNNING';
UPDATE stage SET status = 'FAILED' WHERE status = 'WAITING' OR status = 'RUNNING';
UPDATE job SET status = 'FAILED' WHERE status = 'WAITING' OR status = 'RUNNING';

4、修改 Manager-db 的登录连接方式

修改配置文件 jdbc 连接串和密码,涉及文件:/etc/transwarp-manager/master/db.properties

# MariaDB 连接串参考示例
io.transwarp.manager.db.url=jdbc:mysql://localhost:3308/transwarp_manager?autoReconnect=true&failOverReadOnly=false&createDatabaseIfNotExist=false&characterEncoding=UTF-8

然后执行如下命令重启 Manager:

/etc/init.d/transwarp-manager restart

此时 Manager 的 8180 页面应该恢复正常,可以使用了。打开 8180 检查服务信息是否完整正确。

5、删除 Manager HA 相关的 container

在 Manager 正常使用后,执行如下操作:

查看并删除 Manager-TxSQL container,需要在每个 Manager-TXSQL 节点都执行,60bd7d50ccc1 是 Manager-TXSQL container id

docker ps -a | grep Manager-TxSQL
docker rm -vf 60bd7d50ccc1

查看并删除各个节点的 Manager-Zookeeper 镜像,需要在每个Manager-Zookeeper 节点都执行,d7696be27642 是 Manager-Zookeeper container id:

docker ps -a | grep Manager-Zookeeper
docker rm -vf d7696be27642

6、删除 Manager HA 的安装信息

进到 Manager 数据库,在 service 表中把 Manager 服务删除:

# 登录 Manager-db 数据库
mysql -h localhost -u transwarp -p$(cat /etc/transwarp-manager/master/db.properties | grep io.transwarp.manager.db.password | awk -F = '{print $2}') -S /var/run/mariadb/transwarp-manager-db.sock -D transwarp_manager

# 删除 Manager HA 的安装信息
select * from service where type="MANAGER";
delete from service where type="MANAGER";

7、删除 Manager HA 相关的目录文件

Manager 正常使用后,在 Manager HA 相关的每个节点执行以下命令,删除目录和文件

mountpoint -q /transwarp/mounts/manager/var/lib/transwarp-manager/master/data/txsql && umount -lf /transwarp/mounts/manager/var/lib/transwarp-manager/master/data/txsql
rm -rfv /var/lib/transwarp-manager/master/data/txsql

mountpoint -q /transwarp/mounts/manager/etc/manager/conf && umount -lf /transwarp/mounts/manager/etc/manager/conf
rm -rfv /etc/manager/conf

mountpoint -q /transwarp/mounts/manager/var/log/manager && umount -lf /transwarp/mounts/manager/var/log/manager
rm -rfv /var/log/manager

mountpoint -q /transwarp/mounts/manager/var/manager/zookeeper && umount -lf /transwarp/mounts/manager/var/manager/zookeeper
rm -rfv /var/manager/zookeeper

至此,Manager 高可用通过后台的方式彻底删除了

这篇文章对您有帮助吗?

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

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

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

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