MariaDB Galera Cluster集群搭建

MariaDB Galera Cluster是什么?  

Galera Cluster是由第三方公司Codership所研发的一套免费开源的集群高可用方案,实现了数据零丢失,官网地址为

其在MySQLInnoDB存储引擎基础上打了wrep(虚拟全同步复制),Percona/MariaDB已捆绑在各自的发行版本中

MariaDB Galera Cluster是MariaDB同步多主机集群。它仅支持XtraDB/InnoDB存储引擎(虽然有对MyISAM实验支持,具体看wsrep_replicate_myisam系统变量)


MariaDB Galera Cluster主要功能

1.同步复制

2.真正的multi-master,即所有节点可以同时读写数据库

3. 自动的节点成员控制,失效节点自动被清除

4. 新节点加入数据自动复制

5.真正的并行复制,行级

6.用户可以直接连接集群,使用感受上与MySQL完全一致

优势

因为是多主,所以不存在Slavelag(延迟)

不存在丢失事务的情况

同时具有读和写的扩展能力

更小的客户端延迟

节点间数据是同步的,而Master/Slave模式是异步的,不同slave上的binlog可能是不同的

缺点

加入新节点时开销大,需要复制完整的数据

不能有效地解决写扩展的问题,所有的写操作都发生在所有的节点

有多少个节点,就有多少份重复的数据

由于事务提交需要跨节点通信,即涉及分布式事务操作,因此写入会比主从复制慢很多,节点越多,写入越慢,死锁和回滚也会更加频繁

对网络要求比较高,如果网络出现波动不稳定,则可能会造成两个节点失联,Galera Cluster集群会发生脑裂,服务将不可用

存在局限

仅支持InnoDB/XtraDB存储引擎,任何写入其他引擎的表,包括mysql.*表都不会被复制。但是DDL语句可以复制,但是insert into mysql.user(MyISAM存储引擎)之类的插入数据不会被复制

 Delete操作不支持没有主键的表,因为没有主键的表在不同的节点上的顺序不同,如果执行select … limit …将出现不同的结果集

LOCK/UNLOCK TABLES/FLUSH TABLES WITH READ LOCKS不支持单表所锁,以及锁函数GET_LOCK()、RELEASE_LOCK(),但FLUSH TABLES WITH READ LOCK支持全局表锁

 General Query Log日志不能保存在表中,如果开始查询日志,则只能保存到文件中

不能有大事务写入,不能操作wsrep_max_ws_rows=131072(行),且写入集不能超过wsrep_max_ws_size=1073741824(1GB),否则客户端直接报错

由于集群是乐观锁并发控制,因此,在commit阶段会有事务冲突发生。如果两个事务在集群中的不同节点上对同一行写入并提交,则失败的节点将回滚,客户端返回死锁报错

XA分布式事务不支持Codership Galera Cluster,在提交时可能会回滚

整个集群的写入吞吐量取决于最弱的节点限制,集群要使用同一的配置

服务器环境说明

系统版本MariaDB版本主机IP节点名称
CentOS 7.9   mariadb-10.3.27   192.168.40.50   MariaDB-Node1  
CentOS 7.9   mariadb-10.3.27   192.168.40.60   MariaDB-Node2  
CentOS 7.9   mariadb-10.3.27   192.168.40.70   MariaDB-Node3  

环境准备

[root@MariaDB-Node1 ~]# sed -i \'s/SELINUX=enforcing/SELINUX=disabled/g\' /etc/selinux/config [root@MariaDB-Node1 ~]# setenforce 0 setenforce: SELinux is disabled [root@MariaDB-Node1 ~]# systemctl stop firewalld.service [root@MariaDB-Node1 ~]# systemctl disable firewalld.service [root@MariaDB-Node1 ~]# vi /etc/security/limits.conf * soft nofile 65536 * hard nofile 65536 [root@MariaDB-Node1 ~]#sysctl -p

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zzpxjx.html