MGC(MariaDB Galera Cluster)

MariaDB Galera Cluster是一种多主同步集群,目前只支持linux系统,以及XtraDB/InnoDB 存储引擎

  1. 功能
    1)同步复制
    2)多主服务器的拓扑结构
    3)任意节点读写
    4)自动控制成员、删除故障节点
    5)自动加入节点
    6)真正的行级别复制

https://blog.csdn.net/qq_35506960/article/details/120844297
https://blog.csdn.net/weixin_35807050/article/details/114328676

  • 优势:
    多主集群,Active-Active架构,即所有节点可以同时读写数据库
    同步复制,没有复制延迟
    多线程复制
    没有主从切换操作,无需使用虚IP
    热备份,单个节点故障期间不会影响数据库业务
    支持节点自动加入,无需手动拷贝数据,自动的节点成员控制,失效节点自动被清除;新节点加入数据自动复制
    支持InnoDB存储引擎
    对应用程序透明,原生MySQL接口
    无需做读写分离
    部署使用简单

  • 缺点:
    加入新节点时开销大,需要复制完整数据
    不能有效地解决写扩展的问题,所有的写操作都发生在所有的节点
    有多少个节点,就有多少份重复的数据
    由于事务提交需要跨节点通信,即涉及分布式事务操作,因此写入会比主从复制慢很多,节点越多,写入越慢,死锁和回滚也会更加频繁;
    对网络要求比较高,如果网络出现波动不稳定,则可能会造成两个节点失联,Galera Cluster集群会发生脑裂,服务将不可用
    仅支持InnoDB/XtraDB存储引擎,任何写入其他引擎的表,包括mysql.*表都不会被复制,DDL语句可以复制,但是insert into mysql.user(MyISAM存储引擎)之类的插入数据不会被复制
    Delete操作不支持没有主键的表,因为没有主键的表在不同的节点上的顺序不同,如果执行select … limit …将出现不同的结果集
    整个集群的写入吞吐量取决于最弱的节点限制,集群要使用同一的配置

查看galera是否启动
show status like 'wsrep_ready';
查看集群状态
show status like 'wsrep_incoming_addresses';