Linux MariaDB的高可用性方案
导读:Linux MariaDB 高可用方案总览 一、方案速览与选型 方案 拓扑与写入模式 故障切换方式 优点 局限 典型场景 主从复制 + 高可用代理/故障转移工具 一主多从,读写分离 代理或工具自动切换主库 架构简单、成熟可靠、...
Linux MariaDB 高可用方案总览
一、方案速览与选型
| 方案 | 拓扑与写入模式 | 故障切换方式 | 优点 | 局限 | 典型场景 |
|---|---|---|---|---|---|
| 主从复制 + 高可用代理/故障转移工具 | 一主多从,读写分离 | 代理或工具自动切换主库 | 架构简单、成熟可靠、读扩展方便 | 主从异步存在数据延迟;需处理主从一致性、切换一致性 | 读写分离、读多写少、可接受分钟级切换 |
| Galera Cluster(多主同步复制) | 多主对等,近同步、多点写入 | 自动节点剔除/重加入 | 多主写入、强一致(事务级)、自动故障转移 | 写入放大、网络抖动敏感;建议≥3 节点;仅 InnoDB | 高并发写、需要强一致与自动容错 |
| DRBD + Pacemaker/Corosync 主备 | 主备双机,块级复制 | 资源代理切换 VIP/服务 | 数据强一致、切换可控、传统环境友好 | 切换窗口、备机只读、需 STONITH/仲裁 | 双机关键库、传统机房、合规要求强一致 |
| MHA(Master High Availability) | 一主多从 | 管理节点自动选主并提升从库 | 切换快、对应用侵入小、支持自定义脚本 | 依赖 SSH、半同步/GTID 场景需额外配置;不内置负载均衡 | 主从架构、需要快速自动故障转移 |
二、主从复制 + 高可用代理或 MHA
- 主从复制要点
- 主库开启二进制日志并设置唯一 server-id,创建复制账号;从库启用 relay-log 与唯一 server-id,通过 CHANGE MASTER TO 指定主库信息与位置,启动复制并检查 Slave_IO_Running/Slave_SQL_Running=Yes。适用于一主一从/一主多从的读写分离与冗余场景。
- 高可用代理 MaxScale
- 在代理节点安装 MaxScale,后端创建监控账号(REPLICATION CLIENT/REPLICATION SLAVE、SUPER/RELOAD/EVENT 等)与只读/读写路由用户;MaxScale 提供读写分离、健康检查与故障转移,对应用透明。
- 自动故障转移 MHA
- 在所有节点部署 MHA Node,在管理节点部署 MHA Manager;通过 SSH 免密与复制链路检测实现主库故障的自动选主、提升从库、重建复制与可选 VIP 漂移,适合主从架构的快速切换与恢复。
三、Galera Cluster 多主同步
- 关键特性与适用场景
- 基于 wsrep 的近同步多主复制,支持多点写入、自动成员管理与故障剔除;建议 ≥3 节点 奇数规模,避免“脑裂”;主要支持 InnoDB,表需有主键,不支持 XA 和部分显式锁;网络分区敏感,跨机房需谨慎。
- 部署与端口
- 各节点安装 MariaDB(含 Galera 组件),配置 wsrep_provider、wsrep_cluster_address(如 gcomm://ip1,ip2,ip3)、wsrep_node_address/name、SST 方法(如 rsync/xtrabackup-v2)与相应认证;开放端口 3306/TCP、4567/TCP+UDP、4568/TCP、4444/TCP(SST/IST/复制)。初始化第一个节点后依次加入其余节点,并通过 SHOW STATUS LIKE ‘wsrep%’; 校验集群大小与状态。
四、DRBD + Pacemaker/Corosync 主备
- 架构与切换机制
- 使用 DRBD 在块设备层做主备数据复制(通常配 /dev/drbdX),上层用 Pacemaker/Corosync 管理资源与依赖:DRBD 主备角色、挂载 /var/lib/mysql、启动 MariaDB 服务,并通过约束/顺序确保切换顺序与亲和性;云平台无法使用传统 VIP 时,可改用云厂商的 内部负载均衡 作为浮动入口,实现类似效果。
五、落地实施要点
- 基础与网络
- 统一 NTP 时间;按方案开放必要端口(如 3306、4567/4568/4444 等);内核/文件句柄/网络参数按负载调优;生产环境建议启用 SSL/TLS 加密复制与代理链路。
- 复制与一致性
- 主从优先使用 ROW 格式与 GTID(如版本支持),关键库建议半同步;设置合理的复制过滤与一致性校验;切换前确保从库追平或采用可靠工具(如 MHA/代理)完成提升与重建。
- 流量入口与切换
- 读写分离与故障转移建议交给 MaxScale 等代理或编排工具;双机主备场景结合 VIP/内部负载均衡 与健康检查实现透明切换;定期演练故障转移与回切流程。
- 监控与容量
- 监控复制延迟、线程状态、连接数、慢查询、磁盘/IO/网络;为节点故障、复制中断、SST/IST 异常、仲裁丢失等设定告警;按增长预留节点与存储容量,避免级联雪崩。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Linux MariaDB的高可用性方案
本文地址: https://pptw.com/jishu/781664.html
