温馨提示×

Linux MariaDB的高可用性方案

小樊
42
2025-12-26 05:12:51
栏目: 云计算

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_providerwsrep_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 异常、仲裁丢失等设定告警;按增长预留节点与存储容量,避免级联雪崩。

0