首页主机资讯怎样确保Linux MariaDB高可用性

怎样确保Linux MariaDB高可用性

时间2025-11-29 01:43:04发布访客分类主机资讯浏览1237
导读:Linux MariaDB高可用落地方案 一、方案选型与适用场景 MariaDB Galera Cluster(同步多主):多节点同时写入、自动节点加入、故障节点自动同步,适合对写入高可用与横向扩展有要求的业务。依赖 wsrep 复制,仅...

Linux MariaDB高可用落地方案

一、方案选型与适用场景

  • MariaDB Galera Cluster(同步多主):多节点同时写入、自动节点加入、故障节点自动同步,适合对写入高可用与横向扩展有要求的业务。依赖 wsrep 复制,仅支持事务型引擎(如 InnoDB/XtraDB)。
  • 主从复制 + VIP/Keepalived/Heartbeat+DRBD:一主多从或双主,配合 VIP 漂移实现故障切换,适合读多写少、已有主从架构快速改造的场景。
  • 共享存储/DRBD + 集群资源管理(Pacemaker/Corosync):数据强一致、主备切换,适合对数据一致性与集中存储有要求的传统架构。
    以上方案在生产中均有成熟实践,选择时优先考虑业务写入模式、一致性要求、运维复杂度与团队经验。

二、Galera Cluster 部署要点(推荐)

  • 基础准备
    • 至少 3 节点,时间同步(如 NTP),主机名可解析,网络稳定。
    • 安装 Galera 组件(RHEL/CentOS 8 示例):执行 yum module install mariadb:10.3/galera,安装包包含 mariadb-server-galera、mariadb-server、galera
  • 关键配置(/etc/my.cnf.d/galera.cnf 或 /etc/mysql/mariadb.conf.d/ 下)
    • 启用复制与节点标识:
      • wsrep_on=ON
      • wsrep_provider=/usr/lib64/galera/libgalera_smm.so
      • wsrep_cluster_name="my_galera"
      • wsrep_node_address="本机IP"wsrep_node_name="本机名"
      • wsrep_cluster_address="gcomm://节点1IP,节点2IP,节点3IP"
    • 存储与复制一致性:
      • default_storage_engine=InnoDBinnodb_autoinc_lock_mode=2
      • binlog_format=ROW
      • wsrep_sst_method=rsync(或 xtrabackup-v2,需额外安装)
    • 网络与绑定:
      • bind-address=0.0.0.0(或指定内网地址)
  • 启动顺序与验证
    • 引导集群:在第一个节点执行 galera_new_cluster(或 galera_new_cluster mariadb@node1);其余节点执行 systemctl start mariadb
    • 验证:SHOW STATUS LIKE 'wsrep_ready'; (应为 ON)、SHOW STATUS LIKE 'wsrep_cluster_size'; (应等于节点数)、SHOW STATUS LIKE 'wsrep%'; 查看复制状态。
  • 防火墙与 SELinux(示例为 firewalld)
    • 开放端口:3306/TCP(客户端/管理)、4567/TCP+UDP(复制流量)、4568/TCP(IST)、4444/TCP(SST)。
    • 按需配置 SELinux 策略以允许群集通信与操作。
      以上步骤覆盖官方与社区通行做法,适合在 RHEL/CentOS 7/8 与兼容发行版上落地。

三、主从复制 + VIP 的高可用(读写分离/快速改造)

  • 主从搭建(一主一从示例)
    • 主库配置:server-id=1log_bin=mysql-bin,创建复制用户并授权 REPLICATION SLAVE,记录 SHOW MASTER STATUS; File/Position
    • 从库配置:server-id=2relay_log=mysql-relay-bin,执行 CHANGE MASTER TO ... 指向主库,启动复制 START SLAVE; ,用 SHOW SLAVE STATUS\G 检查 Slave_IO_RunningSlave_IO_Running 均为 Yes
  • 故障切换与 VIP 漂移
    • 方案 A(双主半同步 + Keepalived):两库互为主从,配置 VIPVRRP 健康检查脚本(检测 3306 端口/实例存活),主库异常自动降级、VIP 漂移到备库。
    • 方案 B(主备 + Heartbeat + DRBD):主库持有数据盘 DRBD 主副本,Heartbeat 检测并切换 VIP 与 MariaDB 资源,备库升主后接管服务。
  • 适用与注意
    • 读多写少、对切换可控性要求高、已有主从架构的场景优先。
    • 双主需应用层/中间件支持幂等与冲突处理;主备需处理复制延迟与数据一致性校验。
      上述主从与 VIP 方案在 Ubuntu/CentOS 上均有成熟教程与验证步骤,可按现有网络与安全策略裁剪。

四、通用稳定性与运维要点

  • 数据安全与恢复
    • 定期全量备份(如 mysqldump/mariabackup),保留至少 7–30 天;关键变更前必做备份。
    • 启用 GTID 或记录位点,便于重建复制与时间点恢复。
  • 监控与告警
    • 监控复制延迟(Seconds_Behind_Master)、连接数、线程状态、错误日志、磁盘/IO/延迟抖动。
    • 对主从复制设置 复制心跳告警阈值,对 Galera 关注 wsrep_local_state_commentwsrep_ready、队列与冲突。
  • 网络与系统
    • 保证节点间低时延与稳定带宽;跨机房部署需评估复制时延与一致性。
    • 统一 NTP,关闭不必要防火墙规则,仅放通 3306/4567/4568/4444 等必要端口。
  • 升级与变更
    • 采用滚动升级(先备后主)、先在测试环境演练;变更窗口内禁止大事务与 DDL。
  • 连接与中间件
    • 应用使用连接池与重试机制;读写分离建议引入中间件(如 ProxySQL/MaxScale)提升可用性与可观测性。

以上方案与要点可直接用于生产落地:追求写入高可用与多主扩展优先选 Galera Cluster;已有主从或读多写少优先选 主从 + VIP/Keepalived/Heartbeat+DRBD。无论采用哪种方案,务必完成备份、监控、网络与切换演练,确保真正可切换、可恢复、可观测。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: 怎样确保Linux MariaDB高可用性
本文地址: https://pptw.com/jishu/759708.html
Kubernetes对Linux系统有何要求 Linux MariaDB备份恢复工具有哪些

游客 回复需填写必要信息