MySQL高可用集群PXC部署教程(适用于国产操作系统)

一、PXC介绍

PXC(Percona XtraDB Cluster)是一个开源的MySQL高可用解决方案。它将Percona server和XtraBackup与galera库集成,以实现同步多主复制。基于galera的高可用方案主要有MariaDB galeracluster和Percona XtraDB cluster,目前PXC架构在生产线上用的很多而且更加成熟。

PXC相比那些传统的基于主从模式的集群架构MHA和双主,galera cluster最突出的特点是解决了诟病已久的复制延迟问题,基本上可以达到实时同步。而且节点与节点之间,他们互相的关系是对等的。

本身galera cluster也是一种多主架构。PXC是在存储引擎层实现的同步复制,而非异步复制,所以其数据的一致性是相当高的。

要搭建PXC架构至少需要三个MySQL实例来组成一个集群,三个实例之间不是主从模式,而是各自为主,所以三者是对等关系,不分从属,这也叫multi-master架构。客户端读写时,连接哪个实例都是一样的,读取到的数据是相同的,写入任意一个实例后,集群会将自己新写入的数据同步到其他实例上,这种架构不共享任何数据,是一种高冗余的集群架构。
 

二、PXC软件包下载

官网地址:
https://www.percona.com/downloads/Percona-XtraDB-Cluster-LATEST
使用官方地址下载速度相对较慢,可以选择国内镜像地址下载:
https://mirrors.tuna.tsinghua.edu.cn/percona/pxc-80/yum/release/8/RPMS/x86_64/

三、安装步骤说明(本方法适用于服务器无法访问外网的情况)

1、将网站中各个压缩包下载至本地

2、将上图中的rpm包 上传至需要安装的主机

3、配置主机yum源,因为在安装的过程中会需要其他依赖包(如何配置yum源在本文中不赘述)

4、进入rpm所在目录,执行如下命令

下面的命令需要root用户下执行
yum localinstall *.rpm
执行后会出现选择,按y进行安装

5、修改配置文件,配置文件路径/etc/my.cnf

vi /etc/my.cnf

以下为配置文件内容:
[client] 
socket=/data/mysql/mysql.sock 
[mysqld] 
server-id=141           #每台mysql的id不能相同
datadir=/data/mysql     #根据硬盘大小情况修改,需要大空间
socket=/data/mysql/mysql.sock 
log-error=/var/log/mysqld.log 
pid-file=/var/run/mysqld/mysqld.pid 

#下面这三行在配置文件中没有需要添加
lower_case_table_names=1
innodb_file_per_table=1
innodb_strict_mode=0

#二进制日志过期时间为604800秒,等于7天
binlog_expire_logs_seconds=604800 
######## wsrep ###### ######### 
Galera 库的路径
wsrep_provider=/usr/lib64/galera4/libgalera_smm.so 
# 集群连接 URL 包含节点的 IP #
如果没有找到 IP,这意味着需要一个新的集群创建,
#为了做到这一点,你需要引导这个节点
wsrep_cluster_address =gcomm://集群的IP,逗号分割
#为了显示为正确的二进制日志格式应该是ROW 
binlog_format = ROW 
#从服务器线程使用
wsrep_slave_threads = 8个
wsrep_log_conflicts 
#这个变化的InnoDB自动增量锁是如何管理的
innodb_autoinc_lock_mode = 2 
#节点 IP 地址,本机IP
wsrep_node_address=192.168.70.63 
# 集群名称,集群中的主机名称需要相同
wsrep_cluster_name=pxc-cluster 
#节点名称,集群中的节点名称不能相同
wsrep_node_name=pxc-cluster-node-1 
#pxc_strict_mode, allowed values:RCMISSABLE,EN MASTER 
pxc_strict_mode=ENFORCING 
# SST 方法
wsrep_sst_method=xtrabackup-v2

6、启动MySQL服务,本次将第一台安装的主机作为引导机

systemctl start mysql@bootstrap.service

7、登录MySQL查看集群节点情况

第一次启动MySQL后,在/var/log/mysqld.log日志中记录了root账号对应的密码,搜索password关键字可以找到

登录MySQL
mysql -uroot -p
输入密码
show status LIKE 'wsrep%';

返回结果中:wsrep_cluster_size 表示集群中的主机数量

8、另外的主机按照上面的方法执行 1~5步,执行后,将引导机数据目录下的*.pem文件导入到其他主机的数据目录下。

9、启动MySQL

其余主机启动方式与引导机不同
执行命令如下:
systemctl start mysql

10、查看wsrep_cluster_size是否增加,显示的数量与启动的MySQL数量相同即可

11、完成,请使用高可用MySQL集群吧

12、PXC节点的上线与下线

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值