percona-xtradb-cluster(pxc)初步认识、部署及运维实践

一、PXC介绍

Percona XtraDB集群是一个完全开源的MySQL高可用性解决方案。 它将Percona服务器和Percona XtraBackup与Galera库集成,以实现同步多主复制。一个集群由节点组成,其中每个节点包含同一节点上同步的一组数据。 建议的配置至少有3个节点,但也可以有2个节点。 每个节点是一个常规的MySQL服务器实例(例如,Percona服务器)。 您可以将现有的MySQL服务器实例转换为节点,并使用此节点作为基础运行群集。 也可以从群集中分离任何节点,并将其用作常规MySQL服务器实例。

二、PXC特点及限制

2.1 特点
  • 多主架构:真正的多点读写的集群,在任何时候读写数据,都是最新的。
  • 同步复制:集群不同节点之间数据同步,没有延迟,在数据库挂掉之后,数据不会丢失。
  • 并发复制:从节点在APPLY数据时,支持并行执行,有更好的性能表现。
  • 故障切换:在出现数据库故障时,因为支持多点写入,切的非常容易。
  • 热插拔:在服务期间,如果数据库挂了,只要监控程序发现的够快,不可服务时间就会非常少。在节点故障期间,节点本身对集群的影响非常小。
  • 自动节点克隆:在新增节点,或者停机维护时,增量数据或者基础数据不需要人工手动备份提供,PXC会自动拉取在线节点数据,最终集群会变为一致。

以上几点,足以说明PXC是一个既稳健,又在数据一致性、完整性及高性能方面有出色表现的高可用解决方案。

2.2 缺点
  • 配置新节点的开销。 添加新节点时,必须从现有节点中的一个复制完整数据集。 如果是100GB,则复制100GB。
  • 这不能用作有效的写入缩放解决方案。 当您将写入流量运行到2个节点,而将所有流量运行到1个节点时,写入吞吐量可能会有所改善,但您不能期望太多。 所有写入仍然必须在所有节点上进行。
  • 重复的数据,3个节点就会有3个重复的数据。
2.3 使用限制
  • 复制只适用于InnoDB存储引擎。任何写入其他类型的表,包括系统(mysql.*)表复制。
  • 不支持的查询:
LOCK TABLES and UNLOCK TABLES is not supported in multi-master setups
– Lock functions, such as GET_LOCK(), RELEASE_LOCK(), and so on
  • 查询日志不能定向到表格。如果启用查询日志记录,则必须将日志转发到文件:log_output =file
  • 允许的最大事务大小由wsrep_max_ws_rows和wsrep_max_ws_size
    变量。 LOAD DATA INFILE处理将每隔10 000行提交一次。所以大transactions由于LOAD DATA将被拆分为一系列小型transactions。
  • 由于可能的提交回滚,XA事务不受支持。
  • 由于集群级乐观并发控制,事务发出COMMIT可能仍会中止阶段。
  • 整个集群的写入吞吐量受最弱节点的限制。如果一个节点变慢,则整个集群变慢。
  • 群集的最小建议大小是3个节点。第三个节点可以是一个arbitrator。
  • 不支持binlog_rows_query_log_events变量。
  • 在SST或XtraBackup中使用的备份锁可能会崩溃。

三、PXC原理介绍

PXC可以实现集群中数据的高度一致性,并且在每个节点上,生成的Binlog顺序都是一样的,这与Galera内部,实现的并发控制机制是分不开的。所有的上层到下层的同步、复制、执行、提交都是通过并发控制机制来管理的。这样才能保证上层的逻辑性,下层数据的完整性等。
这里写图片描述
当多个事务同时操作相同的数据资源时,这个资源在集群中是不受任何一个Session影响的,直到有一个Session对这个数据资源进行了成功的Commit操作,这时,其他的Session的所有操作实际上已经不可能成功了,当其他的事务尝试做Commit,会直接返回一个因为deadlock事务失败回滚的信息。
这与mysql默认的机制不同,在mysql innodb默认的情况下,当我们在其他事务中对某个id的数据进行update;此时我们发起一个事务对这个数据进行需要获得排它锁的操作,操作将会进行等待,直到超时失败或者现在持有排它锁的事务提交,当前事务将继续。

四、PXC安装部署过程简介

本文选择在CentOS7.0二进制安装Percona-XtraDB-Cluster-5.7.14版本,下载地址:
https://www.percona.com/downloads/Percona-XtraDB-Cluster-LATEST/Percona-XtraDB-Cluster-5.7.14-26.17/binary/tarball/Percona-XtraDB-Cluster-5.7.14-rel8-26.17.1.Linux.x86_64.ssl101.tar.gz
切记选择ssl101版本,官方使用手册上有如下说明:

  • ssl100: for all supported Debian and Ubuntu versions
  • ssl101: for supported Red Hat Enterprise Linux derivatives

节点信息:

node IP
node1 172.16.20.122
node2 172.16.20.123
node3 172.16.20.124
4.1安装准备

关闭防火墙:

systemctl stop firewalld.service

关闭selinux:

setenforce 0

安装pxc之前需安装percona xtrbackup和socat

4.1.1 percona xtrbackup安装

Percona-XtraDB-Cluster-5.7.14要求xtrabackup版本最低为2.4.4

cd /usr/local/
wget https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.4.4/binary/tarball/percona-xtrabackup-2.4.4-Linux-x86_64.tar.gz
tar -zxvf percona-xtrabackup-2.4.4-Linux-x86_64.tar.gz
echo "expo
  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值