专业编程基础技术教程

网站首页 > 基础教程 正文

MySQL数据库之Haproxy+PXC集群搭建(中)

ccvgpt 2024-12-02 15:51:12 基础教程 10 ℃

概述

前面已经介绍了PXC集群方面的一些理论内容,今天主要简单介绍一下PXC集群如何部署以及测试,仅供参考。

文末为上篇链接。

MySQL数据库之Haproxy+PXC集群搭建(中)


PXC集群环境说明:



1、环境准备

1.1 、修改本地hosts

cat >> /etc/hosts <<EOF
xx.142   pxc_node1
xx.143   pxc_node2
xx.144   pxc_node3
EOF

1.2、禁用防火墙和selinux

systemctl stop firewalld && systemctl disable firewalld
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
setenforce 0

1.3、配置阿里源

for i in /etc/yum.repos.d/*.repo;do cp $i ${i%.repo}_bak;done
rm -rf /etc/yum.repos.d/*.repo
wget -P /etc/yum.repos.d/ http://mirrors.aliyun.com/repo/Centos-7.repo
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
sed -i 's#keepcache=0#keepcache=1#g' /etc/yum.conf     
yum clean all  &&   yum makecache

2、三个节点均安装PXC(保证服务器没有装MySQL)

下载地址:https://www.percona.com/downloads/percona-release/

如果有外网环境直接yum就可以了,如果无外网环境,那么就需要到官网:

https://www.percona.com/downloads/Percona-XtraDB-Cluster-LATEST/

去把依赖包一个一个下载下来,再手动安装。

--依赖安装
yum -y groupinstall Base Compatibility libraries Debugging Tools Dial-up Networking suppport Hardware monitoring utilities Performance Tools Development tools
    
--组件安装
yum -y install https://downloads.percona.com/downloads/percona-release/percona-release-1.0-25/redhat/percona-release-1.0-25.noarch.rpm
yum -y update percona-release

--pxc安装
yum -y install Percona-XtraDB-Cluster-57



3、集群配置

3.1、在所有节点修改root密码并配置SST认证账号

systemctl start mysqld
grep 'password' /var/log/mysqld.log
mysql -uroot -p
> ALTER USER 'root'@'localhost' IDENTIFIED BY 'xxx34';
> GRANT ALL PRIVILEGES ON *.* TO root@'%' identified by 'xxx234';
> CREATE USER 'sst'@'localhost' IDENTIFIED BY 'xxx234';
> GRANT RELOAD, LOCK TABLES, PROCESS, REPLICATION CLIENT ON *.* TO 'sst'@'localhost';
> FLUSH PRIVILEGES;
systemctl stop mysqld

3.2、修改所有节点的配置文件

# vim /etc/percona-xtradb-cluster.conf.d/wsrep.cnf
# 三个节点需分别修改server-id、wsrep_node_name、wsrep_node_address、wsrep_sst_auth
================================================================================================
[mysqld]
#PXC集群中MySQL实例的唯一ID,不能重复,必须是数字
server-id=1 
#当前节点的名称
wsrep_node_name=pxc_node1
#当前节点的IP
wsrep_node_address=xx.142
#PXC集群的名称
wsrep_cluster_name=pxc_cluster
#同步使用的帐户
wsrep_sst_auth= sst:xx234
#启动时要连接的群集节点的地址
wsrep_cluster_address=gcomm://xx.142,xx.143,xx.144
# Path to Galera library
wsrep_provider=/usr/lib64/galera3/libgalera_smm.so
#同步方法(mysqldump、rsync、xtrabackup)
wsrep_sst_method=xtrabackup-v2
 #同步严厉模式
pxc_strict_mode=ENFORCING
#基于ROW复制(安全可靠)
binlog_format=ROW 
#默认引擎
default_storage_engine=InnoDB
#主键自增长不锁表
innodb_autoinc_lock_mode=2
# 用于并行应用Galera写集的从属线程数
wsrep_slave_threads= 8
#如果设置为ON(默认为OFF),则会记录群集中发生冲突的MDL以及InnoDB锁的详细信息
wsrep_log_conflicts = ON
================================================================================================




4、启动pxc并测试

4.1、启动第一个节点

停止mysql服务,选择一个node作为名义上的master,启动第一个节点以前,其节点的配置文件里面,不能配置其它节点的ip,即 wsrep_cluster_address=gcomm:// 这样就行了,否则会导致启动报错。待集群启动后,再修改它的配置文件,把其他节点的ip补充上去。

集群关闭之后,再启动,谁做第一个节点谁就执行/etc/init.d/mysqld bootstrap-pxc。

如果最后关闭的PXC节点是安全退出的,那么下次启动要最先启动这个节点,而且要以主节点启动 如果最后关闭的PXC节点不是安全退出的,那么要先修改/var/lib/mysql/grastate.dat 文件, 把其中的safe_to_bootstrap属性值设置为1, 再安装主节点启动。

除了名义上的master之外,其它的node节点只需要启动mysql即可。

systemctl start mysql@bootstrap.service


4.2、启动其他节点

systemctl start mysql

5、pxc集群测试

测试过程如下:




结果如下:





6、PXC集群管理

6.1、日常维护

--查看节点数:
show global status like 'wsrep_cluster_size';  
--查看集群状态:
show global status like 'wsrep_local_state_comment';
--查看当前节点状态:
show global status like 'wsrep_cluster_status';
--通过查看4567 端口确认集群是否启动: 
netstat -plantu | grep mysqld 
--集群关闭:所有节点都用
/etc/init.d/mysql  stop
--节点重启
1)第一个节点用:
systemctl start mysql@bootstrap.service
2)其他节点用:
systemctl start mysql



6.2、wsrep相关参数检查

集群完整性检查:

节点状态检查:

复制健康检查:

检测慢网络问题:

冲突或死锁的数目:


篇幅有限,今天主要介绍PXC集群部署方面,后面再介绍怎么用Haproxy来做PXC集群的负载均衡。

Tags:

最近发表
标签列表