Percona XtraDB Cluster(PXC)原理

介绍:

PXC曾经属于一套近乎最完美的mysql高可用集群解决方案(现mgr总体上要优于pxc),相比传统的基于主从复制模式的集群架构MHA和MM+keepalived,最突出特点就是解决了数据复制延迟问题,基本上可以达到实时同步。节点间关系是对等的,事务要么在所有节点上执行,要么都不执行,它的实现机制决定了它对待一致性的行为非常严格,这也能非常完美的保证MySQL集群的数据一致性.

1.PXC使用端口

  • 3306 数据库对外服务端口
  • 4444 SST(State Snapshot Transfer )全量传输端口, 指数据镜象传输,可先配置:xtrabackup , rsync ,mysqldump
  • 4567 :成员通信端口
  • 4568 : IST(Incremental State Transfer )增量传输端口(相对于SST的增量)。

    2.PXC的优势

  • 强一致性
  • 同步延迟小
  • 每一个节点都可以读写
  • 用箱子推给Group里所有的成员, data page 相当于物理复制,而不是发blog日志,再重现.
  • 同步的是结果数据.
  • 从节点在apply数据时,支持并行执行,有更好的性能表现

PXC的执行流程

客户端先发起一个事务先在本地执行,当发起对事务的提交操作时,在给用户响应提交成功之前需要将写请求广播出去,然后获取到一个全局的事务ID,一并传送到其他节点上面。各节点检查是否有冲突数据,等各有节点返回OK后事务发起节点commit并返回客户端,否则就需要取消此次事务的操作,事务跟随节点返回无冲突OK后指执行数据合并,但和发起节点有一定的时间差,这里可能会出现延时。

PXC的局限性

  • 只支持Innodb引擎.
  • 不支持XA事务,
  • 因双写导致的updata 更新丢失
  • Query log 不能使用Table,,只能log_output=file
  • 不支持在没有主键的表delete操作,select ...limit也会返回不同的值.
  • 由于基于乐观的并发控制,显示事务commit时可能会失败 .
  • 没有lock tables,所有表DDL操作,一定要用pt-osc 否则为导致整个集群锁定
  • 最大的事务大小由wsrep_max_ws_rows、wsrep_max_size定义,load data infile每10k行提交时,这种事务将会被拆成数个.
  • binlog_row_query_log_events不支持
  • 整个集群性能取决于最慢的那个节点,利用xtrabakup做sst时,可能造成Donor Crash,建议在my.cnf中增加innobackup-opts='"- - no-backup-losts".
  • 不支持表空间传输.
  • 推荐节点数在3-8之间

重要参数

wsrep_provider_options="gcache.size=128M" 主要用于控制sst的动作,从节点给主节点的数据差大小.建议设置1-4G(离线2小时以内的数据量)

主注意事项

  • 禁止 alter
  • SST 这块建议利用Slave -> PXC
  • 关于脑裂,避免结节为偶数,特别是在相同的区域内.
  • 集群重启,尽量使用循环重启,否则要检查节点间数据状态show global status like "wsrep_last_commited "(命令有可能记混了,:) .
  • 超过100G时避免SST.主从改PXC怎么实现?
群集监控
  • 群集健康参数监控
    wsrep_cluster_status!=4
    wsrep_connected != on
    wsrep_ready!=on
  • 群集性能监控
    wsrep_local_recv_queue & wsrep_local_send_queue
    wsrep_flow_control_sent & wsrep_flow_control_recv
    wsrep_relicated & wsrep_receved

