MariaDB Galera Cluster是MariaDB的同步多主集群。它仅在Linux上可用,并且仅支持xtraDB/InnoDB存储引擎,对MyISAM也有一定的支持(https://mariadb.com/kb/en/mariadb/galera-cluster-system-variables/#wsrep_replicate_myisam)
,特征:
- 同步复制
- 多主可同时读写 Active-active multi-master
- 任何节点成员可读写
- 自动成员控制,故障节点从群集中删除
- 节点可自动加入(基于配置)
- 真正的并行复制,在行级复制
- 使用者在客户端连接,在使用和感官上和mysql一样优点:
- 没有从库延迟
- 不会丢失事物
- 读写扩展高(后续文章会加入读写分离)
- 多主,不存在slave 延迟,也不以来binlog
- 具有同步复制,故障切换和重新同步的高可用性解决方案
- 所有服务器都具有最新数据(无滞后)
- 跨数据中心的高可用性
它依赖于wsrep API(https://launchpad.net/wsrep
):wsrep API定义了一组应用程序回调和复制库调用,以实现事务数据库和类似应用程序的同步写入复制。在从应用程序详细信息中抽象和分离复制实现。虽然此接口的主要目标是基于认证的多主机复制,但同样适用于异步和同步主/从复制。
它的复制过程也是基于认证的,基于WSREP API,大量的配置参考:https://mariadb.com/kb/en/mariadb/galera-cluster-system-variables/#wsrep_replicate_myisam
Galera可以利用四个端口:
- 3306 数据库端口
- 4567 对于Galera Cluster复制,组播复制在此端口上同时使用UDP传输和TCP。
- 4568 增量数据同步IST,节点下线、重启后使用该端口,增量同步数据,增量状态转移。
- 4444 镜像数据传输SST,集群数据同步端口,全量同步,新节点加入时起作用
三台机器:10.0.1.49,10.10.240.113,10.0.1.61 其实用起来可以是这样的:前面使用LVS等进行调度,当然在中间可以使用中间件进行读写分离
yum安装选择
https://downloads.mariadb.org/mariadb/repositories/
centos7 yum如下:
[root@LinuxEA ~]# cat > /etc/yum.repos.d/mariadb.repo