前言
前段时间发放了学习资料给予自学java的同学们,自学虽好,但是架不住没有老师讲解重侧点(实际上许多培训班的老师也是水分多多,甚至无实战经验),今天我就抽空把java零基础入门(六个月)的学习重点画出来,在不影响达到工作和进阶的前提下删繁就简!去掉不必要的注水内容!
主备同步的实现原理
我们先来了解一下主备同步的原理,下面以一个update语句来介绍主库与备库间是如何进行同步的。
上图是一个update语句在节点A执行,然后同步到节点B的完整流程图,具体步骤有:
- 主库接受到客户端发送的一条update语句,执行内部事务逻辑,同时写binlog。
- 备库通过 change master 命令,设置主库的IP、端口、用户名和密码,以及要从哪个位置开始请求 binlog。这个位置包含文件名和偏移量。
- 在备库上执行start slave命令,启动两个线程 io_thread 和 sql_thread,其中 io_thread 负责与主机进行连接。
- 主库校验完用户名和密码,按照接收到的位置去读取binlog,发给备库。
- 备库接收到binlog后,写到本地文件(relay log&#