前言
什么是PXC集群
Percona XtraDB Cluster是一套 MySQL 高可用集群解决方案,与传统的基于主从复制模式的集群架构相比 PXC 最突出特点就是解决了诟病已久的数据复制延迟问题,基本上可以达到实时同步。而且节点与节点之间,他们相互的关系是对等的。PXC 最关注的是数据的一致性,对待事物的行为时,要么在所有节点上执行,要么都不执行,它的实现机制决定了它对待一致性的行为非常严格,这也能非常完美的保证 MySQL 集群的数据一致性
PXC特性及优点
完全兼容 MySQL。
同步复制,事务要么在所有节点提交或不提交。
多主复制,可以在任意节点进行写操作。
在从服务器上并行应用事件,真正意义上的并行复制。
节点自动配置,数据一致性,不再是异步复制。
故障切换:因为支持多点写入,所以在出现数据库故障时可以很容易的进行故障切换。
自动节点克隆:在新增节点或停机维护时,增量数据或基础数据不需要人工手动备份提供,galera cluster会自动拉取在线节点数据,集群最终会变为一致;
PXC最大的优势:强一致性、无同步延迟
PXC的局限和劣势
复制只支持InnoDB 引擎,其他存储引擎的更改不复制
写入效率取决于节点中最慢的一台
PXC与Replication的区别
Replication | PXC |
---|---|
数据同步是单向的,master负责写,然后异步复制给slave;如果slave写入数据,不会复制给master | 数据同步时双向的,任何一个mysql节点写入数据,都会同步到集群中其它的节点 |
异步复制,从和主无法保证数据的一致性 | 同步复制,事务在所有集群节点要么同时提交,要么同时不提交 |
PXC与Replication的一般使用场景
Replication | PXC |
---|---|
【低价值业务】 | 【高价值业务】 |
日志 | 订单 |
新闻 | 账户 |
帖子 | 财务 |
正题
准备工作
准备两台 Linux CentOS 7.X 的主机
我这里直接选用阿里云的主机:
1.选择CentOS 7.6 镜像
2.修改两台服务器的host
1.进入配置文件编辑
vim /etc/hosts
2.将两台服务器的IP加入其中
第一台配置信息如图:
第二台配置信息如图:
3.安全组要保证所需端口开放
#mysql实例端口:3306
#PXC cluster相互通讯的端口:4567
#用于SST传送的端口:4444
#用于IST传送的端口:4568
4.创建并启动服务器
搭建第一个节点
1.登录服务器,我这里使用的软件为Xshell 6
2.关闭自带防火墙
【查看防火墙】
sudo systemctl status firewalld
【关闭防火墙】
sudo systemctl stop firewalld
查看了一下发现默认是关闭的,inactive(dead) 代表关闭了,如果是active(running)就意味着防火墙开启了,我这里是测试也就让防火墙关闭着,如果不可以关就把上文中那四个需要的端口给开放即可
3.关闭SELINUX 【这是一个 Linux 内核模块,也是个安全子系统】
1.输入命令进入配置文件
vim /etc/selinux/config
2.将SELINUX的值设置为disabled
修改后的文件如图所示
3.输入命令使关闭生效
setenforce 0
4.安装Persona仓库
1.输入安装命令
sudo yum install https://repo.percona.com/yum/percona-release-latest.noarch.rpm