为 MySQL 选择高可用性解决方案以防止停机和数据丢失,确实是 IT 系统管理员需要处理的重要课题之一。
今天,我们将介绍 Percona XtraDB Cluster,这是市场上的 MYSQL 高可用性解决方案之一。
我们将介绍如何在 CentOS 7/RHEL 7 上为 Percona XtraDB 集群节点安装和配置 HAProxy 作为负载均衡器。
环境
该实验室将由三个 CentOS 7 服务器/节点和一个 HAProxy 负载均衡器组成。
- 节点 1
- 主机名:pxc01.onitroad.com
- IP 地址:192.168.1.10
- 节点 2
- 主机名:pxc02.onitroad.com
- IP 地址:192.168.1.11
- 节点 3
- 主机名:pxc03.onitroad.com
- IP地址:192.168.1.12
- HAProxy 1
- 主机名:lb01.onitroad.com
- IP 地址:192.168.1.15
第 3 步:HAProxy 安装和配置
1安装HAProxy
[jack@onitroad ~]# yum install haproxy -y
2HAProxy文件配置:
[jack@onitroad ~] # mv /etc/haproxy/haproxy.cfg /etc/haproxy/haproxy.cfg.org [jack@onitroad ~] # vi /etc/haproxy/haproxy.cfg
你的文件配置应该是这样的。
#global log 127.0.0.1 local0 log 127.0.0.1 local1 notice maxconn 4096 uid 99 gid 99 #daemon debug #quiet defaults log global mode http option tcplog option dontlognull retries 3 redispatch maxconn 2000 contimeout 5000 clitimeout 50000 srvtimeout 50000 listen mysql-cluster 0.0.0.0:3306 mode tcp balance roundrobin option httpchk server pxc01 192.168.1.10:3306 check port 9200 inter 12000 rise 3 fall 3 server pxc02 192.168.1.11:3306 check port 9200 inter 12000 rise 3 fall 3 server pxc03 192.168.1.12:3306 check port 9200 inter 12000 rise 3 fall 3 listen stats 0.0.0.0:9000 ## HAProxy stats web gui running on port 9000 - username lotfi and password: secret mode http stats enable stats uri /stats stats realm HAProxy\ Statistics stats auth lotfi:secret stats admin if TRUE
3防火墙调整
[jack@onitroad ~]# firewall-cmd --permanent --add-port=9000/tcp [jack@onitroad ~]# firewall-cmd --permanent --add-port=3030/tcp [jack@onitroad ~]# firewall-cmd --reload
4启动/启用HAProxy
[jack@onitroad ~]# systemctl enable haproxy [jack@onitroad ~]# systemctl start haproxy
第 3 步:检查和测试
用haproxy节点的ip地址在9000端口打开浏览器:
所有节点都在线,我们现在尝试使用HAProxy的IP地址从客户端机器查询集群
[jack@onitroad ~]# mysql -u root -p -h 192.168.1.15 -P 3306 -e "SELECT * FROM clustertest.employees" +--------+------------------+ | number | name | +--------+------------------+ | 1 | Waderni Lotfi | +--------+------------------+ [jack@onitroad ~]#
步骤 1:Clustercheck 脚本配置
1 安装xinetd服务(3个节点):
[jack@onitroad ~]# yum install xinetd -y
2将新服务添加到/etc/services(3个节点):
[jack@onitroad ~]# vi /etc/services mysqlchk 9200/tcp # mysqlchk
3启用并启动xinetd(3个节点):
[jack@onitroad ~]# systemctl enable xinetd [jack@onitroad ~]# systemctl start xinetd
4设置clustercheck用户:
在 Percona XtraDB 集群之一上,使用以下命令创建 clustercheck 用户
[jack@onitroad ~]# mysql -u root -p mysql> grant process on *.* to 'clustercheckuser'@'localhost' identified by 'clustercheckpassword!'; Query OK, 0 rows affected (0.00 sec) mysql> flush privileges; Query OK, 0 rows affected (0.00 sec)
5通过运行以下命令检查节点的健康状况:
使用以下命令运行 clustercheck 脚本来检查节点的健康状况
[jack@onitroad ~]# clustercheck clustercheck clustercheckpassword! 0
如果节点运行正常,我们应该获得以下状态
HTTP/1.1 200 OK Content-Type: text/plain Connection: close Content-Length: 40 Percona XtraDB Cluster Node is synced.
6防火墙调整(3个节点):
[jack@onitroad ~]# firewall-cmd --zone=public --add-port=9200/tcp --permanent [roojack@onitroad ~]# firewall-cmd --reload
日期:2020-06-02 22:18:35 来源:oir作者:oir