菜单 学习猿地 - LMONKEY

VIP

开通学习猿地VIP

尊享10项VIP特权 持续新增

知识通关挑战

打卡带练!告别无效练习

接私单赚外块

VIP优先接,累计金额超百万

学习猿地私房课免费学

大厂实战课仅对VIP开放

你的一对一导师

每月可免费咨询大牛30次

领取更多软件工程师实用特权

入驻
2292
0

Galera cluster for MySQL 集群安装与配置

原创
05/13 14:22
阅读数 1702

安装galera,mysq-wsrep,xtrabackup

1.安装galera,mysq-wsrep

yum install libboost_program_options.so.1.53.0 boost-program-options lsof perl-Data-Dumper rsync -y
yum remove mysql-libs -y
wget http://releases.galeracluster.com/centos/7/x86_64/galera-3-25.3.19-2.el7.x86_64.rpm
wget http://releases.galeracluster.com/centos/7/x86_64/mysql-wsrep-5.6-5.6.34-25.18.el7.x86_64.rpm
wget http://releases.galeracluster.com/centos/7/x86_64/mysql-wsrep-client-5.6-5.6.34-25.18.el7.x86_64.rpm
wget http://releases.galeracluster.com/centos/7/x86_64/mysql-wsrep-devel-5.6-5.6.34-25.18.el7.x86_64.rpm
wget http://releases.galeracluster.com/centos/7/x86_64/mysql-wsrep-server-5.6-5.6.34-25.18.el7.x86_64.rpm
wget http://releases.galeracluster.com/centos/7/x86_64/mysql-wsrep-shared-5.6-5.6.34-25.18.el7.x86_64.rpm
wget http://releases.galeracluster.com/centos/7/x86_64/mysql-wsrep-test-5.6-5.6.34-25.18.el7.x86_64.rpm
rpm -ivh galera-3-25.3.19-2.el7.x86_64.rpm
rpm -ivh mysql-wsrep-server-5.6-5.6.34-25.18.el7.x86_64.rpm
rpm -ivh mysql-wsrep-client-5.6-5.6.34-25.18.el7.x86_64.rpm
rpm -ivh mysql-wsrep-5.6-5.6.34-25.18.el7.x86_64.rpm
rpm -ivh mysql-wsrep-devel-5.6-5.6.34-25.18.el7.x86_64.rpm
rpm -ivh mysql-wsrep-shared-5.6-5.6.34-25.18.el7.x86_64.rpm
rpm -ivh mysql-wsrep-test-5.6-5.6.34-25.18.el7.x86_64.rpm

2.安装xtrabackup

rpm -Uvh https://www.percona.com/redir/downloads/percona-release/redhat/percona-release-0.1-4.noarch.rpm
yum install percona-xtrabackup -y
xtrabackup --version

3.设置开机启动mysql

chkconfig mysql on
service mysql start

4.设置mysql的root密码,并做安全加固

/usr/bin/mysql_secure_installation

5.创建用于同步数据库的SST帐号

[root@galera-cluster-mysql-27 ~]# mysql -uroot -p
mysql> grant all privileges on *.* to sst@'%' identified by '123456';
mysql> flush privileges;
mysql> quit;

6.创建wsrep.cnf文件

cp /usr/share/doc/mysql-wsrep-server-5.6-5.6.34/wsrep.cnf /etc/my.cnf.d/
vim /etc/my.cnf.d/wsrep.cnf

只需要修改以下四行:

wsrep_provider=/usr/lib64/galera-3/libgalera_smm.so
wsrep_cluster_name="haotion_wsrep_cluster"
wsrep_cluster_address="gcomm://"
wsrep_sst_method=xtrabackup
wsrep_sst_auth=sst:123456

注意:"gcomm://"是特殊的地址,仅仅是Galera cluster初始化启动时使用。如果集群启动以后,我们关闭了第一个节点,那么再次启动的时候必须先修改"gcomm://"为其他节点的集群地址,例如:wsrep_cluster_address="gcomm://192.168.7.29"

7.在/usr/my.cnf中加入如下一行

vim /usr/my.cnf

!includedir /etc/my.cnf.d/

8.重启mysql服务

service mysql restart

配置Galera cluster for MySQL

在Galera Cluster中,新接入的节点叫Joiner,给joiner提供复制的节点叫Donor。

image

对于生产环境使用,建议设立一个专用的"参考节点",这个"参考节点"不执行任何客户端的SQL请求。

image

上图中红色的NODE A即为"参考节点",这样做的好处有如下几条:

1.数据一致性:
因为"参考节点"本身不执行任何客户端SQL,所以在这个节点上发生transaction冲突的可能性最小。
因此如果发现集群有数据不一致的时候,"参考节点"上的数据应该是集群中最准确的。

2.数据安全性:
因为"参考节点"本身不执行任何客户端SQL,所以在这个节点上发生灾难事件的可能性最小。
因此当整个集群宕掉的时候,"参考节点"应该是恢复集群的最佳节点。

3.高可用:
"参考节点"可以作为专门state snapshot donor。
因为"参考节点"不服务于客户端,因此当使用此节点进行SST的时候,不会影响用户体验,并且前端的负载均衡设备也不需要重新配置。

构造如上图的结构,新节点的操作步骤如下:

  1. 按照上述1-8的步骤安装mysql和Galera library
  2. 除了第6步wsrep_cluster_address的配置稍有不同:wsrep_cluster_address="gcomm://Node-[A-N]-IP"
  3. 配置Node A重新加入集群,修改/etc/my.cnf.d/wsrep.cnf中的wsrep_cluster_address地址指向Node N。wsrep_cluster_address="gcomm://Node-N-IP:4567"
  4. 重启mysql服务
service mysql restart

查看集群心跳语句

mysql> show status like 'wsrep%';

注意(遇到的坑):集群启动失败解决方案

cd /var/lib/mysql
rm -f g*
echo ''>innobackup.backup.log

发表评论

0/200
2292 点赞
0 评论
收藏
为你推荐 换一批