MariaDB 的高可用部署通常涉及 主从复制(Master-Slave replication)、Galera Cluster、或者 MHA (Master High Availability) 等

MariaDB 的高可用部署通常涉及 主从复制(Master-Slave replication)、Galera Cluster、或者 MHA (Master High Availability) 等技术。在高可用部署中,关键目标是保证数据库在故障发生时,能够无缝地进行故障转移,并且系统能够维持一致性。

下面我会介绍几种常见的 MariaDB 高可用部署方案,你可以根据你的需求选择适合的方案。

1. MariaDB 主从复制 + 负载均衡

这是最基础的高可用部署方案,利用 MariaDB 的 主从复制(Master-Slave Replication)将数据从主节点同步到从节点。

步骤:
  1. 配置主从复制

    • 在主节点上,开启二进制日志(binary log):
      # 修改 my.cnf 配置 
      [mysqld] 
      log-bin=mysql-bin 
      server-id=1

    • 在从节点上,配置 server-id 和设置主节点信息:
      # 修改 my.cnf 配置 
      [mysqld] 
      server-id=2

    • 在主节点创建复制账户:
      CREATE USER 'replica'@'%' IDENTIFIED BY 'password'; 
      GRANT REPLICATION SLAVE ON *.* TO 'replica'@'%';
    • 在从节点上,启动复制:
      CHANGE MASTER TO MASTER_HOST='主节点IP', MASTER_USER='replica', MASTER_PASSWORD='password', MASTER_LOG_FILE='日志文件', MASTER_LOG_POS=日志位置; START SLAVE;
  2. 配置负载均衡

    • 通过负载均衡器(如 HAProxy 或 ProxySQL)将读请求分发到多个从节点,写请求发送到主节点。
    • 需要确保负载均衡器能够监控主节点的健康状况,并在主节点故障时切换到从节点。
  3. 故障转移

    • 如果主节点发生故障,可以通过 手动切换 或自动故障转移工具(如 MHA)来将一个从节点提升为新的主节点。

2. MariaDB Galera Cluster

Galera Cluster 是一个 同步多主(multi-master)集群,它可以提供高可用、高容错和自动故障转移功能,适合要求高一致性和高可用的场景。

步骤:
  1. 安装 Galera Cluster

    • 在每个节点上安装 MariaDB Galera
      sudo apt-get install mariadb-server galera-4
  2. 配置 Galera 集群

    • 修改 my.cnf 配置文件,加入以下配置:
      [mysqld]
      wsrep_on=ON
      wsrep_cluster_name='galera_cluster'
      wsrep_cluster_address=gcomm://node1_ip,node2_ip,node3_ip
      wsrep_node_address='本机IP'
      wsrep_node_name='node1'
      binlog_format=row
      default_storage_engine=InnoDB
      innodb_autoinc_lock_mode=2
      
  3. 启动集群

    • 在第一个节点上启动集群:
      sudo systemctl start mariadb
    • 在其他节点上启动集群:
      sudo systemctl start mariadb
  4. 验证集群状态

    • 连接到任意一个节点,执行以下命令验证集群状态:
      SHOW STATUS LIKE 'wsrep_cluster_size';

    这个命令应该返回集群的节点数。

  5. 负载均衡与故障转移

    • Galera 集群自带自动的故障转移机制。所有节点都是可写的,因此可以通过负载均衡器(如 HAProxy 或 ProxySQL)将读写请求均匀地分发到集群中的各个节点。

3. MariaDB MHA (Master High Availability)

MHA 是一个高可用解决方案,它可以在主节点宕机时自动选举一个从节点作为新的主节点,并重新配置从节点。适合在主从复制基础上实现自动故障转移。

步骤:
  1. 安装 MHA

    • 安装 MHA Manager 和 MHA Node。
      sudo apt-get install mha4mysql-manager mha4mysql-node
  2. 配置主从复制

    • 配置主从复制(如上述第 1 种方案所示)。
  3. 配置 MHA Manager

    • 在 MHA Manager 节点(通常是管理节点)上配置 mha.cnf 文件。
      [server default]
      manager_workdir=/var/lib/mha
      master_binlog_dir=/var/lib/mysql
      manager_log=/var/log/mha/manager.log
      
      [server1]
      hostname=主节点IP
      ssh_user=your_ssh_user
      candidate_master=1
      
      [server2]
      hostname=从节点IP
      ssh_user=your_ssh_user
      candidate_master=1
      
    • 配置 MHA Node 信息:
      • 你需要在每个节点上配置 mha.cnf 文件,指定 主从节点 信息。
  4. 启动 MHA Manager

    • 启动 MHA Manager 监控,并进行故障转移:
      masterha_manager --conf=/path/to/mha.cnf
  5. 验证故障转移

    • 如果主节点发生故障,MHA 会自动切换到其他从节点,并更新复制配置。

4. MariaDB + Keepalived + VRRP(虚拟路由冗余协议)

这种方案适用于需要 IP 漂移 的高可用配置,通常结合 主从复制Galera Cluster 使用。Keepalived 可以在主节点故障时将虚拟 IP 地址漂移到其他健康的节点。

步骤:
  1. 配置 Keepalived

    • 在主节点和从节点上安装并配置 Keepalived,并设置一个虚拟 IP 地址(VIP)。
    • 在主节点上,配置虚拟 IP 为优先状态:
      virtual_ipaddress { 192.168.1.100 }
  2. 配置负载均衡

    • 使用负载均衡器(如 HAProxy 或 ProxySQL)将数据库连接请求定向到虚拟 IP 地址,而不依赖于具体的节点 IP 地址。
  3. 故障转移

    • 在主节点故障时,Keepalived 会将虚拟 IP 漂移到另一个健康节点,确保数据库可用性。

总结:

  • MariaDB 主从复制 + 负载均衡:适合基础的读写分离高可用,但需要手动切换主节点。
  • MariaDB Galera Cluster:适合要求高度一致性和高可用的应用,提供自动故障转移和多主节点支持。
  • MariaDB MHA:适合自动故障转移和主从复制,提供更强的故障恢复能力。
  • Keepalived + VRRP:适合虚拟 IP 漂移方案,增强数据库的高可用性和自动化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值