Gelera的简单概述

Gelera的简单概述

Galera Cluster是由第三方公司Codership 所研发的一套免费开源的集群高可用方案,实现了数据零丢失,
官网地址为http://galeracluster.com/。其在MySQL InnoDB存储引擎 基础上打了 wsrep(写集复制),Percona/MariaDB 已捆绑在各自的发行版本中。

MariaDB Galera Cluster是MariaDB 多主机同步集群。它仅支持XtraDB/InnoDB存储引擎

支持和应用的厂商 : percona (PXC Percona XtraDB Cluster) mariadb (MariaDB Galera Cluster )

http://releases.galeracluster.com/mysql-wsrep-5.7/redhat/7/x86_64/
https://downloads.mariadb.org/mariadb-galera/10.0.11/
https://www.percona.com/downloads/Percona-XtraDB-Cluster-LATEST/

Galera Cluster
Galera Cluster是MariaDB的一个双活多主集群,当前最新版本10.0.30,其可以使得 MariDB 的所有节点保持同步,
Galera为MariaDB提供了 同步复制(相对于原生的异步复制),因此其可以保证HA,
且其当前仅支持 XtraDB/InnoDB存储引擎(扩展支持 MyISAM),并且 只可在 Linux下 使用。

Galera Cluster拥有以下特性:

• 真正的多主架构,任何节点都可以进行读写
• 同步复制,各节点间无延迟且节点宕机不会导致数据丢失
• 紧密耦合,所有节点均保持相同状态,节点间无不同数据
• 无需主从切换操作或使用 VIP
• 热Standby,在Failover过程中无停机时间(由于不需要 Failover)
• 自动节点配置,无需手工备份当前数据库,并拷贝至新节点
• 支持InnoDB存储引擎
• 对应用透明,无需更改应用或是进行极小的更改
• 无需进行读写分离
• 集群扩展性强,可以自适应的增加 或者 下线节点:

新节点上线时,可以空库状态直接从集群中获取  全量数据传输(SST),
也可以选择从恢复最新备份状态加入集群,获取  差量数据传输(IST)

下线维护其中一个节点时,直接关闭实例,集群就会自动踢出这个节点。
维护完毕上线后,会根据自身 数据与集群数据的落后程度决定通过  SST 或者  IST 传输数据。

缺点 与局限

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

l 不能有效地解决写扩展的问题,所有的写操作都发生在所有的节点
l 有多少个节点,就有多少份重复的数据 ## 无共享数据,高冗余 =====》 #高可用,安全
l 由于事务提交需要跨节点通信,即涉及分布式事务操作,因此写入会比 传统的主从复制慢很多,节点越多,写入越慢,死锁和回滚也会更加频繁
l 对网络要求比较高,如果网络出现波动不稳定,则可能会造成两个节点失联,Galera Cluster 集群会发生 脑裂,服务将不可用

局限:=========================================

l 仅支持InnoDB/XtraDB存储引擎,任何写入其他引擎的表,包括mysql.*表都不会被复制。
但是 DDL语句可以复制,但是insert into mysql.user (MyISAM存储引擎) 之类的插入数据不会被复制
l Delete 操作不支持没有主键的表,因为没有主键的表在不同的节点上的顺序不同,如果执行select … limit …将出现不同的结果集
l LOCK/UNLOCK TABLES/FLUSH TABLES WITH READ LOCKS 不支持单表锁,以及锁函数GET_LOCK()、RELEASE_LOCK(),
但FLUSH TABLES WITH READ LOCK 支持全局表锁
l General Query Log 日志不能保存在表中,如果开启查询日志,则只能保存到文件中
l 不能有大事务写入,不能操作 wsrep_max_ws_rows=131072(行),且写入集不能超过 wsrep_max_ws_size=1073741824 (1GB),否则客户端直接报错
l 由于集群是乐观锁并发控制,因此,在 commit 阶段会有事务冲突发生。如果两个事务在集群中的不同节点上对同一行写入并提交,
则失败的节点将回滚,客户端返回死锁报错
l 整个集群的写入吞吐量取决于 最弱的节点限制,集群要使用同一的配置
l DDL 操作会严重阻塞同步线程,线上大动作 DDL 会导致有可能导致节点堵塞无响应,更进一步会导致
部分节点下线。 实际使用中需要搭配 pt-osc 或者 gh-osc 等在线DDL工具来进行操作DDL。

你可能感兴趣的:(Linux运维,mysql,Gelera)