温馨提示×

Debian MariaDB集群搭建步骤是什么

小樊
33
2025-11-15 11:46:32
栏目: 云计算

Debian MariaDB Galera 集群搭建步骤

一 方案与准备

  • 采用 MariaDB Galera Cluster 实现多主同步复制,具备自动故障转移与数据强一致特性,适合高可用场景。准备至少 3 个节点(生产推荐),并统一 MariaDB 版本Debian 版本。为各节点配置 静态 IP主机名解析,并开放必要端口:3306/TCP(MySQL)、4567/TCP+UDP(复制流量)、4568/TCP(IST)、4444/TCP(SST)。如启用防火墙(UFW/iptables/firewalld),需放行上述端口。

二 安装与初始化

  • 在所有节点安装 MariaDB 与 Galera 组件(Debian 12 常见为 mariadb-server、mariadb-client、galera-4;部分环境执行 apt install mariadb-server 即会自动拉取相关包):
    • sudo apt update
    • sudo apt install mariadb-server mariadb-client galera-4 -y
  • 运行安全初始化(设置 root 密码、删除匿名用户、禁止远程 root 登录等):
    • sudo mysql_secure_installation
  • 建议在所有节点保持相同的系统时间与 NTP 同步,避免复制时序问题。

三 集群配置

  • 在每个节点的 MariaDB 配置中启用 Galera(推荐在 /etc/mysql/mariadb.conf.d/50-server.cnf 的 [mysqld] 段或新增 /etc/mysql/conf.d/galera.cnf)。以下为最小可用示例(请替换实际 IP 与节点名):
    • [mysqld]
      • wsrep_on=ON
      • wsrep_provider=/usr/lib/galera/libgalera_smm.so
      • wsrep_cluster_address=“gcomm://192.168.100.111,192.168.100.112,192.168.100.113”
      • wsrep_cluster_name=“MariaDB_Cluster”
      • wsrep_node_address=“本节点IP”
      • wsrep_node_name=“本节点名称”
      • binlog_format=ROW
      • default_storage_engine=InnoDB
      • innodb_autoinc_lock_mode=2
      • bind-address=0.0.0.0
  • 说明:
    • Galera 仅支持 InnoDB;建议设置 server-id(每个节点唯一)以便与其他复制方案共存。
    • 常见 SST 方式为 rsyncxtrabackup-v2;若使用 xtrabackup-v2,需为 SST 创建专用用户并配置认证(wsrep_sst_auth)。

四 启动与验证

  • 启动首个节点(初始化集群):
    • 方式 A:sudo galera_new_cluster
    • 方式 B:sudo systemctl stop mariadb 后执行 sudo mysqld_safe --wsrep-new-cluster &
  • 启动其余节点:
    • sudo systemctl start mariadb
  • 验证集群状态(在任意节点执行 mysql -u root -p):
    • SHOW STATUS LIKE ‘wsrep_cluster_size’;(应等于已加入节点数)
    • SHOW STATUS LIKE ‘wsrep_connected’;(应为 ON
    • SHOW STATUS LIKE ‘wsrep_ready’;(应为 ON
  • 若节点加入失败,检查错误日志(/var/log/mysql/error.log)、防火墙与 SELinux/AppArmor 策略、以及 wsrep_cluster_address 是否可达。

五 运维与安全加固

  • 防火墙与端口:放行 3306/4567/4568/4444(TCP;其中 4567 还需 UDP),确保节点间互通。
  • SST 用户与权限(使用 xtrabackup-v2 时):
    • CREATE USER ‘sstuser’@‘%’ IDENTIFIED BY ‘StrongPass!’;
    • GRANT RELOAD, LOCK TABLES, PROCESS, REPLICATION CLIENT ON . TO ‘sstuser’@‘%’;
    • FLUSH PRIVILEGES;
    • 在配置中设置:wsrep_sst_auth=sstuser:StrongPass!
  • 管理与升级:
    • 滚动升级时逐台停机、升级、启动,确保 wsrep_cluster_size 恢复后再处理下一台。
    • 备份建议:定期逻辑备份(mysqldump)与物理备份(Percona XtraBackup)结合;变更前先备份。
    • 高可用接入:在业务侧使用 HAProxy/Keepalived 提供 VIP 与读写分离/故障切换能力。

0