当前位置首页 > CentOS知识

CentOS7.6构建MySQLPXC高可用集群

阅读次数:168 次  来源:admin  发布时间:

原文:https://blog.51cto.com/qiuyue/2406117

一、Percona XtraDB Cluster相关概念及原理:

1、Percona XtraDB Cluster简介:

Percona XtraDB Cluster是基于Galera协议的MySQL高可用集群架构。Galera是Codership提供的多主数据同步复制机制,具有高可用性,方便扩展,可以实现多个MySQL节点间的数据同步复制以及读写,并且可保障数据库的服务高可用及数据一致性。基于Galera的高可用方案主要有MariaDB Galera Cluster和Percona XtraDB Cluster(简称PXC)。PXC属于一套近乎完美的MySQL高可用集群解决方案,相比那些传统的基于主从复制模型的集群架构MHA和MM+Keepalived,Galera Cluster最突出的特点就是解决了诟病已久的数据复制延迟问题,基本上可以达到实时同步,而且节点与节点之间,它们相互的关系是对等的。本身Galera Cluster也是一种多主架构,如下图所示:

CentOS7.6构建MySQLPXC高可用集群

CentOS7.6构建MySQLPXC高可用集群

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

2、PXC原理:

PXC最常使用如下4个端口号:

(1)3306:数据库对外服务的端口号

(2)4444:请求SST的端口号

(3)4567:组成员之间进行沟通的端口号

(4)4568:用于传输IST的端口号

备注:

Ø SST:State Snapshot Transfer,全量数据传输

Ø IST:Incremental State Transfer,增量数据传输

CentOS7.6构建MySQLPXC高可用集群

从上图中可以看出PXC的操作流程,首先客户端发起一个事务,该事务先在本地执行,执行完成后发起对事务的提交操作。在提交之前需要将产生的复制写集广播出去,然后获取到一个全局的事务ID号,一并传送到另一节点上。通过验证合并数据之后,发现没有冲突数据,执行apply_cb和commit_cb操作,否则就需要取消(discard)此次事务的操作。而当前server节点通过验证之后,执行提交操作,并返回OK,如果验证没通过,则执行回滚。当然在生产中至少要有三个节点的集群环境,如果其中有一个节点没有验证通过,出现了数据冲突,那么此时采取的方式就是将出现不一致的节点踢出集群环境,而且它自己会执行shutdown命令,自动关机。

3、PXC架构的优缺点:

(1)优点:

a、实现MySQL集群架构的高可用性和数据强一致性

上一篇:Nginx+uWSGI+Django+Python在Linux上的部署
下一篇:Nginx相关