searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

teledb利用agent的alldump重做主从

2024-09-24 10:07:31
15
0

本文介绍teledb故障处理的相关问题处理案例

环境说明

  • mysql 内核版本:
    • v5.7.x

问题现象

主从不一致,利用agent的alldump重做主从。

原因分析

从库因为各种与主库不一致,相差事务太多,无法通过手动执行相差的gtid事务来修复,除了可以利用备份恢复的功能来恢复该从库,还可以利用agent的alldump功能来重做该从库(实质上也是备份恢复,只是agent实现了相应功能)。

解决方法

# ps 不需要关闭agent 通过修改keeper选举达到不触发主从切换。改完记得改回来!

1.#ZK

# 查看zk状态

/app/zookeeper/zookeeper-3.4.11/bin/zkServer.sh status /app/zookeeper/zookeeper_data/2388/zoo.cfg

# 登录zk机器

cd /app/zookeeper/zookeeper-3.4.11/bin/

# 登录zk

./zkCli.sh -server 127.0.0.1:2388

get /teledb/os/2972/sets/set@set_1271846301/setrun@set_1271846301

2.# Keeper

# 登录keeper机器,在keeper目录下选择对应的set

cd /teledb/keeper/kp_2972/

# 通过keeper获取zk的信息

./get_set_info set_1271846301

./modify_election set_1271846301 10.225.83.184_6301 0

3.# Slave

#切换teledb用户

su - teledb

# 登录slave

/teledb/mysql-install/bin/mysql -S /tmp/mysql_6301.sock -uRDS_agent -p

sql:

# 先查看是不是从库

show global variables like '%read_only%';

# 停掉从库 守护进程mysqld_safe和mysqld

ps -ef |grep mysqld

kill -9

# 删除data目录下的数据以触发alldump重做从库

cd /data/data

mv ./data ./databak

4.# Master

# 切换teledb用户

su - teledb

# 登录Master 查看processlist中是否存在长事务,避免在xtrabackup读取数据时由于线程中存在长事务锁住数据导致备份失败。

/teledb/mysql-install/bin/mysql -S /tmp/mysql_6301.sock -uRDS_agent -p

sql:

# 先查看是不是主库,并且查看下是否存在大事务。

show global variables like '%read_only%';

select * from information_schema.processlist where command not in ('sleep','connect') order by 6 desc limit 5\G

show full processlist;

#登录主库所在的实例的agent的log查看alldump日志

tail -100f /teledb/agent/log/nohup/alldump

# 检查重做完成后需要把原来keeper修改的值改回来 !!!!!!!!!!!!!!!!!!!!!!

# Keeper

# 登录keeper机器,在keeper目录下选择对应的set

cd /teledb/keeper/kp_2972/

# 通过keeper获取zk的信息

./get_set_info set_1271846301

./modify_election set_1271846301 10.225.83.xxx_6301 1

其他说明

重做从库流程:

1、停从库的agent

2、停从库mysql

3、mv数据目录

4、创建新的数据目录

5、启动从库agent

6、检查同步情况

0条评论
0 / 1000
1****n
19文章数
0粉丝数
1****n
19 文章 | 0 粉丝
原创

teledb利用agent的alldump重做主从

2024-09-24 10:07:31
15
0

本文介绍teledb故障处理的相关问题处理案例

环境说明

  • mysql 内核版本:
    • v5.7.x

问题现象

主从不一致,利用agent的alldump重做主从。

原因分析

从库因为各种与主库不一致,相差事务太多,无法通过手动执行相差的gtid事务来修复,除了可以利用备份恢复的功能来恢复该从库,还可以利用agent的alldump功能来重做该从库(实质上也是备份恢复,只是agent实现了相应功能)。

解决方法

# ps 不需要关闭agent 通过修改keeper选举达到不触发主从切换。改完记得改回来!

1.#ZK

# 查看zk状态

/app/zookeeper/zookeeper-3.4.11/bin/zkServer.sh status /app/zookeeper/zookeeper_data/2388/zoo.cfg

# 登录zk机器

cd /app/zookeeper/zookeeper-3.4.11/bin/

# 登录zk

./zkCli.sh -server 127.0.0.1:2388

get /teledb/os/2972/sets/set@set_1271846301/setrun@set_1271846301

2.# Keeper

# 登录keeper机器,在keeper目录下选择对应的set

cd /teledb/keeper/kp_2972/

# 通过keeper获取zk的信息

./get_set_info set_1271846301

./modify_election set_1271846301 10.225.83.184_6301 0

3.# Slave

#切换teledb用户

su - teledb

# 登录slave

/teledb/mysql-install/bin/mysql -S /tmp/mysql_6301.sock -uRDS_agent -p

sql:

# 先查看是不是从库

show global variables like '%read_only%';

# 停掉从库 守护进程mysqld_safe和mysqld

ps -ef |grep mysqld

kill -9

# 删除data目录下的数据以触发alldump重做从库

cd /data/data

mv ./data ./databak

4.# Master

# 切换teledb用户

su - teledb

# 登录Master 查看processlist中是否存在长事务,避免在xtrabackup读取数据时由于线程中存在长事务锁住数据导致备份失败。

/teledb/mysql-install/bin/mysql -S /tmp/mysql_6301.sock -uRDS_agent -p

sql:

# 先查看是不是主库,并且查看下是否存在大事务。

show global variables like '%read_only%';

select * from information_schema.processlist where command not in ('sleep','connect') order by 6 desc limit 5\G

show full processlist;

#登录主库所在的实例的agent的log查看alldump日志

tail -100f /teledb/agent/log/nohup/alldump

# 检查重做完成后需要把原来keeper修改的值改回来 !!!!!!!!!!!!!!!!!!!!!!

# Keeper

# 登录keeper机器,在keeper目录下选择对应的set

cd /teledb/keeper/kp_2972/

# 通过keeper获取zk的信息

./get_set_info set_1271846301

./modify_election set_1271846301 10.225.83.xxx_6301 1

其他说明

重做从库流程:

1、停从库的agent

2、停从库mysql

3、mv数据目录

4、创建新的数据目录

5、启动从库agent

6、检查同步情况

文章来自个人专栏
文章 | 订阅
0条评论
0 / 1000
请输入你的评论
0
0