1、主节点对数据的变更,产生binlog
2、主节点的binlog dump线程,在binlog发生变动的时候,读取内容发送给从节点
3、从节点的IO线程接收到binlog的内容,将其写入到relay log文件
4、从节点SQL线程读取relay log文件内容对数据进行重放,保证主从数据库的一致性
主从节点使用binlog+position偏移量来定位主从同步的位置,从节点会保存已接收到的偏移量,如果从节点宕机,会从记录的position发起同步。
mysql的主从同步分为全同步复制和半同步复制, 一个是接收到全部的从库返回才确认成功, 一个是接收到一个返回就可以向客户端返回
