一、PXC简介
1.什么是 PXC
PXC 是一套 MySQL 高可用集群解决方案,与传统的基于主从复制模式的集群架构相比 PXC 最突出特点就是解决了诟病已久的数据复制延迟问题,基本上可以达到实时同步。而且节点与节点之间,他们相互的关系是对等的。PXC 最关注的是数据的一致性,对待事物的行为时,要么在所有节点上执行,要么都不执行,它的实现机制决定了它对待一致性的行为非常严格,这也能非常完美的保证 MySQL 集群的数据一致性;
2.PXC 的特点
-
完全兼容 MySQL。
-
同步复制,事务要么在所有节点提交或不提交。
-
多主复制,可以在任意节点进行写操作。
-
在从服务器上并行应用事件,真正意义上的并行复制。
-
节点自动配置,数据一致性,不再是异步复制。
-
故障切换:因为支持多点写入,所以在出现数据库故障时可以很容易的进行故障切换。
-
自动节点克隆:在新增节点或停机维护时,增量数据或基础数据不需要人工手动备份提供,galera cluster 会自动拉取在线节点数据,集群最终会变为一致。
3.PXC 的优缺点
优点:
-
服务高可用。
-
数据同步复制(并发复制),几乎无延迟。
-
多个可同时读写节点,可实现写扩展,不过最好事先进行分库分表,让各个节点分别写不同的表或者库,避免让 galera 解决数据冲突。
-
新节点可以自动部署,部署操作简单。
-
数据严格一致性,尤其适合电商类应用。
-
完全兼容 MySQL。
缺点:
-
复制只支持InnoDB 引擎,其他存储引擎的更改不复制。
-
写入效率取决于节点中最弱的一台,因为 PXC 集群采用的是强一致性原则,一个更改操作在所有节点都成功才算执行成功。
-
所有表都要有主键。
-
不支持 LOCK TABLE 等显式锁操作。
-
锁冲突、死锁问题相对更多。
4.PXC 与 Replication 的区别
Replication | PXC |
---|---|
数据同步是单向的,master 负责写,然后异步复制给 slave;如果 slave 写入数据,不会复制给 master | 数据同步时双向的,任何一个 mysql 节点写入数据,都会同步到集群中其它的节点 |
异步复制,从和主无法保证数据的一致性 | 同步复制,事务在所有集群节点要么同时提交,要么同时不提交 |
5.PXC 常用端口
-
3306:数据库对外服务的端口号。
-
4444:请求 SST 的端口。
-
4567:组成员之间进行沟通的一个端口号。
-
4568:用于传输 IST。
SST(State Snapshot Transfer): 全量传输
IST(Incremental state Transfer):增量传输
二、搭建 PXC 集群步骤
Percona XtraDB Cluster (简称 PXC)集群是基于 Galera 2.x library,事务型应用下的通用的多主同步复制插件,主要用于解决强一致性问题,使得各个节点之间的数据保持实时同步以及实现多节点同时读写。提高了数据库的可靠性,也可以实现读写分离,是 MySQL 关系型数据库中大家公认的集群优选方案之一。
准备好下面三台服务器,本文搭建PXC集群基于CentOS7.x:
IP | 端口 | 角色 |
---|---|---|
192.168.233.71 | 3306 | pxc1 |
192.168.233.72 | 3306 | pxc2 |
192.168.233.73 | 3306 | pxc3 |
1.配置hosts解析
在每个节点上编辑 /etc/hosts 文件,添加其他节点的主机名和 IP 地址
echo "192.168.1.133 pxc1" >> /etc/hosts
echo "192.168.1.135 pxc2" >> /etc/hosts
echo "192.168.1.136 pxc3" >> /etc/hosts
查看:
2.关闭防火墙和 SELinux
为简化部署,暂时关闭防火墙和 SELinux。在生产环境中,建议根据实际需求配置安全策略。
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
3.安装依赖包
安装必要的依赖包
yum install -y libaio perl-DBD-MySQL
三、安装 Percona XtraDB Cluster
percona-xtrabackup和Percona-XtraDB-Cluster登录下面地址找到相关版本来进行下载软件包 下载地址:https://www.percona.com/downloads qpress-1.1-14.11.x86_64.rpm需要使用wget来下载
软件作用
percona-xtrabackup-24-2.4.13-1.el7.x86_64.rpm
在线热备程序
qpress.1.1-14.11.x86_64.rpm
递归压缩程序
Percona-XtraDB-Cluster-5.7.25-31.35-r463-el7-x86_64-bundle.tar
1.安装软件
—— 三台服务器分别安装
—— 这三个软件包有依赖关系,安装时注意安装顺序
将下载好的软件包上传到Linux操作系统上
1.添加 Percona 软件仓库
在每个节点上添加 Percona 的 YUM 仓库
yum install -y https://repo.percona.com/yum/percona-release-latest.noarch.rpm
percona-release setup pxc80
2 安装 PXC
安装 Percona XtraDB Cluster 和相关工具:
yum install -y