一、概述
MariaDB Galera群集是MariaDB的同步多主群集。它仅在Linux上可用,并且仅支持 XtraDB / InnoDB存储引擎。Galera本身是具有多主特性的,即采用multi-master的集群架构,是一个既稳健,又在数据一致性、完整性及高性能方面有出色表现的高可用解决方案。
MariaDB 10.1及更高版本不再具有单独的MariaDB Galera Cluster版本。只需下载MariaDB(10.1或更高版本)并正常配置集群即可。
二、实战
准备3台CentOS7.6虚机(最少3台)
1、在3台服务器上分别配置yum源,安装mariadb galera
vim /etc/yum.repos.d/MariaDB.repo
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.3/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
[root@localhost ~]# yum clean all
[root@localhost ~]# yum repolist
用yum安装
yum -y install MariaDB-server
2、3台服务器分别关闭防火墙、selinux,配置域名解析
192.168.43.164 Galera01
192.168.43.165 Galera02
192.168.43.166 Galera03
3、启动mariadb服务,初始化数据库,远程账号授权
# systemctl start mariadb
# mysqladmin -uroot password "123456";
# MariaDB [(none)]> grant all privileges on *.* to wrsp@'%' identified by '123456';
MariaDB [(none)]> flush privileges;
###远程验证,很重要###
在每台主机上验证远程连接其余两台的情况
mysql -h 192.168.43.165 -u wrsp -p123456
4、关闭数据库服务,配置galera
# systemctl stop mariadb
# vim /etc/my.cnf.d/server.cnf
[galera]
wsrep_on=ON
wsrep_provider=/usr/lib64/galera/libgalera_smm.so
wsrep_cluster_address="gcomm://192.168.43.164,192.168.43.165,192.168.43.166" ###三台节点IP###
wsrep_node_name=Galera01 ###本机的hostname###
wsrep_node_address=192.168.43.164 ###本机IP###
binlog_format=row
default_storage_engine=InnoDB
innodb_autoinc_lock_mode=2
wsrep_slave_threads=1
innodb_flush_log_at_trx_commit=0
innodb_buffer_pool_size=120M
wsrep_sst_method=rsync
wsrep_sst_auth=wrsp:123456 ###赋权的账号和密码###
将此文件复制到Galera02、Galera03
注意修改:
wsrep_node_name=hostname
wsrep_node_address=ip
5、任意选择一台作为初始化节点,启动galera
# galera_new_cluster
接着启动剩余的两台
#systemctl start mariadb
6、验证
任意停一台或者两台,只要有一台存活,其他两台重启后数据同步。