-
7. MySQL Galera Cluster全解析 Part 7 Galera Cluster部署指南
tutorial7
-
-
Attachments
-
Changes
-
View Source
-
View
## 前期回顾
| 主机名 |IP地址|操作系统 |MySQL版本|插件版本|
| --- | --- | --- | --- | ---|
| rac1 | 11.12.14.29| Redhat 6.10|5.7.26|25.3.27|
| rac2| 11.12.14.30| Redhat 6.10|5.7.26|25.3.27|
| rac3 | 11.12.14.39 | Redhat 6.10|5.7.26|25.3.27|
前面我们说了Galera Cluster有三种不同的分支
- MySQL Galera Cluster by Codership
- Percona XtraDB Cluster by Percona
- MariaDB Galera Cluster (5.5 and 10.0) by MariaDB
这里我们以官方的软件来做演示,即第一个
## 1. 软件组成
Galera Cluster由两部分组成
- the Galera Replication Library (galera-3)
- a version of MySQL extended with the Write Set Replication (WSREP) API
第一个即Galera 插件
第二个为集成了wsrep API的 MySQL服务器软件
以上意味着我们需要安装一个Galera版本的MySQL数据库和一个Galera插件
## 2. 引导Galera Cluster
在装好MySQL软件和galera插件并设置好相应的参数后,我们可以建立集群了
和MGR一样,在集群首次启动时需要引导(bootstrap)集群
在此之前我们再检查下服务器配置
- 集群内节点数据库版本需要一致,目录结构一致
- 如果使用了防火墙,请确保各节点TCP的4444,4567,4568和UDP的4567断开相通
- selinux需配置允许访问mysqld
- 配置正确wsrep_provider参数
我们使用--wsrep-new-cluster参数来引导集群,如果三台数据库都是空的,我们可以选择任意一台引导,如果有数据库有数据,我们选择该数据库来引导
类似于MGR的boostrap
这里我们使用rac1来引导
**rac1**
注意我们只能在第一个启动集群,或者集群整体重启时使用该参数
```
service mysqld start --wsrep-new-cluster
```
之后我们使用如下命令查看是否启动正常
```
SHOW STATUS LIKE 'wsrep_cluster_size';
```
[image:753 size:orig]
## 3. 加入其他节点
当第一台引导完成,剩下的就很简单的,我们只需要正常启动数据库即可
**rac2**
```
service mysqld start
```
这时rac2会变成JOINER并申请同步,由于是第一次加入,会选举rac1为donor会采用SST的形式,使用rsync方法
[image:754 size:orig]
之后再查询下目前集群的大小
[image:755 size:orig]
**rac3**
```
service mysqld start
```
[image:756 size:orig]
这时所有的节点都是可读写的
[image:757 size:orig]
## 4. 注意事项
- 这里和MGR不同的是这里不需要备份还原,Galera会自动备全库后恢复到新加入的节点(SST)
- 请不要在少于3个节点时候关闭数据库,否则需要重新引导
- 集群建好后,如果需要全部关闭,在启动时需要重新引导
- 对于MyISAM等非事务表,只会同步DDL不会同步DML,如新建一张MyISAM表并插入数据,其他节点会新建表但是不会插入数据(行数为0)
## 5. 参考资料
[https://galeracluster.com/library/training/tutorials/starting-cluster.html](https://galeracluster.com/library/training/tutorials/starting-cluster.html)
[上一章](http://www.zhaibibei.cn/mysql/galera/tutorial6)
[下一章](http://www.zhaibibei.cn/mysql/galera/tutorial8)