主从复制:

数据库接收到请求后, 由主节点的内置客户端执行sql语句,包括"增删改查”,其中"查”是读操作,不涉及主从复制.
在主节点中有一个二进制日志文件bin.log, 当用户执行写操作(增删改)的sql语句时, 这些语句会被记录到二进制文件bin.log中, 这个二进制文件携带一个指针标识position,默认是120,当二进制日志文件的内容发送改变后,指针标识position也会改变。
从节点中的IO线程会监听主节点中的这个二进制日志文件bin.log, 当IO线程发现position变动后,会获取变动的信息,并将变动的信息写入到中继日志文件relay.log中,另外sql线程也会监听中继日志文件relay.log,一旦发现中继日志文件relay.log发生变化,就会启动sql线程调用从节点的内置客户端更新写操作,从而保证主从节点数据一致。
注:对于mysql数据库,主节点中的二进制日志文件以及从节点中的io线程、中继日志、sql线程默认都不开启,需要手动开启。
双机热备:
单机热备:
单向的主从结构,一旦主节点宕机,从节点顶替,但是主节点无法在自动恢复后重新加入集群(一次性的替换--单机热备)
双机热备:
双向的主从结构,任意一台节点宕机,在恢复后都可以加入集群继续提供热备的服务(只要不是2个同时当机,无限循环--双机热备)
双机热备的原理:

本文详细解析了数据库主从复制的工作原理,包括二进制日志文件(bin.log)、IO线程、中继日志(relay.log)及SQL线程的作用。同时,阐述了单机热备与双机热备的区别,以及双机热备如何通过监听主节点状态变化,实现故障自动切换,确保数据一致性。

7122

被折叠的 条评论
为什么被折叠?



