- 1、本文档共16页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
MySQL主从复制的常见拓扑、原理分析以及如何提高主从复制的效率总结
MySQL主从复制的常见拓扑、原理分析以及如何提高主从复制的效率总结
一、主从复制搭建方法参考
1、MySQL5.6 数据库主从(Master/Slave)同步安装与配置详解请参考:
/xlgen157387/article/detailscomments
2、使用mysqlreplicate命令快速搭建 Mysql 主从复制:
/xlgen157387/article/details
二、Mysql 主从复制的常用拓扑结构
2.1、一主一从
这里写图片描述
是最基础的复制结构,用来分担之前单台数据库服务器的压力,可以进行读写分离。
2.2、一主多从
一台 Slave 承受不住读请求压力时,可以添加多台,进行负载均衡,分散读压力。
还可以对多台 Slave 进行分工,服务于不同的系统,例如一部分 Slave 负责网站前台的读请求,另一部分 Slave 负责后台统计系统的请求。
因为不同系统的查询需求不同,对 Slave 分工后,可以创建不同的索引,使其更好的服务于目标系统。
2.3、双主复制
Master 存在下线的可能,例如故障或者维护,需要把 Slave 切换为 Master。
在原来的 Master 恢复可用后,由于其数据已经不是最新的了,不能再做主,需要做为 Slave 添加进来。
那么就需要对其重新搭建复制环境,需要耗费一定的工作量。
双主结构就是用来解决这个问题的,互相将对方作为自己的 Master,自己作为对方的 Slave 来进行复制,但对外来讲,还是一个主和一个从。
当 主Master 下线时,备Master 切换为 主Master,当原来的 主Master 上线后,因为他记录了自己当前复制到对方的什么位置了,就会自动从之前的位置开始重新复制,不需要人为地干预,大大提升了效率。
2.4、级联复制
当直接从属于 Master 的 Slave 过多时,连到 Master 的 Slave IO 线程就比较多,对 Master 的压力是很大的。
级联结构就是通过减少直接从属于 Master 的 Slave 数量,减轻 Master 的压力,分散复制请求,从而提高整体的复制效率。
2.5、双主级联
级联复制结构解决了 Slave 过多导致的瓶颈问题,但还是有单主结构中切换主时的维护问题。
那么为了解决这个问题,就可以加入上面的双主结构。
在必要时,可以再对 Slaves 进行分级。
Mysql 的复制结构有很多种方式,复制的最大问题是数据延时,选择复制结构时需要根据自己的具体情况,并评估好目标结构的延时对系统的影响。
三、Mysql 主从复制过程及原理
3.1、Binary Log 简单介绍
因为Binlog dump 线程操作的文件是bin-log 日志文件,并且实现主从复制在主服务器上主要依靠bin-log日志文件,所以我们简单介绍一下bin-log日志文件。
3.2、原理
MySQL的Replication(英文为复制)是一个多MySQL数据库做主从同步的方案,特点是异步复制,广泛用在各种对MySQL有更高性能、更高可靠性要求的场合。与之对应的是另一个同步技术是MySQL Cluster,但因为MySQL Cluster配置比较复杂,所以使用者较少。
MySQL Replication 就是从服务器拉取主服务器上的 二进制日志文件,然后再将日志文件解析成相应的SQL语句在从服务器上重新执行一遍主服务器的操作,通过这种方式来保证数据的一致性。
MySQL的Replication是一个异步复制的过程(mysql5.1.7以上版本分为异步复制和半同步两种模式),它是从一个Mysql instance(instance英文为实例)(我们称之为Master)复制到另一个Mysql instance(我们称之slave)。
3.3、三个线程
在master与slave之间实现整个复制过程主要由三个线程来完成:
1、Slave SQL thread线程,在slave端
2、Slave I/O thread线程,在slave端
3、Binlog dump thread线程(也可称为IO线程),在master端
1
2
3
注意:如果一台主服务器配两台从服务器那主服务器上就会有两个Binlog dump 线程,而每个从服务器上各自有两个线程。
要实现MySQL的Replication,首先必须打开master端的binlog (mysql-bin.xxxxxx)日志功能,否则无法实现mysql的主从复制。因为mysql的整个主从复制过程实际上就
您可能关注的文档
- 神舟五号飞行员出征记.ppt
- 《作文材料的整体立意》演示文稿1.ppt
- 祭十二郎文ppt1.ppt
- 《伯牙绝弦》PPT课件-翻译(完美版).ppt
- MS-100恒温混匀仪说明书(多点中文新外壳).doc
- 《倩女幽魂2》科举殿试题目与答案.doc
- 祭十二郞文.ppt
- 《位置与方向》PPT课件.ppt
- 神话故事群文阅读.ppt
- 《做一个最好的你》课件1.ppt
- 卓越客服:高效处理投诉-提升客户满意度与忠诚度.pptx
- 三年级语文写作课-三年级语文写作课教学课件.pptx
- 中国历史学的研究现状与挑战-中国历史学研究者的观点.pptx
- 中国车用柴油机行业市场调研分析及投资战略规划报告.docx
- 中国直线轴承行业市场全景评估及投资前景展望报告.docx
- 江西铜业集团有限公司2023-24年招聘80人历年高频考题难、易错点模拟试题附带答案题库附参考答案(.docx
- 江西洪都飞机工业有限公司2024年校园招聘公开引进高层次人才笔试答案完整题库【夺冠系列】.docx
- 江苏骏马集团有限责任公司2023-24年招聘1人公开引进高层次人才笔试参考题库答案通关秘籍题库带答案.docx
- 2025年中国电气装备电线电缆行业市场发展现状及投资方向研究报告.docx
- 2025年制造业ERP系统全面升级合同3篇.docx
文档评论(0)