PXC5.6实验集群的安装与设置目录1.目的: (4)2.集群构成: (5)2.1.集群构成图: (5)2.2.集群构成明细: (5)3.安装设置操作步骤: (6)3.1.安装Percona Yum Repository: (6)3.2.安装EPEL源: (7)3.3.安装PXC (7)3.4.创建及设置数据目录 (8)3.5.开通PXC相关IP端口 (9)3.6.关闭SELinux (10)3.7.设置f启动项文件 (10)3.8.启动集群 (12)4.通过HAProxy实现PXC集群负载均衡: (14)4.1.安装HAProxy (14)4.2.设置HAProxy (14)4.3.启动HAProxy (16)4.4.增加集群状态检查进程用Mysql用户权限 (16)4.5.为集群每一个节点服务器安装xinetd (17)4.6.配置xinetd (17)4.7.通过HAProxy查看数据库集群状态: (18)5.用Keepalived解决HAProxy单点故障: (20)5.1.安装配置备份代理服务器 (20)5.2.安装Keepalived (21)5.3.在主HAProxy代理服务器中设置Keepalived (21)5.4.在备份HAProxy代理服务器中设置Keepalived (23)5.5.验证虚拟IP的漂移 (24)6.问题排查及解决: (25)6.1.ERROR 1047 (08S01): WSREP has not yet prepared node for application use (25)1.目的:本手册用于介绍如何通过在三台CentOS6.6服务器上安装Percona XtraDB Cluster5.6,来搭建一个拥有三个数据节点的的MySQL数据库集群。
以及如何用另外两台CentOS6.6服务器,通过安装HAPrxoy+Keepalived来实现MySQL集群的负载均衡。
从而获得一个具备高可用性的数据库集群。
本手册各章节详细介绍了每台服务器上需要安装的服务,以及各种服务的配置与启动的详细步骤。
2.集群构成:2.1.集群构成图:2.2.集群构成明细:1、HAProxy+Keepalived主代理服务器主机名:CentOS-L1IP地址:192.168.82.402、HAProxy+Keepalived备份代理服务器主机名:CentOS-L3IP地址:192.168.82.413、PXC数据节点1主机名:CentOS-W1IP地址:192.168.82.294、PXC数据节点2主机名:CentOS-W2IP地址:192.168.82.305、PXC数据节点3主机名:CentOS-W3IP地址:192.168.82.31以上服务器的系统版本皆为CentOS6.6。
用户名和密码都相同,为(root/root01);3.安装设置操作步骤:首先以root用户权限登录到Node1,安装与设置PXC5.6。
然后再以此登录到Node2和Node3进行几乎相同的安装与设置操作。
3.1.安装Percona Yum Repository:首先通过rpm安装Percona testing repository(红字内容):其次通过rpm安装Percona release repository(红字内容):3.2.安装EPEL源:如果不安装EPEL源(Extra Packages for Enterprise Linux)来获取额外的软件包,那就会在安装PXC发生Dependancy issue,被告知“requires socat”。
3.3.安装PXC通过yum从Percona Yum Repository获取PXC Server、PXC Client、和PXC Galera(红字内容):3.4.创建及设置数据目录通过以下两个命令(红字内容)来分别创建和设置MySQL的数据目录:在执行” mysql_install_db”命令时会输出一堆信息。
其中有一些重要的内容可供参考。
详见一下log文件:mysql_install_db.log3.5.开通PXC相关IP端口PXC需要用到3306, 4444, 4567, 4568端口,在iptables中开通这些对这些端口的访问权限。
可以直接修改/etc/sysconfig/iptables文件,也可以通过iptables命令来设置。
方法一如下所示,通过”vi”打开iptables文件,然后加入端口设置语句(红字部分):字内容所示:3.6.关闭SELinux如果不关闭SELinux(Security-Enhanced Linux)安全控制系统的话会造成PXC启动失败。
因此需要通过修改/etc/selinux/config文件中的设置,把” SELINUX=enforcing”变更为” SELINUX=disabled”。
如下红字内容所示:(※注意:编辑并保存后必须重启CentOS系统才能使修改内容生效)3.7.设置f启动项文件在Node1中,/etc/f的内容如下红字所示:首先启动Node1,如下红字内容所示:用户设置密码:接下来为Node1的MySQL root最后启动Node3:集群启动后可以通过在mysql控制台中运行”SHOW STATUS LIKE ‘wsrep%’”命令来获取集群的状态。
4.通过HAProxy实现PXC集群负载均衡:我们通过HAProxy来实现PXC数据库集群的读写负载均衡问题。
在PXC集群之外再设置一台HAProxy代理服务器,所有应用程序对于数据集群的读写操作都发送给这台代理服务器,再由HAProxy决定某个读或者写的操作具体发送给集群中的哪台数据库服务器。
4.1.安装HAProxy在PXC集群之外,单独准备一套系统用来安装HAProxy。
在本文档中该套系统的主机名为:CentOS-L1;IP地址为:192.168.82.40;首先确认在这套系统中已经安装了Percona以及EPEL的Yum Repository(参见3.1和3.2所示内容)。
然后通过以下命令安装HAProxy:# yum -y install haproxy4.2.设置HAProxyHAProxy的配置文件为“/etc/haproxy/haproxy.cfg”。
修改其默认内容为如下文件所示:haproxy.cfg其中共定义了以下三个外部访问端口:●集群运行状态HTTP协议访问端口:8080。
用于通过WEB页面监控数据库集群中各节点的运行状态;●集群单节点写入TCP协议访问端口:3306。
单节点写入,其他节点通过PXC的SST功能进行同步。
可能会有数据延迟。
但不会发生乐观锁(optimistic locking)回滚(rollback)引起的问题;集群全节点读写TCP协议访问端口:3307。
同时对集群所有节点进行读写操作。
大多数情况都可以使用该方式实现数据库集群的负载均衡。
但会有乐观锁(optimistic locking)回滚(rollback)造成数据错误的风险。
一个完整的” haproxy.cfg”配置文件内容如下图所示:4.3.启动HAProxy在启动HAProxy之前要修改防火墙配置,允许对8080、3306和3307三个端口访问。
如果防火墙确实无关紧要,也可以通过下面的命令来禁用它。
使用以下命令手动启动HAProxy:也可以通过以下命令把HAProxy加入开启启动服务列表中:4.4.增加集群状态检查进程用Mysql用户权限以root登录到数据库集群任一节点的MySQL库中,通过以下SQL 文增加一个新的拥有”PROCESS”权限的用户:由于变更了clustercheck进程默认使用的用户名和密码(默认为用户’ clustercheckuser’;密码为’ clustercheckpassword!’)。
因此需要分别修改所有集群节点的checkcluster脚本内容。
该脚本放置在/usr/bin目录下。
修改前为:修改后为:全部修改完成后运行clustercheck脚本检查集群状态:4.5.为集群每一个节点服务器安装xinetd确认/etc/xinetd.d/mysqlchk文件是否存在,其内容是否为如下所示:mysqlchk如果该文件存在,且内容无误。
接下来在/etc/services文件中通过追加以下一行内容来添加新的服务:把对端口9200的访问允许加入各集群节点的防火墙设置中。
4.7.通过HAProxy查看数据库集群状态:在浏览器中通过访问HAProxy的URL”http://192.168.82.40:8080/haproxy/stats”可以监控集群状态信息。
该URL的用户认证信息是在“/etc/haproxy/haproxy.cfg”中定义的。
“stats auth pxcstats:secret”,也就是用户名密码分别为“pxcstats”、“secret”。
认证成功后看到的监控画面如下:5.用Keepalived解决HAProxy单点故障:HAProxy虽然解决了PXC数据库集群的负载均衡问题。
但在只有一台HAProxy代理服务器的情况下,一旦发生单点故障,即使PXC集群中数据库服务器的数量再多,也会造成所有应用程序无法读写数据库的严重问题。
因此,我们通过Keepalived来避免HAProxy代理服务器的单点故障问题。
方法是另外再安装一台HAProxy代理服务器。
然后在两台HAProxy服务器中都安装Keepalived。
通过对Keepalived进行配置,使得两台HAProxy代理服务器一台为主服务器,另一台为副服务器。
而它们对外表现为一个虚拟IP(VIP)。
所有的应用程序都将自己的数据库读/写请求发送到这个虚拟IP的数据访问端口上(就是HAProxy 中设置的数据访问端口)。
正常情况下主代理服务器会发送特定的消息给备份服务器,当备份服务器收不到这个消息的时候,即可认定主服务器已经宕机。
这时备份服务器就会接管虚拟IP,继续提供数据访问服务,从而保证了PXC数据库集群的高可用性。
在本文档中,我们最终配置的HAProxy+Keepalived环境如下:●主代理服务器:192.168.82.40(主机名:CentOS-L1)●备份代理服务器:192.168.82.41(主机名:CentOS-L2)●虚拟IP(VIP):192.168.82.2005.1.安装配置备份代理服务器参照4.1-4.3的内容所示,安装配置备份HAProxy代理服务器。
5.2.安装Keepalived假设相关的源已经设置好。
然后在主HAProxy服务器(192.168.82.40)以及备份HAProxy服务器(192.168.82.41)中,通过以下命令分别安装Keepalived。