Percona XtraDB Cluster(PXC)原理的更多相关文章

  1. Percona XtraDB Cluster(PXC) Mysql 集群

    Percona XtraDB Cluster(PXC)   ---原理介绍篇         目录 一.简介 1 二.优缺点 2 三.区别/局限性 3 四. PXC复制原理 4 五. 服务解释 5   ...

  2. Percona XtraDB Cluster(PXC) -集群环境安装

    Percona XtraDB Cluster(PXC)   ---服务安装篇   1.测试环境搭建: Ip 角色 OS PXC-version 172.16.40.201 Node1 Redhat/C ...

  3. Percona XtraDB Cluster(PXC)-高可用架构设计说明

    Mycat+PXC高可用集群 一.架构图 架构说明: 1.mysql 集群高可用部分: l 针对业务场景选用Percona XtraDB Cluter(PXC)复制集群.两个片集群 PXC-dataN ...

  4. PXC(Percona XtraDB Cluster)集群的安装与配置

    Percona XtraDB Cluster是针对MySQL用户的高可用性和扩展性解决方案,基于Percona Server .其包括了Write Set REPlication补丁,使用Galera ...

  5. mysql高可用之PXC(Percona XtraDB Cluster)

    简介 Percona XtraDB Cluster是MySQL高可用性和可扩展性的解决方案,Percona XtraDB Cluster提供的特性如下: 1).同步复制,事务要么在所有节点提交或不提交 ...

  6. docker1.12 安装pxc(Percona XtraDB Cluster )测试

    docker1.12 安装pxc(Percona XtraDB Cluster )测试

  7. MySQL高可用方案-PXC(Percona XtraDB Cluster)环境部署详解

    MySQL高可用方案-PXC(Percona XtraDB Cluster)环境部署详解 Percona XtraDB Cluster简称PXC.Percona Xtradb Cluster的实现是在 ...

  8. Percona XtraDB Cluster Strict Mode(PXC 5.7)

    在Percona XtraDB Cluster集群架构中,为了避免多主节点导致的数据异常,或者说一些不被支持的特性引发的数据不一致的情形,PXC集群可以通过配置pxc_strict_mode这个变量来 ...

  9. Percona XtraDB Cluster 的一些使用限制(PXC 5.7)

    Percona XtraDB Cluster有众多的优秀特性,使得mysql集群得以轻松实现.但是不要忽略了它的一些限制.如果你无法接受,或者你的应用程序或数据库(比如使用了memory引擎)对限制无 ...

随机推荐

  1. httpservlet在创建实例对象时候默认调用有参数的init方法 destroy()方法 service方法, 父类的init方法给子类实例一个config对象

  2. hdu 1851(A Simple Game)(sg博弈)

    A Simple Game Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/65535 K (Java/Others)Tot ...

  3. 关于Python的 a, b = b, a+b

    Python中有一种写法:多个值同时赋给多个变量,如:a, b = b, a+b 1. A写法 a = 0, b = 1 a, b = b, a+b print a, b #结果为:1 1 这种写法, ...

  4. queue队列

    1.作用:解耦,提高效率.队列就是一个容器,一个有顺序的容器. q.queue.Queue(maxsize=3): 生成一个队列的实例,并且最多存储3个元素 q.get(item,block=Ture ...

  5. Docker的结构(6-13)

    一.Docker的结构. Docker命令不清楚的时候可以在命令的最后加上--help Docker和虚拟机的区别? 虚拟机的实现原理是:先模拟出一套硬件,然后在这基础上跑一个操作系统,然后在这个操作 ...

  6. 【刷题】BZOJ 1002 [FJOI2007]轮状病毒

    Description 轮状病毒有很多变种,所有轮状病毒的变种都是从一个轮状基产生的.一个N轮状基由圆环上N个不同的基原子 和圆心处一个核原子构成的,2个原子之间的边表示这2个原子之间的信息通道.如下 ...

  7. [辅助软件] 微信小程序开发资源汇总 接入指南

    https://github.com/justjavac/awesome-wechat-weapp https://github.com/justjavac/awesome-wechat-weapp ...

  8. Matrix-Tree定理题表

    矩阵树这个东西……并不懂什么基尔霍夫矩阵……背了一下结论……(顺便用这个东西加强了一下矩阵)(打板子的时候还是该取负取负,因为不取负才有可能是负数,最后答案一定是正数???(ryf说一定是这样))bz ...

  9. HDU 4417 主席树写法

    Super Mario Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total ...

  10. 目标世界上最小的Linux系统—ttylinux体验

    ttylinux的官方网址:http://ttylinux.net/ 简单翻译一下: 你当前访问的是ttylinux的主页,一个针对多种CPU架构的极小的GNU/Linux系统.最小的ttylinux ...