博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
sql --mysql主从复制原理
阅读量:5760 次
发布时间:2019-06-18

本文共 1015 字,大约阅读时间需要 3 分钟。

hot3.png

mysql主从复制的实现详见

###1.mysql复制原理
将mysql某一台主机上的数据复制到其他从机上,并重新执行一遍日志文件中的内容来实现复制。
1.主服务器将更新写入二进制日志文件,并维护文件的一个索引来监控循环日志,这些日志记录可以发送到从服务器进行更新。
2.当一个从服务器连接主服务器时,它通知主服务器从日志文件中读取最后一次成功更新的位置;从服务器接收从那时起产生的任何更新,然后封锁并等待主服务器通知新的更新。 ###2.mysql支持的复制类型 1基于语句的复制。即在主服务器上执行的sql语句,在从服务器上执行同样的语句。
2基于行的复制。把改变的内容复制过去。 3混合类型的复制。默认采用基于语句的复制,一旦发现基于语句的复制无法精确复制时,则采取行复制。 ###3.复制的具体工作
1 mster将改变的数据记录到二进制日志中,这些记录叫做二进制数据
2 slave将master的二进制记录拷贝到它的中继日志中
3 slave重做中继日志中的事件,这样可以保持了主从同步
###4.工作流程
####master做的事情
1 有数据变化时,master记录二进制文件。
2 在事件写入二进制日志完成后,master通知存储引擎提交事务
####slave做的事情
1.它需要将master中的二进制记录拷贝到自己的中继日志。
2.slave开启一个工作线程--I/O线程。该线程在master上打开一个普通的连接,然后开始binlog dump process,该process从master的二进制日志中读取事件,如果连接上master,它会睡眠并等待mater产生新的事物。即I/O线程将master中的事务写入到中继日志中。
3.slave线程将从 中继日志中读取事件,并重现事件(执行相关的sql)进而来更新slave的数据,这样就实现了主从同步。
###5.总结
简单概述主从复制过程
1.mster将数据改变 记录到二进制日志中,即是配置文件log-bin指定的文件(这些记录叫做二进制日志事件,binary log events)
2.slave将master的 二进制日志文件 拷贝到 它的中继日志(relay log)
3.slave重做中继日志中的事件,将改变它自己的数据(数据重演)

转载于:https://my.oschina.net/u/2312022/blog/748490

你可能感兴趣的文章
galera mysql 多主复制启动顺序及命令
查看>>
JS prototype 属性
查看>>
中位数性质——数列各个数到中位数的距离和最小
查看>>
《将博客搬至CSDN》
查看>>
WebApp之Meta标签
查看>>
Java编程——森林状的关系图
查看>>
Cpp5 在堆中创建对象和引用类型
查看>>
添加Java文档注释
查看>>
Python3批量爬取网页图片
查看>>
iphone-common-codes-ccteam源代码 CCEncoding.m
查看>>
微信公众平台开发(96) 多个功能整合
查看>>
[转]MVC4项目中验证用户登录一个特性就搞定
查看>>
用Perl编写Apache模块续二 - SVN动态鉴权实现SVNAuth 禅道版
查看>>
Android 阴影,圆形的Button
查看>>
C++概述
查看>>
卡特兰数
查看>>
006_mac osx 应用跨屏幕
查看>>
Linux comm命令求出文件的交集、差集
查看>>
nginx中配置文件的讲解
查看>>
MindNode使用
查看>>