Percona-XtraDB-Cluster-运维实践.ppt
《Percona-XtraDB-Cluster-运维实践.ppt》由会员分享,可在线阅读,更多相关《Percona-XtraDB-Cluster-运维实践.ppt(28页珍藏版)》请在咨信网上搜索。
1、PERCONA XTRADB CLUSERT 运维实践运维实践SOHU 徐国强徐国强XtraDB Cluster 特征n n1 1,同步复制同步复制同步复制同步复制n n 复制动作是同步的,复制动作是同步的,实际上数据并不是完全同步实际上数据并不是完全同步的的,数据的同步存在一个间隙,只能称为虚同步。,数据的同步存在一个间隙,只能称为虚同步。n n2 2,多多多多mastermastern n 每一个节点都可以作为每一个节点都可以作为mastermaster,并将改动发送,并将改动发送到其他节点。到其他节点。n n3 3,并行复制并行复制并行复制并行复制n n 复制可以指定多个线程,并且复制是
2、以事务为复制可以指定多个线程,并且复制是以事务为单位的,多个事务同时并行推送到所有集群节点。单位的,多个事务同时并行推送到所有集群节点。n n4 4,新节点自动部署新节点自动部署新节点自动部署新节点自动部署n n 只需要修改合适的参数,启动新节点的只需要修改合适的参数,启动新节点的mysqldmysqld进程并成功加入集群后,数据完全自动的部署到进程并成功加入集群后,数据完全自动的部署到新节点。新节点。n n5 5,数据一致性,数据一致性,数据一致性,数据一致性n n 严格的数据一致严格的数据一致n n6 6,高可用性,高可用性,高可用性,高可用性n n 单点故障不影响可用性单点故障不影响可用
3、性n n7 7,与传统,与传统,与传统,与传统mysqlmysql几乎完全兼容几乎完全兼容几乎完全兼容几乎完全兼容n n数据可以直接使用不需要任何转换,程序上也仅仅事务处数据可以直接使用不需要任何转换,程序上也仅仅事务处理机制有变化,并且还可以完全规避理机制有变化,并且还可以完全规避XtraDB Cluster 缺陷n n1 1,默认工作在,默认工作在InnoDBInnoDB引擎表上,因此对其他引擎的表支持的很差,甚至根引擎表上,因此对其他引擎的表支持的很差,甚至根本不支持,所以不要考虑在本不支持,所以不要考虑在PXCPXC上使用上使用MyISAMMyISAM或者其他的存储引擎或者其他的存储引
4、擎n n2 2,所有的表都必须要有主键,所有的表都必须要有主键n n 3 3,不支持的操作:,不支持的操作:LOCK/UNLOCK TABLESLOCK/UNLOCK TABLES、lock functions(GET_LOCK(),lock functions(GET_LOCK(),RELEASE_LOCK().)RELEASE_LOCK().)n n 4 4,query logquery log日志不能存放在表里面,必须存放在文件日志不能存放在表里面,必须存放在文件n n 6 6,由于集群是基于乐观的并发控制(,由于集群是基于乐观的并发控制(optimistic concurrency c
5、ontrol optimistic concurrency control),事务冲突的情况可能会在),事务冲突的情况可能会在commitcommit阶段发生阶段发生n n7 7,不支持,不支持XAXA事务,因为事务,因为XAXA事务有可能在事务有可能在commitcommit的时候出现异常发生的时候出现异常发生rollbackrollbackn n8 8,整个集群的吞吐量,整个集群的吞吐量/性能取决于最慢的那个节点(成本)性能取决于最慢的那个节点(成本)n n9 9,最小建议的集群节点数为,最小建议的集群节点数为3 3,否则很容易产生脑裂(成本),否则很容易产生脑裂(成本)n n1010,加
6、入新节点,开销大,有多少个节点就有多少重复的数据,加入新节点,开销大,有多少个节点就有多少重复的数据n n1111,不能有效的解决写缩放问题,所有的写操作都将发生在所有节点上,不能有效的解决写缩放问题,所有的写操作都将发生在所有节点上XtraDB Cluster 性能-测试环境测试环境n n1 1,PXC PXC 和和 Master-Slave Master-Slave 均为均为3 3个节点个节点n n2 2,SASSAS 、SSD SSD 磁盘磁盘n n3 3,Percona XtraDB Cluster 5.5.28Percona XtraDB Cluster 5.5.28n n4 4,P
7、ercona Sever 5.5Percona Sever 5.5n n5 5,Oracle Linux 6.3Oracle Linux 6.3 2.6.39-200.24.1.el6uek.x86_642.6.39-200.24.1.el6uek.x86_64n n6 6,DELL R710 DELL R710 n nCPU Xeon 5620 CPU Xeon 5620*2 2n nMemory 64GBMemory 64GBn n7 7,SysbenchSysbenchn n8 8,haproxy haproxy 和和 LVSLVSXtraDB Cluster 性能LVS LVS 只读测
8、试只读测试可以看到随着并发线程数的增加,三节点的只读操作:可以看到随着并发线程数的增加,三节点的只读操作:1,在使用,在使用SSD磁盘的情况下,磁盘的情况下,PXC与与MS结构的查询性能基本一致,偶有误差也基本保持在一个数量级结构的查询性能基本一致,偶有误差也基本保持在一个数量级上;上;SAS盘时,盘时,PXC性能会弱小一些性能会弱小一些2,从响应时间上来看,也差不多是这个情况,从响应时间上来看,也差不多是这个情况3,但是在实际的应用中,如果达到了,但是在实际的应用中,如果达到了100个实时活动的连接,那么系统就已经非常繁忙了,个实时活动的连接,那么系统就已经非常繁忙了,MasterSlave
9、结构,如果有写入操作,那么一致性就很难保证结构,如果有写入操作,那么一致性就很难保证XtraDB Cluster 性能LVS LVS 单节点写测试单节点写测试 PXC的写入性能是公开的表示了会比较差,这个差的比例约会低下的写入性能是公开的表示了会比较差,这个差的比例约会低下1/4,但是如果使用了,但是如果使用了SSD磁盘,磁盘,则会有较大的改观,但是依然会保持比较差的总体状况,具体原因后续会有分析:则会有较大的改观,但是依然会保持比较差的总体状况,具体原因后续会有分析:1,PXC整体上落后整体上落后MS结构结构2,响应时间也是同样落后一些,响应时间也是同样落后一些3,SSD磁盘会带来相当大的提
10、升磁盘会带来相当大的提升XtraDB Cluster 性能业务模拟测试业务模拟测试n n1 1,同时启,同时启,同时启,同时启2 2个个个个sysbenchsysbench,一个只读,另一个只写,一个只读,另一个只写,一个只读,另一个只写,一个只读,另一个只写n n2 2,写请求只发送到某一个固定节点,读请求负载均衡到集群环境的所有节点,写请求只发送到某一个固定节点,读请求负载均衡到集群环境的所有节点,写请求只发送到某一个固定节点,读请求负载均衡到集群环境的所有节点,写请求只发送到某一个固定节点,读请求负载均衡到集群环境的所有节点n n3 3,2 2个个个个sysbenchsysbench的读
11、写请求数比例设置约为的读写请求数比例设置约为的读写请求数比例设置约为的读写请求数比例设置约为9 9:1 1,保证测试时间约等于或大于,保证测试时间约等于或大于,保证测试时间约等于或大于,保证测试时间约等于或大于1 1小时小时小时小时n n4 4,数据量为,数据量为,数据量为,数据量为1.51.5亿亿亿亿nn6 6,依次对,依次对,依次对,依次对pxc/ms,lvs/haproxypxc/ms,lvs/haproxy各种环境进行测试,共各种环境进行测试,共各种环境进行测试,共各种环境进行测试,共4 4项:项:项:项:pxc-ssd-lvs,pxc-ssd-haproxy,ms-ssd-lvs,m
12、s-ssd-haproxypxc-ssd-lvs,pxc-ssd-haproxy,ms-ssd-lvs,ms-ssd-haproxyn n7 7,msms测试导致主备不同步,暂时忽略其对测试的影响。需等待测试导致主备不同步,暂时忽略其对测试的影响。需等待测试导致主备不同步,暂时忽略其对测试的影响。需等待测试导致主备不同步,暂时忽略其对测试的影响。需等待msms同步后再进行下一项测试同步后再进行下一项测试同步后再进行下一项测试同步后再进行下一项测试n n8 8,分别对集群环境中存在单节点、,分别对集群环境中存在单节点、,分别对集群环境中存在单节点、,分别对集群环境中存在单节点、2 2节点、节点、
13、节点、节点、3 3节点测试节点测试节点测试节点测试3 3组组组组n n9 9,每组测试,每组测试,每组测试,每组测试5 5轮。每秒请求数计算:轮。每秒请求数计算:轮。每秒请求数计算:轮。每秒请求数计算:SUM(SUM(读请求数读请求数读请求数读请求数+写请求数写请求数写请求数写请求数)/SUM()/SUM(读执行时间读执行时间读执行时间读执行时间+写执行时写执行时写执行时写执行时间间间间),GROUP BY),GROUP BY 测试项测试项测试项测试项XtraDB Cluster 性能业务模拟测试业务模拟测试如果排除延迟问题,如果排除延迟问题,MS确实比确实比PXC的性能更好(但是实际情况下,
14、的性能更好(但是实际情况下,MS的延迟已的延迟已经非常严重,测试了一小时,基本上延迟越来越大)经非常严重,测试了一小时,基本上延迟越来越大)基于Galera实现n n Percona Percona的这个的这个ClusterCluster实际上就是基实际上就是基于于GaleraGalera实现,添加实现,添加了一些了一些mysqlmysql的参数,的参数,并调用并调用GaleraGalera的接口,的接口,这是整体的工作流程:这是整体的工作流程:n n1 1,客户端提交,客户端提交MySQLMySQL数据库访问请数据库访问请求求n n2 2,通过,通过wsrepAPIwsrepAPI调调用用G
15、aleraGalera将数据变化将数据变化复制到集群中其他节复制到集群中其他节点点数据复制流程(一)n n 描述两个节点间的数描述两个节点间的数据复制。据复制。n n要点:要点:1 1,只有当发生,只有当发生CommitCommit操作时,才操作时,才 发送数据验证请求到其他节点。发送数据验证请求到其他节点。2 2,传输,传输/返回验证数据时间和其他返回验证数据时间和其他 节点的数据验证时间,将影响到当节点的数据验证时间,将影响到当 前数据操作节点真正前数据操作节点真正commitcommit的时的时 刻。刻。3 3,其他节点只要验证成功了,就,其他节点只要验证成功了,就 会返回成功的信号,即
16、使当前数据会返回成功的信号,即使当前数据 并没有真正的写入当前节点,这段并没有真正的写入当前节点,这段 时间内,将造成数据的不一致。时间内,将造成数据的不一致。数据复制流程(二)数据复制流程(三)n n 根据前面描述的数据复根据前面描述的数据复制流程,可以得到这样的制流程,可以得到这样的结论:结论:n n 当多个事务同时操作相当多个事务同时操作相同的数据资源时,这个资同的数据资源时,这个资源在集群中是不受任何一源在集群中是不受任何一个个SessionSession影响的,直到影响的,直到有一个有一个SessionSession对这个数对这个数据资源进行了成功的据资源进行了成功的CommitCo
17、mmit操作,这时,其操作,这时,其他的他的SessionSession的所有操作的所有操作实际上已经不可能成功了,实际上已经不可能成功了,当其他的事务尝试做当其他的事务尝试做CommitCommit,会直接返回一,会直接返回一个因为个因为deadlockdeadlock事务失败事务失败回滚的信息。回滚的信息。n n 这与这与mysqlmysql默认的机制默认的机制不同,在不同,在mysql innodbmysql innodb默认的情况下,当我们在默认的情况下,当我们在其他事务中对某个其他事务中对某个idid的数的数据进行据进行updateupdate;此时我们;此时我们发起一个事务对这个数
18、据发起一个事务对这个数据进行需要获得排它锁的操进行需要获得排它锁的操作,操作将会进行等待,作,操作将会进行等待,直到超时失败或者现在持直到超时失败或者现在持有排它锁的事务提交,当有排它锁的事务提交,当前事务将继续。前事务将继续。n n (注意:这里的每个注意:这里的每个SessionSession来源于不同节点,单节点的死来源于不同节点,单节点的死锁机制遵循锁机制遵循mysql innodbmysql innodb默认默认的工作模式的工作模式)那么上图的session中,那些会成功呢?只有SessionB节点状态变化节点变化过程中用到的部分术语:SST(State Snapshot Trans
19、fer)用于节点间传送数据,发生在节点初始化,或者节点故障需要全部重置数据的时候,相当于整个copy一份数据到新节点,这个过程影响非常大,会造成Donor节点的无法访问IST(Increment Snapshot Transfer)用于节点间传送数据,发生在节点初始化,或者节点故障,但是能够从galera.dat中获得增量同步点的情况,仅仅做必要的增量同步,是最理想的数据恢复方法。Donor 当发生SST时,集群中被选中作为数据源的节点,可以手动指定也可以自动选择,被选中为Donor的节点可以进行Select,但是新的数据变化情况无法被应用,会被缓存在当前节点的cache文件中。当SST过程结
20、束,Donor节点将变为JOINED状态,并应用这些缓存的内容,从而返回SYNCED状态。新节点加入流程名词解释n nGlobal Transcation IDGlobal Transcation ID(GTIDGTID)当通过客户端对数据库进行有顺序的一系列修改时(不一定仅仅当通过客户端对数据库进行有顺序的一系列修改时(不一定仅仅是数据库),集群中所有的节点都对这个修改动作进行同步。在是数据库),集群中所有的节点都对这个修改动作进行同步。在wsrep APIwsrep API中,通过中,通过GTIDGTID对这个修改进行标识,对这个修改进行标识,从而在所有节从而在所有节点达到一致。点达到一致
21、。GTIDGTID由俩部分组成,一个标识对象的由俩部分组成,一个标识对象的UUIDUUID,和一,和一个标识这次修改状态的个标识这次修改状态的sequencesequence(对应每一个动作),例如:(对应每一个动作),例如:45eec521-2f34-11e0-0800-45eec521-2f34-11e0-0800-2a36050b826b:945305863042a36050b826b:94530586304n nState Snapshot TransferState Snapshot Transfer(SSTSST)节点初始化节点初始化/重做方法,使用指定的重做方法,使用指定的sst
22、sst策略,来做数据的全量同策略,来做数据的全量同步。步。n nIncremental State Transfer(IST)Incremental State Transfer(IST)Galera 2.x Galera 2.x 开始支持。开始支持。当一个节点加入,他当前的当一个节点加入,他当前的GUIDGUID与现集群相同,且缺失的数据能够与现集群相同,且缺失的数据能够在在donordonor的的WritesetWriteset的的cachecache中找到,则可以进行中找到,则可以进行ISTIST,否则只能全部初始化数据,进行,否则只能全部初始化数据,进行SST(State Snapsh
23、ot Transfer)SST(State Snapshot Transfer)。SST方式的选择n nMySQL Dump需要锁定需要锁定DonorDonor节点,无法提供访问节点,无法提供访问速度慢速度慢n nRsync需要锁定需要锁定DonorDonor节点,无法提供访问节点,无法提供访问速度快速度快n nXtrabackup只需要短时间锁定只需要短时间锁定DonorDonor,基本不影响访问,基本不影响访问速度较快速度较快Rolling Schema Upgrade Schema Upgrade指的是任何修改数据库结构的DDL语句,这种语句不具有事务性。Total Order Isol
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Percona XtraDB Cluster 实践
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【胜****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【胜****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。