mysql pxc集群介绍_MySQL中PXC集群的介绍

MySQL中PXC集群的介绍

发布时间:2020-05-27 14:37:02

来源:亿速云

阅读:215

作者:鸽子

一、PXC介绍

参考:Percona官方

PXC是一个开源的MySQL高可用解决方案,它将Percona Server和Xtrabackup与Galera库集成,以实现同步多主复制。基于Galera的高可用方案主要有MariaDB Galera Cluster(MGC)和Percona XtraDB Cluster(PXC),目前PXC架构在生产环境中用的更多而且更成熟些,PXC相比那些传统的基于主从模式的集群架构MHA和双主,PXC最突出的特点就是解决了诟病已久的复制延迟问题,基本上可以达到实时同步。而且节点与节点之间,它们互相的关系是对等的。本身Galera Cluster也是一种多主架构。PXC是在存储引擎层实现的同步复制,而非异步复制,所以其数据的一致性是相当高的。

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

1、PXC优缺点优点:实现了MySQL集群的高可用性和数据的强一致性。

完成了真正的多节点读写的集群方案。

改善了主从复制延迟的问题,基本上达到了实时同步。

新加入的节点可以自动同步数据,无需提前手动备份,维护方便。

由于是多节点写入,所以数据库故障切换很容易。

缺点:加入新节点时开销大,因为添加新节点时,必须从现有节点之一复制完整的数据集,如果现有的数据库中数据为100GB,则复制100GB。

任何更新的事务都需要全局验证通过,才会在其他节点上执行,集群性能受限于最差的节点,也就是所谓的短板效应(木桶定律)。

因为需要保证数据的一致性,PXC采用的实时基于存储引擎层来实现同步复制,所以在多节点并发写入时,锁冲突问题比较严重。

存在写扩大的问题,所有节点上都会发生写操作,对于写负载较大的场景,不推荐使用PXC。

仅支持Innodb存储引擎。

2、PXC工作原理

PXC的操作流程大体是这样的,首先客户端向请求连接的写入节点提交事务之前,由该节点将需要产生的replication writeset广播出去,然后获取全局事务ID,一并传送到其它的节点上去。其它节点通过certification合并数据之后,发现没有冲突数据,便执行apply_cb和commit_cb操作,否则就discard此次事务。

而当前节点(客户端请求的写入节点)通过验证之后,执行commit_cb操作,并返回OK给客户端。如果验证没有通过,则rollback_cb。

在生产线上的PXC集群中,至少要有三台节点。如果其中一个节点没有验证通过,出现了数据冲突,那么此时采取的方式就是将出现数据不一致的节点踢出集群,而且它会自动执行shutdown命令来自动关机。

3、PXC中的重要概念

首先要规范集群中节点的数量,整个集群节点数控制在最少3个、最多8个的范围内。最少3个是为了防止脑裂现象,因为只有在两个节点的情况下才会出现脑裂。脑裂的表现就是输出任何命令,返回结果都是unkown command。

当一个新节点要加入PXC集群的时候,需要从集群中各节点里选举出一个doner节点作为全量数据的贡献者。PXC有两种节点的数据传输方式,一种叫SST全量传输,另一种叫IST增量传输。SST传输有XtraBackup、mysqldump、rsync三种方式,而增量传输只有XtraBackup。一般数据量不大的时候可以使用SST作为全量传输,但也只使用XtraBackup方式。节点在集群中,会因新节点的加入或故障,同步失效等而发生状态的切换,下面列举出这些状态的含义:open:节点启动成功,尝试连接到集群

primary:节点已在集群中,在新节点加入集群时,选取donor进行数据同步时会产生式的状态。

joiner:节点处于等待接收同步数据文件的状态。

joined:节点已完成了数据同步,尝试保持和集群中其它节点进度一致。

synced:节点正常提供服务的状态,表示已经同步完成并和集群进度保持一致。

doner:节点处于为新加入节点提供全量数据时的状态。

二、部署PXC集群

1、环境准备OS主机名IPCent OS 7.5pxc-01192.168.20.2

Cent OS 7.5pxc-02192.168.20.3

Cent OS 7.5pxc-03192.168.20.4

注:所有主机都是不需要提前安装MySQL服务的,在PXC的源码包中包括了MySQL服务的。

注:2-8小结的所有操作,三台节点都是需要执行的。如果有什么是不需要在三台节点都执行的,我会特别说明的。

2、安装依赖[root@pxc-01 ~]# yum install -y libev lsof perl-Compress-Raw-Bzip2 perl-Compress-Raw-Zlib perl-DBD-MySQL perl-DBI perl-Digest perl-Digest-MD5 perl-IO-Compress perl-Net-Daemon perl-PlRPC socat openssl openssl-devel

3、卸载Mariadb[root@pxc-01 ~]# yum -y erase mariadb && rpm -qa | grep mariadb | xargs rpm -e --nodeps

4、下载所需软件包(xtraBackup、Percona-XtraDB-Cluster及qpress)[root@pxc-01 bin]# wget https://www.percona.com/downloads/Percona-XtraBackup-2.4/Percona-XtraBackup-2.4.18/binary/redhat/7/x86_64/percona-xtrabackup-24-2.4.18-1.el7.x86_64.rpm

[root@pxc-01 bin]# wget http://www.quicklz.com/qpress-11-linux-x64.tar

#上面这个包使用wget可能会报错406,用浏览器打开链接下载再上传到服务器即可。

[root@pxc-01 bin]# wget https://www.percona.com/downloads/Percona-XtraDB-Cluster-LATEST/Percona-XtraDB-Cluster-5.7.28-31.41/binary/tarball/Percona-XtraDB-Cluster-5.7.28-rel31-31.41.1.Linux.x86_64.ssl101.tar.gz

#这个包下载的话,时间会稍微长一些,耐心等待。

5、配置qpress命令并安装xtrabackup[root@pxc-01 bin]# tar xf qpress-11-linux-x64.tar -C /usr/bin

[root@pxc-01 bin]# rpm -ivh percona-xtrabackup-24-2.4.18-1.el7.x86_64.rpm

6、部署PXC服务#创建MySQL系统用户

[root@pxc-01 bin]# useradd -M -r -s /bin/false mysql

#解包

[root@pxc-01 bin]# tar zxf Percona-XtraDB-Cluster-5.7.28-rel31-31.41.1.Linux.x86_64.ssl101.tar.gz

#移动到指定目录

[root@pxc-01 bin]# mv Percona-XtraDB-Cluster-5.7.28-rel31-31.41.1.Linux.x86_64.ssl101 /usr/local/mysql

#创建data目录并更改目录属主属组为MySQL

[root@pxc-01 bin]# mkdir -p /usr/local/mysql/data

[root@pxc-01 bin]# chown -R mysql.mysql /usr/local/mysql/

#为MySQL命令配置全局变量

[root@pxc-01 bin]# echo "export PATH=/usr/local/mysql/bin:$PATH" >> /etc/profile

[root@pxc-01 bin]# source /etc/profile

7、定义MySQL服务的配置文件

1)pxc-01完整配置文件如下:[root@pxc

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值