mysql复制原理/基于库的多线程复制原理/基于BLGC的多线程复制原理
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了mysql复制原理/基于库的多线程复制原理/基于BLGC的多线程复制原理,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2030字,纯文字阅读大概需要3分钟。
内容图文
![mysql复制原理/基于库的多线程复制原理/基于BLGC的多线程复制原理](/upload/InfoBanner/zyjiaocheng/465/f02148a2592840f9ae1eb6b66f798580.jpg)
单线程主从复制:
从库向主库请求binlog,并将binlog转存到自己的relaylog中,从库重做binlog里面的sql,
主要由以下三个线程完成.
dump thread: 在主库上,发送binlog
io thread: 在slave上,接收,转存,请求binlog
sql thread :在slave 上,重做binlog
基于库的多线程复制原理:
从库向主库请求binlog,并将binlog转存到自己的relaylog中,从库重做binlog里面的sql,
主要由以下三个线程完成.
dump thread: 在主库上,发送binlog
io thread: 在slave上,接收,转存,请求binlog
sql thread :在slave 上,读取binlog,并分配binlog给work thread (分配原则,判断并行执行的事务是否拥有相同的数据库)
work thread:执行binlog ,可以有多个
多线程复制
mysql5.7 基于BLGC的多线程复制原理,同时处于prepare阶段的事务不会有冲突。
在mysql5.7 的binlog中新增了两个字段来来标注哪些事务可以并行执行,和binlog的写入顺序
last_committed:事务提交编号,同一组内的事务,编号相同,可以并行执行。
sequence_number:binglog写入顺序,用户确保master的binlog顺序和slave的binlog顺序的一致。
多线程复制中的一些问题
1.binlog以组为顺序并发重做,如果上一组binlog中有某个sql执行失败,整组sql是否回滚,slave复制是否暂停?
如果一组中的某个sql执行失败,整组sql都会回滚,
这个时候整个slave是否会暂停,有待验证
2.并行复制中如何保证master上的binlog和slave上binglog的顺序一致
在mysql5.7中为了实现并行复制,特地在binlog日志中增加了两个字段,last_committd,sequence_number,
在slave上按组并行重放的时需要等待组中所有sql执行完成,然后在flush阶段按照sequence_number排序,并行提交,
这样就保证了,master上binlog的的写入顺序就和slave上的binlog的写入顺序相同了。
参考资料
http://www.tuicool.com/articles/EvQjEr
mysql5.7并行复制相关简介:
http://blog.itpub.net/28218939/viewspace-1975822/
http://blog.itpub.net/28218939/viewspace-1975856/
http://www.ttlsa.com/mysql/mysql-5-7-enhanced-multi-thread-salve/
http://dev.mysql.com/doc/refman/5.6/en/replication-implementation-details.html
本文出自 “SQLServer MySQL” 博客,请务必保留此出处http://dwchaoyue.blog.51cto.com/2826417/1788704
mysql复制原理/基于库的多线程复制原理/基于BLGC的多线程复制原理
标签:mysql 复制
本文系统来源:http://dwchaoyue.blog.51cto.com/2826417/1788704
内容总结
以上是互联网集市为您收集整理的mysql复制原理/基于库的多线程复制原理/基于BLGC的多线程复制原理全部内容,希望文章能够帮你解决mysql复制原理/基于库的多线程复制原理/基于BLGC的多线程复制原理所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。