首页 >
问答 >
云计算 >
MariaDB Linux版如何进行集群部署
MariaDB Linux版如何进行集群部署
小樊
43
2025-12-10 11:43:54
MariaDB Linux 版集群部署指南
一 方案选型与准备
常见方案对比
MariaDB Galera Cluster:多主同步复制、强一致、任意节点读写,适合高可用与横向扩展;仅支持 InnoDB/XtraDB 。
主从复制(异步/半同步):部署简单、读写分离易实现,但存在复制延迟与单主写入瓶颈。
节点规划建议
至少 3 节点 组成 Galera 集群,避免脑裂并保障仲裁;各节点时间同步(如 NTP )。
开放端口:3306 (MySQL)、4567 (Galera 通信)、4568 (IST)、4444 (SST/rsync),以及 22 (SSH 运维)。
系统与安全:建议关闭 SELinux 或设为 permissive ;按需配置防火墙放行上述端口;准备用于 SST 的数据库账号与权限。
二 使用 Galera 多主集群部署步骤
安装软件包
Ubuntu/Debian:apt 安装 mariadb-server mariadb-client rsync 。
RHEL/CentOS:yum/dnf 安装 MariaDB-Galera-server MariaDB-client galera rsync ;部分系统需先安装 socat 。
配置文件 /etc/my.cnf.d/server.cnf(所有节点)
关键参数示例:
[mysqld]:bind-address=0.0.0.0 ;binlog_format=row ;default_storage_engine=InnoDB ;innodb_autoinc_lock_mode=2 ;innodb_flush_log_at_trx_commit=2 ;innodb_buffer_pool_size(按内存调优,如 1G )。
[galera]:wsrep_on=ON ;wsrep_node_name=本机名 ;wsrep_node_address=本机IP ;wsrep_cluster_name=mariadb_galera_cluster ;wsrep_provider=/usr/lib/galera/libgalera_smm.so (路径因发行版可能为 /usr/lib64/… );wsrep_cluster_address=“gcomm://node1,node2,node3”;wsrep_sst_method=rsync ;wsrep_slave_threads(按 CPU 核数调优)。
初始化与启动
首次引导仅在一个节点执行:systemctl stop mariadb;galera_new_cluster。
其余节点:systemctl start mariadb。
安全初始化:运行 mysql_secure_installation;创建用于 SST 的账号(如 sst_user )并授予必要权限。
验证
在任一节点执行:SHOW STATUS LIKE ‘wsrep%’; 检查 wsrep_cluster_size=3 、wsrep_ready=ON 、wsrep_local_state_comment=Synced 等关键指标。
三 主从复制部署步骤
适用场景:读写分离、读扩展、对强一致要求不高的业务。
基本流程
准备主从节点并安装 MariaDB;主库开启二进制日志并创建复制账号;从库配置主库连接信息并启动复制;验证复制状态与延迟。
详细步骤与参数示例可参考 CentOS 8 主从部署实践(含防火墙、初始化、主从配置与验证)。
四 常见问题与恢复
全部节点宕机后的恢复
选择数据最新的节点作为引导节点:systemctl stop mariadb;galera_new_cluster;其余节点:systemctl start mariadb。
SELinux 与防火墙
测试环境可临时:setenforce 0 ;生产环境建议按需配置 SELinux 策略与防火墙放行 3306/4567/4568/4444 。
SST 失败排查
确认 wsrep_sst_method=rsync 时 rsync 可用;检查网络与权限;必要时改用其他 SST 方法(如 mysqldump)。