主题
Galera 多主集群
1. 什么是 Galera 集群
Galera 是 MariaDB 的多主同步复制插件,支持多节点数据同步和同时写入,保证各节点数据一致性,实现高可用和负载均衡。
2. 安装准备
确保所有节点 MariaDB 版本支持 Galera,并安装 Galera 相关软件包:
bash
sudo apt install mariadb-server galera-4
或使用对应系统包管理工具安装。
3. 配置 Galera 集群
编辑每个节点的 MariaDB 配置文件(如 /etc/mysql/my.cnf
),添加或修改以下内容:
ini
[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="galera_cluster"
# 集群节点 IP 列表(逗号分隔)
wsrep_cluster_address="gcomm://node1_ip,node2_ip,node3_ip"
# 当前节点唯一ID
wsrep_node_name="node1"
# 当前节点 IP
wsrep_node_address="node1_ip"
# SST 方法(状态快照传输)
wsrep_sst_method=rsync
# SST 用户及密码
wsrep_sst_auth="sstuser:password"
4. 创建 SST 用户
在任意节点 MariaDB 中执行:
sql
CREATE USER 'sstuser'@'%' IDENTIFIED BY 'password';
GRANT RELOAD, LOCK TABLES, PROCESS, REPLICATION CLIENT ON *.* TO 'sstuser'@'%';
FLUSH PRIVILEGES;
5. 启动集群
- 第一个节点启动:
bash
sudo systemctl stop mariadb
sudo galera_new_cluster
- 其他节点启动:
bash
sudo systemctl restart mariadb
6. 验证集群状态
登录 MariaDB,执行:
sql
SHOW STATUS LIKE 'wsrep_cluster_size';
返回的值应为集群节点数,表示集群正常。
7. 注意事项
- Galera 集群要求网络稳定,节点时钟同步。
- 事务支持同步提交,性能受网络延迟影响。
- 适合读写负载均衡和高可用场景。
Galera 多主集群为 MariaDB 提供了强大的多节点同步能力,实现无单点故障的高可用数据库架构。