MariaDB Galera Cluster

10 年 ago jony MariaDB Galera Cluster已关闭评论

Mysql Galera Cluster 介绍

Mysql Galera Cluster 介绍(一) - 苦雨 - 我的博客

 

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


Galera Cluster拥有以下特性:

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

Galera本质是一个wsrep提供者(provider),运行依赖于wsrepAPI接口。Wsrep API定义了一系列应用回调和复制调用库,来实现事务数据库同步写集(writeset)复制以及相似应用。目的在于从应用细节上实现抽象的,隔离的复制。虽然这个接口的主要目标是基于认证的多主复制,但同样适用于异步和同步的主从复制。

Galera本质是一个wsrep提供者(provider),运行依赖于wsrepAPI接口。Wsrep API定义了一系列应用回调和复制调用库,来实现事务数据库同步写集(writeset)复制以及相似应用。目的在于从应用细节上实现抽象的,隔离的复制。虽然这个接口的主要目标是基于认证的多主复制,但同样适用于异步和同步的主从复制。

 使用前十项注意

1、使用Galera必须要给MySQL-Serverwsrep补丁。可以直接使用官方提供的已经打好补丁的MySQL安装包,如果服务器上已经安装了标准版MYSQL,需要先卸载再重新安装。卸载前注意备份数据。

2MySQL/Galera集群只支持InnoDB存储引擎。如果你的数据表使用的MyISAM,需要转换为InnoDB,否则记录不会在多台复制。可以在备份老数据时,为mysqldump命令添加–skip-create-options参数,这样会去掉表结构的声明信息,再导入集群时自动使用InnoDB引擎。不过这样会将AUTO_INCREMENT一并去掉,已有AUTO_INCREMENT列的表,必须在导入后重新定义。

3MySQL 5.5及以下的InnoDB引擎不支持全文索引(FULLTEXT indexes),如果之前使用MyISAM并建了全文索引字段的话,只能安装MySQL 5.6 with wsrep patch

4、所有数据表必须要有主键(PRIMARY,如果没有主键可以建一条AUTO_INCREMENT列。

5MySQL/Galera集群不支持下面的查询:LOCK/UNLOCK TABLES,不支持下面的系统变量:character_set_serverutf16utf32ucs2

6、数据库日志不支持保存到表,只能输出到文件(log_output = FILE),不能设置binlog-do-dbbinlog-ignore-db

7、跟其他集群一样,为了避免节点出现脑裂而破坏数据,建议Galera集群最低添加3个节点。

8、在高并发的情况下,多主同时写入时可能会发生事务冲突,此时只有一个事务请求会成功,其他的全部失败。可以在写入/更新失败时,自动重试一次,再返回结果。

9、节点中每个节点的地位是平等的,没有主次,向任何一个节点读写效果都是一样的。实际可以配合VIP/LVSHA使用,实现高可用性。

10、如果集群中的机器全部重启,如机房断电,第一台启动的服务器必须以空地址启动:mysqld_safewsrep_cluster_address=gcomm:// >/dev/null &

 

典型的Galera集群场景

Mysql Galera Cluster 介绍(一) - 苦雨 - 我的博客

安装

1、安装前的准备

  1)需要至少三台mysql服务器,如果只有两台做cluster的话,一旦出现数据不一致的情况,就可能发生脑裂,需要一台仲裁服务器,如果直接三台做cluster的话,就不再需要仲裁

  2)如果是对现有环境做galera集群,需要对mysql现有表做检查,包括表,表引擎,是否无主键:

http://www.open-open.com/lib/view/open1435888783513.html