MySQL 复制中断后的自动重连与日志同步法

小宇同学_7612

小宇同学_7612

2026-08-06

734人浏览

原创

必须主动干预,先通过show slave status\g定位io/sql线程状态及last_io/sql_error,再据错误类型选择跳过、重设位置或重建从库;自动重连仅是基础,关键在保障relay log与binlog连续一致。

mysql 复制中断后的自动重连与日志同步法

MySQL 主从复制中断后,不能靠“等它自己恢复”,必须主动干预。自动重连只是基础能力,真正关键的是确保中继日志(Relay Log)和主库二进制日志(Binlog)的连续性与一致性。

检查中断原因再操作

复制中断通常不是网络抖动那么简单,需先定位根本原因,否则重连后很快再次失败。

  • 执行 SHOW SLAVE STATUS\G,重点看 Seconds_Behind_Master、Slave_IO_Running、Slave_SQL_Running 和 Last_IO_Error/Last_SQL_Error
  • 常见错误类型:连接拒绝(主库宕机/防火墙)、SQL线程报错(主键冲突、表结构不一致)、GTID模式下事务缺失或跳过异常
  • 确认主库是否正常提供 Binlog,且 server_id 唯一、log_bin 开启、binlog_format=ROW(推荐)

启用自动重连机制

MySQL 5.6+ 默认开启 IO 线程自动重试,但默认参数偏保守,建议显式优化:

MySQL
MySQL

编写正确的MySQL查询,避免字符集、索引和锁方面的常见陷阱。

下载
  • 在从库配置文件中设置:
    master-retry-count = 86400(最大重试次数,0 表示无限)
    master-connect-retry = 10(重连间隔秒数,建议 5–30 秒)
  • 重启从库或执行 CHANGE MASTER TO ... 后,这些参数才生效(注意:动态 SET 不影响已运行的复制通道)
  • 若使用 MySQL 8.0+ 多源复制,需对每个通道单独配置 MASTER_RETRY_COUNT 和 MASTER_CONNECT_RETRY

修复日志断点并同步数据

单纯 START SLAVE 往往无效,尤其当 Relay Log 已损坏或位置落后于主库 Binlog 时,必须手动对齐日志位点。

  • 若错误可跳过(如唯一键冲突且业务允许),用 SET GLOBAL sql_slave_skip_counter = 1(传统复制)或 SELECT GTID_SUBTRACT(...) + SET GTID_NEXT(GTID 模式)
  • 若需精确恢复:在主库查出中断时刻的 Binlog 文件名和位置(SHOW MASTER LOGS + mysqlbinlog --base64-output=decode-rows -v 分析),再在从库执行 CHANGE MASTER TO MASTER_LOG_FILE='xxx', MASTER_LOG_POS=yyy
  • GTID 场景更推荐用 RESET SLAVE ALL + CHANGE MASTER TO MASTER_AUTO_POSITION = 1,让从库自动拉取缺失事务(前提是主库 Binlog 未被清理)

预防后续中断的关键配置

避免反复人工介入,核心是增强复制鲁棒性和可观测性。

  • 主库开启 binlog_gtid_simple_recovery=ON,减少 GTID 集合计算错误
  • 从库启用 relay_log_purge=ON(默认)并定期清理旧 Relay Log;同时设置 relay_log_recovery=ON,崩溃重启后自动重建 Relay Log
  • 部署监控:监听 Seconds_Behind_Master > 60 或 Slave_SQL_Running=No,配合告警(如 Prometheus + mysqld_exporter)
  • 避免在从库写入,禁止 read_only=OFF(除非明确需要临时写)

相关专题

更多
服务器是什么
服务器是什么

服务器是一种计算机硬件设备或软件程序,它具有强大的计算和存储能力,用请求、存储数据和提供服务。它在互联网中着关重要的作用,为用户提供各种服务和资源。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.15

417

5

连接apple id服务器时出错
连接apple id服务器时出错

连接apple id服务器时出错的原因包括网络连接问题、服务器问题、Apple ID账户问题、设备问题、防火墙或安全软件问题、时间和日期设置问题、Apple服务器维护等。本专题为大家提供apple id相关的文章、下载、课程内容,供大家免费下载体验。

2023.09.08

840

5

搭建互联网服务器
搭建互联网服务器

搭建互联网服务器需要:1、选择合适的硬件和操作系统,第一步是选择合适的硬件和操作系统;2、安装和配置操作系统,是搭建互联网服务器的关键步骤;3、安装和配置服务器软件,是搭建互联网服务器的下一步,常见的服务器软件包括Apache、Nginx、Tomcat等;4、配置防火墙和安全性,是搭建互联网服务器的重要步骤;5、域名解析和配置,是搭建互联网服务器的最后一步。

2023.09.19

2432

5

如何查看服务器状态
如何查看服务器状态

查看服务器状态的方法有使用命令行工具、图形界面工具、监控工具、日志文件和远程管理工具等。本专题为大家提供服务器状态相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.09

816

5

服务器域名转接慢怎么解决
服务器域名转接慢怎么解决

服务器域名转接慢的解决办法有DNS优化、服务器优化、CDN加速、前端优化和网络优化等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.17

729

5

服务器评测软件
服务器评测软件

服务器评测软件有PassMark Software、CPU-Z、GPU-Z、CrystalDiskMark、IOmeter、JMeter、LoadRunner、Apache Bench等等。详细介绍:1、PassMark Software是一款综合性的服务器性能测试软件,可以评估服务器在各种负载条件下的性能;2、CPU-Z是一款可以提供服务器CPU详细信息的软件等等。

2023.10.17

374

3

如何开启TFTP服务器
如何开启TFTP服务器

开启TFTP服务器的步骤包括选择TFTP服务器软件、下载和安装软件、配置TFTP服务器以及启动和测试服务器等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.18

2196

4

服务器负载不兼容怎么解决
服务器负载不兼容怎么解决

解决方法:1、增加服务器资源;2、负载均衡;3、优化应用程序;4、增加缓存机制;5、分布式架构;6、限流和熔断;7、自动化扩容。想知道更详细服务器负载不兼容的解决方法,可以访问本专题下面的文章。

2023.10.20

4032

4

宽带如何接入服务器
宽带如何接入服务器

宽带接入服务器的方法有ADSL宽带接入服务器、光纤接入服务器、无线接入服务器和以太网接入服务器等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.20

647

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL vs MySQL
PostgreSQL vs MySQL

共1课时 | 172人学习

使用phpenv集成环境安装极致CMS
使用phpenv集成环境安装极致CMS

共2课时 | 275人学习