自从生产发现mysql双主问题以来,瞬间开始了mysql大型填坑工程……,这次可以算完结篇了。
近期在看openstack的高可用架构,发现各种文档文章都在介绍galera+xtrabackup来实现元数据库的高可用架构,所以搭了个环境来测试实现原理及日常维护操作。
环境:4台虚拟机,Centos7.6,配置随意
概念提要:
galera作为mysql的真-多主集群架构,提供了三种同步方式:mysqldump、rsync和xtrabackup,以下是优缺点
galera的节点状态有以下几种:
Open
节点启动成功,尝试连接到集群
Primary
节点已处于集群中,在新节点加入时,选取donor进行数据库同步时会产生的状态
Joiner
节点处于等待接收或正在接收同步文件的状态
Joined
节点完成数据同步,但还有部分数据不是最新的,在追赶与集群数据一致的状态
Synced
节点正常提供服务的状态,表示当前节点数据状态与集群数据状态是一致的
Donor
表示该节点被选为Donor节点,正在为新加进来的节点进行全量数据同步,此时该节点对客户端不提供服务
使用show status like 'wsrep_local_state_comment';来查看
同步机制:
IST: Incremental State Transfer增量同步SST:State Snapshot Transfer全量同步
部署开始:
从http://rpm.pbone.net/index.php3下载libev依赖包并安装:
libev-4.15-7.el7.x86_64.rpm
yum install perl-Time-HiRes
yum -y installperl-DBD-MySQL.x86_64
yum -y install libaio*
yum -y install perl
yum -y install rsync
https://releases.galeracluster.com
下载galera和wsrep的rpm包
https://www.percona.com
下载percona-xtrabackup备份插件
rpm -qa | grep -E 'galera|wsrep|percona'
galera-3-25.3.28-1.el7.x86_64
mysql-wsrep-common-5.7-5.7.28-25.20.el7.x86_64
mysql-wsrep-client-5.7-5.7.28-25.20.el7.x86_64
percona-xtrabackup-24-2.4.18-1.el7.x86_64
mysql-wsrep-libs-compat-5.7-5.7.28-25.20.el7.x86_64
mysql-wsrep-libs-5.7-5.7.28-25.20.el7.x86_64
mysql-wsrep-server-5.7-5.7.28-25.20.el7.x86_64
percona-xtrabackup-24-debuginfo-2.4.18-1.el7.x86_64
安装完成后,配置mysql
[root@galera1 opt]# grep ^[0-Z] /etc/my.cnf
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
symbolic-links=0
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
wsrep_provider=/usr/lib64/galera-3/libgalera_smm.so
wsrep_cluster_name=mysql_galera_cluster
wsrep_