简介
MariaDB Galera Cluster 是MariaDB多主机同步集群,仅支持XtraDB、InnoDB存储引擎
特点:1
2
3多主架构,任何节点都可以进行读写
高可用性,在Galera集群中若有一个节点发生故障,该集群仍然可用
可扩展性强,并且能自动拷贝数据
注:一个新节点加入集群,有两种数据拷贝方式:全量数据传输SST(空库);差量数据传输IST(先恢复最新备份)
局限性:1
2
3
4
5加入新节点时开销大,需要复制完整的数据
不能有效地解决写扩展的问题,所有的写操作都发生在所有的节点
有多少个节点,就有多少份重复的数据 ## 无共享数据,高冗余 =====》 #高可用,安全
由于事务提交需要跨节点通信,即涉及分布式事务操作,因此写入会比 传统的主从复制慢很多,节点越多,写入越慢,死锁和回滚也会更加频繁
对网络要求比较高,如果网络出现波动不稳定,则可能会造成两个节点失联,Galera Cluster 集群会发生 脑裂,服务将不可用
事务执行流程

操作过程

服务安装
分别在集群中的三台主机安装相应服务:1
2
3
4
5
6
7[root@Mysql-31 ~]#yum remove mariadb-libs ##防止和rpm版的mysql5.7-libs冲突。
[root@Mysql-31 ~]#rpm -ivh /root/gelera/mysql-wsrep-common-5.7-5.7.21-25.14.el7.x86_64.rpm
[root@Mysql-31 ~]#rpm -ivh /root/gelera/mysql-wsrep-libs-5.7-5.7.21-25.14.el7.x86_64.rpm
[root@Mysql-31 ~]#rpm -ivh /root/gelera/mysql-wsrep-client-5.7-5.7.21-25.14.el7.x86_64.rpm
[root@Mysql-31 ~]#yum install -y /root/gelera/mysql-wsrep-server-5.7-5.7.21-25.14.el7.x86_64.rpm
[root@Mysql-31 ~]#yum install /root/gelera/galera-3-25.3.23-2.el7.x86_64.rpm
[root@Mysql-31 ~]#yum install rsync
配置文件
注意点:
必须关闭二进制文件记录功能,否则后续的多主写入会失败
传统主从复制的配置无需开启,中继日志关闭。galera集群通过4567端口进行事务复制
关闭半同步复制插件,galera集群使用完全同步模式
目前以mysql-31为最新数据节点,在启动galera集群时需要最先启动
mysql-31主要配置段:1
2
3
4
5
6
7
8wsrep_on=on
wsrep_provider=/usr/lib64/galera-3/libgalera_smm.so ##写集复制模块
wsrep_cluster_name='cluster1' ## 集群名称,属于同一集群的主机的配置必须一致
wsrep_cluster_address='gcomm://' ##加入集群时 的 数据参考对象,作为集群发起者,认为自己的数据是最新的,留空,不向任何人取要数据。
wsrep_node_name='mysql-81'
wsrep_node_address='192.168.1.31'
wsrep_sst_auth=li:123123
wsrep_sst_method=rsync #数据同步的方式,rsync工具
mysql-32,mysql-33的galera模块的参考节点配置如下,其他配置基本相同:1
wsrep_cluster_address='gcomm://192.168.1.31'
最后更新: 2019年10月21日 20:49