MYSQL主从复制
主从复制的原理其实就是把主服务器上的 binlog 日志复制到从服务器上执行一遍,这样从服务器上的数据就和主服务器上的数据相同了。
流程图:
主要涉及到三个线程:主服务器的 binlog 线程、从服务器的 I/O线程 和 SQL线程
- binlog线程 :以二进制的形式记录修改了主服务器数据库的SQL语句
- I/O线程:主服务器上读取binlog日志,并写入到从服务器上的中继日志(Relay log)
- SQL线程:从服务器中的SQL线程读取中继日志,进行重放
主从复制部署模式
-
一主一从模式
-
一主多仆模式
-
级联主从模式,如图:
主从复制模式
主从复制有三种模式:异步模式、半同步模式、全同步模式
异步模式:主节点不关心binlog 线程同步情况,直接返回成功给客户
半同步模式:主节点只需要接收到其中一台从节点的返回信息,就会给用户返回,否则一直等待直到超时回滚。
这种方式性能会比异步模式差一些,但可靠性高,保证了binglog至少传输到了一个从节点,不过没有保证从节点立刻将此事务更新到存储中。
全同步模式:指主节点和从节点全部执行并提交了,才会向客户端返回成功。是完全提交,并不只是从节点写入到中继日志,这样做是强一致性的,但性能损耗非常大。
完全提交,并不只是从节点写入到中继日志,这样做是强一致性的,但性能损耗非常大。