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-20191209151315859](https://img2018.cnblogs.com/blog/1241092/201912/1241092-20191209221346260-1354139926.png) ![image-20191209151721443](https://img2018.cnblogs.com/blog/1241092/201912/1241092-20191209221345942-120168666.png) ![image-20191209151832958](https://img2018.cnblogs.com/blog/1241092/201912/1241092-20191209221345640-421358576.png) ```shell
yum 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
```-
修改配置文件
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
/usr/bin/mysqld_bootstrap
-
获取临时密码
cat /var/log/mysqld.log | grep temporary
-
登录mysql
mysql -uroot -p
-
修改密码
alter user root@localhost identified by 'L1g2qwe.'; flush privileges;
-
查看集群状态
show status like 'wsrep_cluster_size'; #value 表示目前集群中的主机数量
-
为另外两台主机进行相同配置及安装(主配置文件略有不同)
-
安装过程中若遇到如下错误
则需要将发生依赖冲突的包卸载
-
启动mysql(不能进行初始化否者无法正常登录)
-
登录mysql(因为Galera Cluster启动时自动同步了账号密码所以密码为第一台设置的密码)
-
测试在任意节点创建数据库后查看其他节点是否同步
其他两个节点查看同步
-