主从复制、多主机复制

本文介绍了数据库的主从复制,其中主节点负责写入,从节点用于读取,存在一定的延迟。复制方式包括二进制日志同步和语句执行。在主节点故障时,会选择同步状态最新的节点作为新主。多主复制中每个节点既是主也是从,存在更新冲突问题,可通过冲突避免或自动解决算法处理。两段式提交保证一致性但响应时间长,异步复制则能提高吞吐量。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

主从复制:

一个主节点用于数据写入,多个从节点用于数据读取。主节点与从节点之间数据同步。

如图,对数据写入的操作才会操作Master节点,其他都访问Slave节点。

 

主从复制是有延迟的,一般复制有两种方式:复制二进制日志。将主节点的Write Ahead Log分发到从节点。另外是复制语句,对主节点执行的每一条语句在从节点上执行一遍。这就可能存在数据在同步过程中出现不一致的情况。但是一般来说,最终状态是一致的。

 

同时,主节点也不是万能的,当主节点单点故障时,需要选择一个同步状态最新的节点重新选作主节点,当然,如果有热备节点,优选热备节点(热备节点是一种特殊的从节点,主节点在执行数据的时候,需要等待热备节点执行完毕才会完成事务,热备节点是同步的从节点,与主节点的数据完全一致,因此不会存在”主从延迟“,优选为新的主节点)

 

多主复制

多主复制就不再有主从的概念,每个节点都是主节点,每个节点也都是从节点。每个节点都会把当前的更新复制到其他的节点,每个节点也都会接受来自其他节点的同步数据,因为每个节点都接收读请求和写请求。

多主机复制存在着一个风险--更新冲突。解决更新冲突的方式有两种,一是冲突避免,而是冲突自动解决算法。

两段式提交可以保证所有节点的数据同步,但同样也会有写事务响应时间变长的代价。当节点之间通过wan传输数据时,响应时间进一步被拉长,单节点的不可用也会导致所有主节点上的事务回滚。两段式提交适合保证数据一致性要求高的场景。

异步复制可以减少响应时间,提高吞吐量,但是需要单独的冲突检查和冲突解决算法,出现冲突时,尝试合并冲突的两个分支,如果失败,可能需要手动干预。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值