当前位置: 首页 > news >正文

mysql主从断开后问题排查及修复

服务器mysql主从同步断开后,进行主从恢复

问题:mysql的主从断开了,在从服务器上通过以下命令查看状态,发现Slave_SQL_Running为No

SHOW SLAVE STATUS\G;

在这里插入图片描述

Slave_IO_Running:表示从服务器读取主服务器日志的线程
Slave_SQL_Running:表示从服务器执行日志的线程(一般都是这个失效导致主从不同步)

解决思路

因为本地的主从数据库很早就断开了,导致后面很多数据不一致,索性直接将主库的数据先拷贝一份(项目已上线,所以会一直有数据操作。备份主服务器数据库的数据时需先查看主服务器的当前日志文件及偏移量),然后将主服务器拷贝的数据同步到从服务器,之后在从服务器重新配置与主服务器的关系(一般是需要调整,应为查看主服务器状态和备份数据存在一点时间差,所以这个阶段的操作可能会多备份一点数据)。

ps:测试服是一台服务器配置的主从,正式是两台。
单台服务器配置主从和参开前期文章[单机一主一从配置],

单机一主一从解决方案:

  1. 查看主服务器的状态(登录mysql后操作)
SHOW MASTER STATUS;

在这里插入图片描述

  1. 主服务器数据备份(mysql安装bin目录下执行,需指定端口)
./mysqldump -u root -p --host=127.0.0.1 --port=3307 --all-databases --master-data=2 > dump.sql
  1. 备份的数据同步至从服务器(mysql安装bin目录下执行,需指定端口)
./mysql -u root -p --host=127.0.0.1 --port=3308 < dump.sql
  1. 从服务器暂停后重置(需登录mysql操作)
-- 暂停从服务器
STOP SLAVE;-- 从服务重置
RESET SLAVE ALL;
  1. 从服务器建立与主服务器绑定关系(需登录mysql操作)
CHANGE MASTER TOMASTER_HOST = '主服务器ip',MASTER_PORT = 3306, --主服务器端口MASTER_USER = 'copy', --之前设置的从用户账户 MASTER_PASSWORD = 'XXXXXXX',  -- 主服务器密码MASTER_LOG_FILE = 'master1-bin.000048',  -- 你需要确认日志文件名(参考第一步)MASTER_LOG_POS = 190395145;  -- 日志文件位置(参考第一步)
  1. 重新启动从服务器
START SLAVE;
  1. 查看从服务器状态
SHOW SLAVE STATUS\G;

若重启后还是存在问题,继续按照下面的方法逐步排查修复(若两个都是Yes,则表示主从已经配置好了,不用继续执行下面的步骤了)
在这里插入图片描述

  1. 执行下面的命令,查询是什么数据导致的失败(一般就是找不到记录、逐渐冲突等)
select * from performance_schema.replication_applier_status_by_worker\G;

在这里插入图片描述
上面就表示日志中主库有一个修改操作,然后操作同步至从库时,在从库中未找到对应记录,解决方法就是将主库的这条数据单独拷贝到从库。
但是不知道具体是哪一条,需要看第9步骤对应的命令

  1. 查看主库日志文件,定位错误
./mysqlbinlog --no-defaults -v -v --base64-output=decode-rows /usr/local/mysql-8.0.31/data/3307/master1-bin.000048 | grep -A 20 "end_log_pos 190437215" --color

/usr/local/mysql-8.0.31/data/3307/master1-bin.000048:表示主库对应的错误日志位置
end_log_pos 190437215:表示日志中的位置偏移

在这里插入图片描述
可以看到@n对应的值就是数据表的字段,查询xxl_job.xxl_job_log表第一个字段值为“1689280”对应的记录,并拷贝至从库

  1. 再次执行4-7步骤,直至Slave_IO_Running=Yes, Slave_SQL_Running=Yes
http://www.lryc.cn/news/513045.html

相关文章:

  • [2025] 如何在 Windows 计算机上轻松越狱 IOS 设备
  • 计算机网络—————考研复试
  • [pdf、epub]260道《软件方法》强化自测题业务建模需求分析共216页(202412更新)
  • LeetCode - 初级算法 数组(只出现一次的数字)
  • Android性能优化概述
  • C++ 实现map容器从大到小排序
  • java中的文件操作
  • 修复OpenHarmony系统相机应用横屏拍照按钮点不到的问题
  • 2024165读书笔记|《飞花令·合》——人生飘忽百年内,且须酣畅万古情
  • 哈夫曼编码(Huffman Coding)与哈夫曼树(Huffman Tree)
  • Django项目中高效管理和使用选择常量
  • 拦截器(Interceptor)的使用
  • 线段树例题题解
  • AI提示词工程的“优化背后”:如何通过精准提示提升模型性能?
  • c# Record关键字
  • 高效管理 Nginx 的利器:nginxWebUI 指南和 Docker 部署安装过程
  • 家政预约小程序04活动管理表结构设计
  • 谷歌浏览器的在线存储功能使用方法
  • HT-HaiBOX边缘计算盒 智慧工厂方案,智慧医疗方案,智慧加油站方案,智慧安防方案,智慧城市方案;方案定制开发
  • 回调机制实现观察者模式
  • 并发编程系列(一) -多线程技术快速入门
  • 单元测试入门和mockup
  • 蓝桥杯(Java)(ing)
  • 【Linux-多线程】线程互斥(锁和它的接口等)
  • [江科大STM32] 第五集快速建立STM32工程模板——笔记
  • 流水线并行举例说明;GPU 的细粒度问题
  • 如何确保Kafka集群的高可用?
  • 计算机毕业设计Python+Spark考研预测系统 考研推荐系统 考研数据分析 考研大数据 大数据毕业设计 大数据毕设
  • Oracle SqlPlus常用命令简介
  • 8.若依系统监控与定时任务