基于Docker Toolbox部署PXC集群(一)基本概念【转】
简介
Percona XtraDB Cluster(简称PXC)是针对MySQL用户的高可用性和扩展性解决方案,基于Percona Server 。其 包括了Write Set REPlication补丁,使用Galera 2.0库,这是一个针对事务性应用程序的同步多主机复制插件。
Percona Server是MySQL的改进版本,使用 XtraDB 存储引擎,在功能和性能上较 MySQL 有着很显著的提升,如提升了在高负载情况下的 InnoDB 的性能,为 DBA 提供了一些非常有用的性能诊断工具,另外有更多的参数和命令来控制服务器行为。
Percona XtraDB Cluster提供了:
同步复制,事务可以在所有节点上提交。
多主机复制,你可以写到任何节点。
从(slave)服务器上的并行应用事件,真正的“并行复制”。
自动节点配置。
数据一致性,不再有未同步的从服务器。
官网:https://www.percona.com/software/mysql-database/percona-xtradb-cluster
集群的说明
尽可能的控制PXC集群的规模,节点越多,数据同步速度越慢
所有PXC节点的硬件配置要一致,如果不一致,配置低的节点将拖慢数据同步速度
PXC集群只支持InnoDB引擎,不支持其他的存储引擎
PXC集群方案与Replication区别
PXC集群方案所有节点都是可读可写的,Replication从节点不能写入,因为主从同步是单向的,无法从slave节点向master点同步。
PXC同步机制是同步进行的,这也是它能保证数据强一致性的根本原因,Replication同步机制是异步进行的, 它如果从节点停止同步,依然可以向主节点插入数据,正确返回,造成数据主从数据的不一致性。
PXC是用牺牲性能保证数据的一致性,Replication在性能上是高于PXC的。所以两者用途也不一致。PXC是用于重要信息的存储,例如:订单、用户信息等。Replication用于一般信息的存储,能够容忍数据丢失。
PXC与Replacation结合
PXC集群用于保存高价值数据,如订单、股价等。
Replacation保存低价值数据,如日志、浏览记录等,为后续大数据分析做数据支持。
PXC优点:
①实现mysql数据库集群架构的高可用性和数据的 强一致性。
②完成了真正的多节点读写的集群方案。
③改善了传统意义上的主从复制延迟问题,基本上达到了实时同步。
④新加入的节点可以自动部署,无须提供手动备份,维护起来很方便。
⑤由于是多节点写入,所以数据库故障切换很容易。
PXC缺点:
①新加入的节点开销大,需要复制完整的数据。采用SST传输开销太大。
②任何更新事务都需要全局验证通过,才会在每个节点库上执行。集群性能受限于性能最差的节点,也就是经常说的短板效应。
③因为需要保证数据的一致性,所以在多节点并发写时,锁冲突问题比较严重。
④存在写扩大问题,所有的节点上都会发生些操作。
⑤只支持innodb存储引擎的表。
⑥没有表级别的锁定,执行DDL语句操作会把整个集群锁住,而且也 kill 不了(建议使用Osc操作,即在线DDL)
⑦所有的表必须含有主键,不然操作数据时会报错。
单PXC方案
PXC与Replacation结合方案
互联网架构案例: