Galera Cluster实现数据库高可用集群
### Galera Cluster实现数据库高可用集群
-
介绍
- Galera Cluster不同于常规的MySQL Server软件,安装了额外的插件,也需要额外的配
- Galera Cluster要求最少3个节点,即3台MySQL服务器主机
- Galera Cluster复制仅仅支持支持事务的InnoDB存储引擎
- 任何写入其他引擎的表,包括mysql.*表将不会复制,但是DDL语句会被复制的,因此创建用户将会被复制,但是insert into mysql.user…将不会被复制的
- DELETE操作不支持没有主键的表
- 整个集群的写入吞吐量是由最弱的节点限制,如果有一个节点变得缓慢,那么整个集群将是缓慢的。为了稳定的高性能要求,所有的节点应使用统一的硬件
-
优点
- 多节点写入和读取需求
- 适合数据库节点数据一致性要求高的业务
- 适合数据高可用性要求高的业务
-
Galera Cluster的下载
-
Galera Cluster安装与配置
-
实验环境
- node1 centos7 192.168.20.30
-
-
node2 centos7 192.168.20.31
- node3 centos7 192.168.20.32
-
注:主机均已关闭防火墙与selinux
-
将下载的安装包上传至服务器
![image-20191209150642470]()
-
安装依赖及软件
![image-20191209151203454]()
   ```shellyum install rsync
yum install galera-3-25.3.28-1.el7.x86_64.rpm
yum install mysql-wsrep-{client,common,libs,server}-*
yum install mysql-wsrep-5.7-5.7.28-25.20.el7.x86_64.rpm
```-
修改配置文件
![image-20191209151937238]()
![image-20191209152110691]()
user=mysql binlog_format=ROW bind-address=0.0.0.0 default_storage_engine=innodb innodb_autoinc_lock_mode=2 innodb_flush_log_at_trx_commit=0 innodb_buffer_pool_size=122M wsrep_provider=/usr/lib64/galera-3/libgalera_smm.so wsrep_provider_options="gcache.size=600M; gcache.page_size=300M" wsrep_cluster_name="test-cluster" wsrep_cluster_address="gcomm://192.168.20.30,192.168.20.31,192.168.20.32" wsrep_sst_method=rsync wsrep_node_name=node1 wsrep_node_address="192.168.20.30"
-
-
初始化mysql
![image-20191209152310365]()
/usr/bin/mysqld_bootstrap-
获取临时密码
![image-20191209152413046]()
cat /var/log/mysqld.log | grep temporary -
登录mysql
![image-20191209152625313]()
mysql -uroot -p -
修改密码
![image-20191209152719110]()
alter user root@localhost identified by 'L1g2qwe.'; flush privileges; -
查看集群状态
![image-20191209153004120]()
show status like 'wsrep_cluster_size'; #value 表示目前集群中的主机数量 -
为另外两台主机进行相同配置及安装(主配置文件略有不同)
![image-20191209153704892]()
![image-20191209153746110]()
![image-20191209153844110]()
![image-20191209153914638]()
-
安装过程中若遇到如下错误
![image-20191209153605013]()
则需要将发生依赖冲突的包卸载
![image-20191209153644575]()
-
启动mysql(不能进行初始化否者无法正常登录)
![image-20191209154616379]()
![image-20191209154119349]()
-
登录mysql(因为Galera Cluster启动时自动同步了账号密码所以密码为第一台设置的密码)
![image-20191209154646589]()
![image-20191209154435200]()
-
测试在任意节点创建数据库后查看其他节点是否同步
![image-20191209155030348]()
其他两个节点查看同步
![image-20191209155104327]()
![image-20191209155123221]()
-























浙公网安备 33010602011771号