温馨提示×

怎样实现MariaDB集群部署

小樊
43
2025-09-14 16:40:50
栏目: 云计算

MariaDB集群部署常用方案为Galera Cluster(多主同步复制),以下是基于Ubuntu/centOS的部署步骤及关键操作:

一、环境准备

  • 硬件要求:至少3台服务器(建议奇数节点,如3/5台),确保节点间网络互通,开放3306端口。
  • 系统配置:统一操作系统(如Ubuntu 20.04/centOS 7)、MariaDB版本,关闭防火墙或放行3306端口。

二、安装MariaDB及依赖

在所有节点执行:

# Ubuntu/Debian sudo apt update && sudo apt install mariadb-server galera-4 rsync -y # CentOS/RHEL sudo yum install -y mariadb-server galera socat 

三、配置Galera集群

在每个节点的配置文件(/etc/mysql/conf.d/galera.cnf)中添加以下内容(需替换为实际IP和节点名):

[mysqld] binlog_format=ROW default-storage-engine=InnoDB innodb_autoinc_lock_mode=2 bind-address=0.0.0.0 wsrep_on=ON wsrep_provider=/usr/lib/galera/libgalera_smm.so wsrep_cluster_name="my_cluster" # 集群名称,所有节点需一致 wsrep_cluster_address="gcomm://node1_ip,node2_ip,node3_ip" # 所有节点IP列表 wsrep_node_address="当前节点IP" # 本机IP wsrep_node_name="node1" # 节点名称(需唯一,如node1/node2) wsrep_sst_method=rsync # 数据同步方式(可选rsync/xtrabackup) 

四、启动集群

  1. 初始化集群
    第一个节点执行(其他节点跳过此步):

    sudo systemctl stop mariadb galera_new_cluster # 初始化集群 sudo systemctl start mariadb 
  2. 加入集群
    其他节点执行:

    sudo systemctl stop mariadb sudo systemctl start mariadb # 自动加入集群 

五、验证集群状态

在任意节点登录MySQL,执行:

SHOW STATUS LIKE 'wsrep_cluster_size'; 

若返回值等于节点数量,说明集群部署成功。

六、可选:配置负载均衡与高可用

  • 负载均衡:使用HAProxy或ProxySQL将读请求分发到各节点,写请求指向主节点。
  • 故障转移:结合MHA(Master High Availability)实现主节点故障时自动切换。

注意事项

  • 存储引擎:仅支持InnoDB/XtraDB,需确保表引擎一致。
  • 网络延迟:节点间延迟需控制在50ms以内,避免同步延迟。
  • 数据同步:首次加入节点时需确保数据目录为空,或通过wsrep_sst_method指定同步方式。

参考来源:

0