MySQL主从复制断开的常用修复方法
亲爱的编程学习爱好者,如果你点开了这篇文章,说明你对《MySQL主从复制断开的常用修复方法》很感兴趣。本篇文章就来给大家详细解析一下,主要介绍一下MySQL主从复制 、断开、修复,希望所有认真读完的童鞋们,都有实质性的提高。
01 问题描述
在生产环境中,我们经常会遇见MySQL主从复制断开的情况,在遇到主从复制断开是,通常情况,解决问题的步骤如下:
1、从库上show slave status查看复制断开的直观原因,并记录当前的复制位点
2、查看error log,分析更详细的复制断开原因
3、修复主从复制关系
4、如果复制关系无法修复,则需要重新搭建从库
02 解决问题的方法
主从复制关系断裂,有各种各样的原因。有些时候,我们没有时间去客观分析原因,因为应用程序处于无法使用状态,需要立即恢复,这种情况下,我们对复制断裂问题和服务可用性之间必须做一个权衡,然后再进行相应的处理。
常见的解决主从复制断裂的方法有以下几种:
1、找到其他从库,快速替换
这种方法,需要你的应用具有至少一主两从的架构,其中一个从库发生问题,可以将另外一个从库快速上线,从而恢复应用访问,后续再来排查出现故障的从库的具体问题原因。
2、跳过复制失败的错误
有些情况下,我们可以判断主从复制断裂的原因,例如主库上比从库上多一个数据库db_1,那么当我们在主库上执行drop database db_1的时候,从库的复制一定会断开。这种情况下,我们可以通过跳过一个事务来解决。
方法一:(直接跳过当前事务)
在GTID模式下,可以通过下面的命令来解决:
mysql> STOP SLAVE; mysql> SET GTID_NEXT='xxxxxx:yyy'; ----- 设置需要跳过的gtid event mysql> BEGIN;COMMIT; mysql> SET GTID_NEXT='AUTOMATIC'; mysql> START SLAVE;
在非GTID模式下,可以通过下面的命令来解决:
stop slave; set sql_slave_skip_counter=1; start slave;
方法二:(指定新位置)
如果我们通过binlog分析,知道了下一个事务的具体点位,也可以指定下一个事务具体位置的方法来解决:
GTID模式下:
mysql> STOP SLAVE; mysql> RESET MASTER; mysql> SET @@GLOBAL.GTID_PURGED ='xxxxxxx:yyyyyy' ----- 表示这些gtid event已经执行过了 mysql> START SLAVE;
注意,GTID_PURGED 必须是 GLOBAL,上面的命令也可以写成set global gtid_purged='xxx:yyy'
非GTID模式下:
stop slave; change master to master_log_file='mysql-bin.001360',master_log_pos=676383371; start slave;
方法三:pt-slave-restart工具
如果我们跳过一个事务之后,还出现断开的场景(例如我们在从库上删除了100条数据,但是主库要更新这100条数据),可以使用pt-slave-restart这个工具,它可以连续跳过断开的位置。
它的使用方法如下:
pt-slave-restart -h 10.xxx.xxx.xxx -P port -u user -p password
当我们使用并行复制的时候,pt-slave-restart可能会出现报错,这个时候我们可以通过将并行复制修改为单线程复制,然后再使用pt-slave-restart工具,可以参考这篇文章:
方法四:设置参数slave_exec_mode
这个参数可以修改主从复制过程中的从库执行模式,如果是strict严格模式,则所有的复制一旦报错就会停止,如果设置成idempotent幂等模式,则特定错误号的错误将会被跳过。命令如下:
set global slave_exec_mode = idempotent
具体可以参考之前的文章:
这篇文章中还有其他两种跳过复制错误的参数,分别是slave_skip_errors、sql_slave_skip_counter
3、利用备份重建从库
这种方法的使用场景不多,通常情况下,只有从库已经不可用或者无法从主库同步的时候,才会考虑这种方法,例如主库上执行了reset master操作,导致所有的binlog被清理了,这样从库就无法获取读取正确的binlog,复制就会断开,这种情况下,重建从库可能是唯一的办法了。
今天带大家了解了MySQL主从复制 、断开、修复的相关知识,希望对你有所帮助;关于数据库的技术知识我们会一点点深入介绍,欢迎大家关注golang学习网公众号,一起学习编程~
MySQL infobright的安装步骤
- 上一篇
- MySQL infobright的安装步骤
- 下一篇
- 详解Mysql函数调用优化
-
- 数据库 · MySQL | 46分钟前 | MySQL · 索引优化 · generated column · mysql 索引 优化器 生成列
- MySQL 生成列索引为什么没有被优化器使用
- 300浏览 收藏
-
- 数据库 · MySQL | 3小时前 |
- MySQL 窗口函数取每组最新记录时如何处理并列时间
- 242浏览 收藏
-
- 数据库 · MySQL | 5小时前 |
- MySQL JSON_VALUE 返回 NULL 时怎么区分缺少路径和空值
- 170浏览 收藏
-
- 数据库 · MySQL | 6小时前 | MySQL · JSON查询 · JSON_TABLE · SQL技巧 · mysql JSON_TABLE FOR ORDINALITY JSON数组序号
- MySQL JSON_TABLE 的 FOR ORDINALITY 怎么保留数组原始序号
- 139浏览 收藏
-
- 数据库 · MySQL | 8小时前 |
- MySQL 复制延迟升高时怎么区分 SQL 线程和 IO 线程
- 304浏览 收藏
-
- 数据库 · MySQL | 11小时前 | MySQL事件 · 事件调度器 · 任务表排查 · mysql 定时任务 CREATE EVENT Event Scheduler INFORMATION_SCHEMA.EVENTS
- MySQL 事件调度器执行了但任务表没有更新怎么排查
- 486浏览 收藏
-
- 数据库 · MySQL | 15小时前 |
- MySQL 事务隔离级别改成 READ COMMITTED 后会少什么锁
- 284浏览 收藏
-
- 前端进阶之JavaScript设计模式
- 设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
- 543次学习
-
- GO语言核心编程课程
- 本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
- 516次学习
-
- 简单聊聊mysql8与网络通信
- 如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
- 500次学习
-
- JavaScript正则表达式基础与实战
- 在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
- 487次学习
-
- 从零制作响应式网站—Grid布局
- 本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
- 485次学习
-
- H2O EvalGPT
- H2O EvalGPT是H2O.ai推出的开源LLM评估平台,提供详细的大模型性能排行榜、行业特定基准测试及A/B测试功能,助您快速选择最适合项目的高性能大语言模型。
- 41次使用
-
- SuperCLUE
- SuperCLUE是权威的中文大语言模型综合评测基准,涵盖语言理解、知识应用、AI Agent智能体及安全性等12项核心能力。通过多轮对话与客观测试,定期发布榜单与技术报告,为模型研发、优化及行业选型提供科学依据。
- 195次使用
-
- C-Eval
- 深入了解C-Eval中文评估套件,涵盖52个学科与4级难度。本文详解其功能特点、Zero-shot/Few-shot使用方法及代码示例,助您全面评测LLM中文理解与泛化能力。
- 130次使用
-
- AI Prompt Library
- 探索AI Prompt Library免费资源库,涵盖营销、写作及多场景AI提示词。兼容ChatGPT、Claude等工具,一键复制优化输出,提升工作效率。
- 63次使用
-
- Generrated
- Generrated汇集9300+张DALL·E生成图像及对应提示词,支持查看完整图集、对比DALL·E 2与3版本差异,是AI绘图新手学习Prompt设计与获取创作灵感的实用工具。
- 44次使用
-
- mysql主从复制的实现步骤
- 2023-01-01 315浏览
-
- 详解MySQL主从复制及读写分离
- 2022-12-30 155浏览
-
- 解决mysql服务器在无操作超时主动断开连接的情况
- 2023-01-20 132浏览
-
- mySQL服务器连接,断开及cmd使用操作
- 2022-12-31 267浏览
