在 CentOS 7/RHEL 7 上安装和配置 Percona XtraDB 集群高可用性(2)

为 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