首页技术文章正文

MySQL 主从复制原理【黑马java培训】

更新时间:2019年07月26日 11时15分08秒 来源:黑马程序员论坛



MySQL 主从复制介绍
         MySQL 的主从复制是一个异步的复制过程(但一般情况下感觉是实时同步的),数据库数据从一个 MySQL 数据库(我们称之为 Master)复制到另一个 MySQL 数据库(我们称之为 Slave)。在 Master 与 Slave 之间实现整个主从复制的过程是由三个线程参与完成的。其中有两个线程(SQL 线程和 IO 线程)在 Slave 端,另外一个线程(IO 线程)在 Master 端。(来自 MySQL 帮助文档)

MySQL Replication 复制过程
  • Slave 服务器上执行start slave,开启主从复制开关。
  • 此时,Slave 服务器上的 IO 线程会通过 Master 服务器上授权的有复制权限的用户请求连接 Master 服务器,
    并请求从指定 binlog 日志文件的指定位置之后发送 binlog 日志内容。
    (日志文件名和位置就是在配置主从复制任务时执行change master命令时指定的)
  • Master 服务器接收到来自 Slave 服务器的 IO 线程的请求后, Master 服务器上的 IO 线程根据 Slave
    服务器的 IO 线程请求的信息, 读取指定 binlog 日志文件指定位置之后的 binlog 日志信息,然后返回给 Slave 端的
    IO 线程。 返回的信息中除了 binlog 日志内容外, 还有本次返回日志内容后在 Master 服务器端的新的 binlog
    文件名以及在 binlog 中的下一个指定更新位置。
  • 当 Slave 服务器的 IO 线程获取来自 Master 服务器上 IO 线程发送的日志内容及日志文件和位置点后, 将 binlog
    日志内容依次写入到 Slave 端自身的 relay log(即中继日志)文件(mysql-relay-bin.xxxxxx)的最末端,
    并将新的 binlog 文件名和位置记录到 master-info 文件中, 以便下一次读取 Master 端新 binlog 日志时,
    能告诉 Master 服务器需要从新 binlog 日志的哪个文件哪个位置开始请求新的 binlog 日志内容。
  • Slave 服务器端的 SQL 线程会实时检测本地 relay log 中新增加的日志内容, 然后及时的把 relay log
    文件中的内容解析成在 Master 端曾经执行的 SQL 语句的内容, 并在自身 Slave 服务器上按语句的顺序执行应用这些 SQL
    语句,应用完毕后清理应用过的日志。
  • 经过了上面的过程,就可以确保在 Master 端和 Slave 端执行了同样的 SQL 语句。 当复制状态正常的情况下,Master
    端和 Slave 端的数据是完全一样的。



转自:https://segmentfault.com/a/1190000019373762


推荐了解热门学科

java培训 Python人工智能 Web前端培训 PHP培训
区块链培训 影视制作培训 C++培训 产品经理培训
UI设计培训 新媒体培训 产品经理培训 Linux运维
大数据培训 智能机器人软件开发




传智播客是一家致力于培养高素质软件开发人才的科技公司“黑马程序员”是传智播客旗下高端IT教育品牌。自“黑马程序员”成立以来,教学研发团队一直致力于打造精品课程资源,不断在产、学、研3个层面创新自己的执教理念与教学方针,并集中“黑马程序员”的优势力量,针对性地出版了计算机系列教材50多册,制作教学视频数+套,发表各类技术文章数百篇。

传智播客从未停止思考

传智播客副总裁毕向东在2019IT培训行业变革大会提到,“传智播客意识到企业的用人需求已经从初级程序员升级到中高级程序员,具备多领域、多行业项目经验的人才成为企业用人的首选。”

中级程序员和初级程序员的差别在哪里?
项目经验。毕向东表示,“中级程序员和初级程序员最大的差别在于中级程序员比初级程序员多了三四年的工作经验,从而多出了更多的项目经验。“为此,传智播客研究院引进曾在知名IT企业如阿里、IBM就职的高级技术专家,集中研发面向中高级程序员的课程,用以满足企业用人需求,尽快补全IT行业所需的人才缺口。

何为中高级程序员课程?

传智播客进行了定义。中高级程序员课程,是在当前主流的初级程序员课程的基础上,增加多领域多行业的含金量项目,从技术的广度和深度上进行拓展“我们希望用5年的时间,打造上百个高含金量的项目,覆盖主流的32个行业。”传智播客课程研发总监于洋表示。




黑马程序员热门视频教程【点击播放】

Python入门教程完整版(懂中文就能学会) 零起点打开Java世界的大门
C++| 匠心之作 从0到1入门学编程 PHP|零基础入门开发者编程核心技术
Web前端入门教程_Web前端html+css+JavaScript 软件测试入门到精通


在线咨询 我要报名
和我们在线交谈!