Mysql 主从数据库 数据同步 原理

     在Mysql中,数据同步Replication是一个异步的复制过程,也就是从Master复制到Slave。


     同步过程会启动三个线程,Master端的IO线程,Slave端的IO线程和SQL线程。(在旧的Mysql中,只有IO线程,性能不是很高,会丢失数据)。


     要实现同步功能,需要打开Master端的二进制日志功能。因为整个同步过程就是Slave从Master端获取该日志文件然后在自己数据库中顺序执行日志中记录的各种操作。


     Mysql同步过程:



     一:Slave启动IO线程,连接Master,请求从指定日志文件指定位置之后的日志信息。


     二:Master接受到请求后,通过负责复制的IO线程根据请求信息读取指定日志指定位置之后的日志内容,返回给Slave的IO线程。 返回的信息不仅包括Slave请求的日志文件的内容,还包括本次返回的信息在Master端的二进制文件的名称以及位置。


     三:Slave的IO线程接受到信息后,将信息写到Slave端的中继日志文件的末端。并将读取到的Master端的文件名和位置记录到master-info文件,以便下次请求时可以告诉Master端读取日志的位置。


     四:Slave端SQL线程检测到中继日志文件新增的内容后,会马上解析文件中的内容成为在Master端真正执行的Query语句,并在自身执行这些Query语句。这样两端的数据完全一样

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值