Ubuntu MariaDB集群搭建流程怎样
导读:Ubuntu MariaDB Galera 集群搭建流程 一 架构与准备 采用 MariaDB Galera Cluster 实现 多主同步复制(Active-Active),推荐至少 3 个节点,这是最小可配置且具备容错能力的规模。 准...
Ubuntu MariaDB Galera 集群搭建流程
一 架构与准备
- 采用 MariaDB Galera Cluster 实现 多主同步复制(Active-Active),推荐至少 3 个节点,这是最小可配置且具备容错能力的规模。
- 准备事项:各节点配置 静态 IP、启用 sudo 权限账户、系统更新;建议在同一 私有网络/VPC 内部署,降低网络时延与暴露面。
- 端口与连通性:开放 3306(MySQL)、4567(Galera 通信)、4568(IST 增量状态传输)、4444(SST 全量状态传输);确保节点间可互通。
二 安装与基础安全
- 在所有节点安装 MariaDB(Ubuntu 22.04/20.04 通常仓库自带;如需指定版本或官方仓库,可先导入 GPG 并添加 MariaDB 仓库后再安装):
- 更新索引并安装:
sudo apt update & & sudo apt install -y mariadb-server mariadb-client - 可选:导入密钥与仓库(示例为 10.1,实际请选择与你系统匹配的版本与仓库)
sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8
sudo add-apt-repository 'deb [arch=amd64] http://ftp.utexas.edu/mariadb/repo/10.1/ubuntu $(lsb_release -sc) main'
sudo apt update & & sudo apt install -y mariadb-server mariadb-client
- 更新索引并安装:
- 运行安全初始化:
sudo mysql_secure_installation(设置 root 密码、移除匿名用户、禁止远程 root 登录、删除测试库等)。
三 集群配置
- 创建 Galera 配置文件(各节点一份,路径可为:/etc/mysql/conf.d/galera.cnf 或 /etc/mysql/mariadb.conf.d/50-server.cnf 的 [mysqld] 段加入 Galera 参数):
- 建议将通用参数写入 [galera] 段,节点私有参数(如节点地址/名称)写入 [mysqld] 段。
- 示例关键参数(按节点替换实际值):
[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 wsrep_on = ON [galera] wsrep_provider = /usr/lib/galera/libgalera_smm.so wsrep_cluster_name = "galera_cluster" wsrep_cluster_address = "gcomm://192.168.100.11,192.168.100.12,192.168.100.13" wsrep_node_address = "192.168.100.11" # 本节点 IP wsrep_node_name = "node1" # 本节点名称 wsrep_sst_method = xtrabackup-v2 # 或 rsync(注意 rsync 对业务有短暂锁表) wsrep_sst_auth = "sst_user:sst_password" - 说明:
wsrep_provider路径在不同发行包/架构可能为 /usr/lib/galera/libgalera_smm.so 或 /usr/lib64/galera/libgalera_smm.so。- 生产环境优先 xtrabackup-v2(SST 不阻塞写入),
rsync配置简单但会在传输阶段影响业务写入。
四 初始化与加入集群
- 第 1 步:所有节点停止 MariaDB
sudo systemctl stop mariadb - 第 2 步:在第一个节点初始化集群
sudo galera_new_cluster - 第 3 步:在其他节点启动并自动加入
sudo systemctl start mariadb - 第 4 步:创建 SST 认证用户(在任一节点执行一次即可,Galera 会同步权限)
sudo mysql -u root -p -e "CREATE USER 'sst_user'@'%' IDENTIFIED BY 'sst_password'; GRANT ALL PRIVILEGES ON *.* TO 'sst_user'@'%'; FLUSH PRIVILEGES; " - 第 5 步:验证集群状态(在任意节点)
mysql -u root -p -e "SHOW STATUS LIKE 'wsrep_cluster_size'; "
若返回 wsrep_cluster_size=3,表示 3 节点已成功组成集群。
五 验证与运维要点
- 常用检查命令:
- 集群规模:
SHOW STATUS LIKE 'wsrep_cluster_size'; - 本节点是否为主写节点:
SHOW STATUS LIKE 'wsrep_ready';(值为 ON 表示可写) - 集群成员列表:
SHOW STATUS LIKE 'wsrep_incoming_addresses'; - 复制健康:
SHOW STATUS LIKE 'wsrep_local_state_comment';(通常为 Synced)
- 集群规模:
- 防火墙与安全组:放行 3306/4567/4568/4444;生产环境建议仅内网开放,限制来源网段。
- 重要提示:
- Galera 为 同步多主,并非分片方案,写入冲突需应用层处理(如按主键/分库分表规避热点)。
- 谨慎变更
wsrep_cluster_address;节点变更顺序建议先摘除、变更、再重新加入。 - SST 选择:优先 xtrabackup-v2;使用 rsync 时预期会有短暂锁表窗口。
- 备份:定期做物理/逻辑备份(如 mariabackup),并演练恢复流程。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Ubuntu MariaDB集群搭建流程怎样
本文地址: https://pptw.com/jishu/780133.html
