MySQL主从复制原理及双机热备原理

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

主从复制:

数据库接收到请求后, 由主节点的内置客户端执行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个同时当机,无限循环--双机热备)

双机热备的原理:

双机热备中,假设主节点(其中一个角色)的二进制日志文件是mysql-bin.01,position是1000,在它宕机重启后,会变成mysql-bin.02,position变为120,其实这一变动就相当于主节点作了写操作。在主节点宕机之前,从节点监听的是mysql-bin.01,position是1000,在主节点恢复启动后,从节点监听到主节点作了写操作且position变为120,从而启动sql线程调用从节点内部客户端更新写操作,从而与主节点保持一致。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值