数据库主从容灾:如何实现主库宕机后的自动切换

酷婷同学_5955

酷婷同学_5955

2026-06-21

306人浏览

原创

mysql主从架构不支持自动切换,需依赖外部高可用工具实现容灾;必须满足主库不可恢复、从库同步完成、启用gtid、旧主隔离等前提;推荐mha、orchestrator、proxysql+脚本或k8s operator方案;切换分探测、分析、提升、重连、路由更新五阶段;应用层可用jdbc多地址兜底。

数据库主从容灾:如何实现主库宕机后的自动切换

MySQL
MySQL

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

下载
MySQL 主从架构本身不支持主库宕机后自动切换,必须依赖外部机制才能实现真正可用的自动容灾。这不是配置开关就能打开的功能,而是需要监控、决策、执行、验证四个环节协同工作的闭环系统。

核心前提:不能只靠“主挂了就切”

盲目切换比不切换更危险。自动切换前必须确认:
• 主库确实不可恢复(不是网络抖动或临时高负载)
• 至少一个从库已完全同步(Seconds_Behind_Master = 0,且 Slave_IO_Running 和 Slave_SQL_Running 均为 YES)
• 启用 GTID(gtid_mode=ON),否则无法精准判断数据一致性
• 旧主库已隔离(如通过 STONITH 或强制断电),防止脑裂写入

推荐方案:选成熟工具,别手写脚本

生产环境不建议用简单 ping + kill 的轮询脚本,边界情况多、可靠性低。主流可靠选择有:
• MHA:Perl 编写,稳定成熟,支持 VIP 漂移和 binlog 日志抢救,适合中小规模集群
• Orchestrator:Go 开发,自带 Web 界面,支持拓扑发现、人工干预开关、Consul 集成,运维体验好
• ProxySQL + 自动化脚本:利用 ProxySQL 的 hostgroup 权重与健康检查,配合外部脚本触发 STOP SLAVE; RESET SLAVE ALL; 和角色变更
• Kubernetes Operator(如 PressLabs MySQL Operator):云原生场景首选,自动管理 StatefulSet、PVC、复制关系及切换逻辑

关键动作:切换不是“一键”,而是分阶段执行

以 Orchestrator 为例,一次安全切换包含:
• 探测:每秒执行 SELECT 1,连续失败 N 次才触发判定
• 分析:筛选出延迟低、线程正常、版本兼容的候选从库,按 GTID 位置或日志位点排序选最优
• 提升:对候选库执行 STOP SLAVE; RESET SLAVE ALL;,关闭 read_only,设为新主
• 重连:其他从库自动执行 CHANGE MASTER TO 指向新主,无需人工干预
• 路由更新:应用层需配合——要么通过 VIP/域名解析切换,要么由 ProxySQL/中间件动态调整流量

应用层兜底:JDBC 也能做基础故障转移

如果暂无中间件或高可用工具,Java 应用可利用 mysql-connector-java 内置能力:
• 连接 URL 写成:jdbc:mysql://192.168.0.1:3306,192.168.0.2:3306/mydb?allowMultiQueries=true
• 驱动会自动尝试列表中第一个地址,失败后切换下一个
• 注意:这只解决连接建立阶段的故障转移,不处理已建立连接的中断、事务回滚或读写分离逻辑,仅作为轻量级兜底手段

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

mysql

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

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

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

2023.08.15

457

5

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

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

2023.09.08

940

5

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

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

2023.09.19

3092

5

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

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

2023.10.09

1016

5

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

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

2023.10.17

909

5

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

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

2023.10.17

474

3

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

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

2023.10.18

2816

4

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

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

2023.10.20

5292

4

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

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

2023.10.20

827

5

热门下载

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

精品课程

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

共1课时 | 189人学习