ssh 后台操作 KunDB 主备切换

  其他常见问题
内容纲要

概要描述

不建议通过这种方式操作,此方法只是作为无法打开 kunctld 和 orchestrator 页面时的备用方案。

版本信息:kundb-2.1.2-final
熟悉 kundb 基础操作:kunDB运维之常用查询操作

详细说明

主要有以下几步:

  1. 确定主从节点信息
  2. 检查主从状态,确保流水正常同步
  3. 后台命令操作主备切换
  4. 在新 master 节点修复主从关系,并设置读写模式
  5. 旧 master 节点设置为只读模式
  6. 检查切换后的状态

1.确定主从节点信息

a.任选一pod进入

kubectl get po -owide|grep kundb9
kubectl exec -it kundb-kungate-kundb9-f789df97f-9z6ss bash

b.pod内执行操作

./kunctl.sh ListAllTablets transwarp

file

由图上可知 master 所在节点为kundb-02,replica所在节点为kundb-00、kundb-01

2.检查主从状态

分别进入master所在节点Pod和另外两个备节点pod内,连接底层mysql

show slave status \G

file

通过在备节点执行后获取,其中
Master host为 master节点信息
Slave_IO_Running: yes;Slave_SQL_running yes; 主备同步正常
Slave_SQL_Running_state 无流水落后情况 正常

另外每个底层均执行以下命令,确保master所在节点GTID多于或等于replica的值

show master status \G

file

注意:需确保以上信息均正常方能执行接下来操作

3.操作主备切换(任意一个 kungate pod 内执行)

如果是分布式版本需进入kunctld容器内执行

a.任选一个 kungate pod 内执行命令
将master由02节点切换到00节点,相当于执行"外部重组"操作

./kunctl.sh TabletExternallyReparented transwarp-0000000001

其中transwarp-0000000001对应00节点 从上图图标①获取

4.修复主从关系(新的 master 节点的 kungate pod 内执行)

b.恢复主从关系
此时主备关系已发生转换 目前00节点为master;
因手动执行主备切换后,主从关系也会发生改变,需重新确立,执行以下操作
进入新主所在pod内,连上底层mysql

kubectl exec -it kundb-kungate-kundb9-f789df97f-t8tlm bash
ps -ef |grep mysqld
mysql --socket=/vdir/mnt/disk1/kundb9/vt_0000000001/mysql.sock

file

登陆到新主底层mysql后执行以下操作

stop slave;reset slave all;

file

5.修改读写模式

原主节点的参数 read-only 未发生改变,需手动修改成 read_only=true
进入原主节点的 kungate pod 内,连接底层 mysql(现在为备节点)

file

执行以下操作

set global read_only=true;

file

6.检查切换后的状态

最后可到每个replica的pod底层执行命令检查是否正常

show slave status \G

通过在备节点执行后获取
Master host为 kundb-00 (新主)
Slave_IO_Running: yes;Slave_SQL_running yes; 主备同步正常
Slave_SQL_Running_state 无流水落后情况 正常
至此。

这篇文章对您有帮助吗?

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

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

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

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