本文共 1149 字,大约阅读时间需要 3 分钟。
MySQL 高可用性的核心机制之一是主备(NO:主从)延迟的概念——记录主库和从库执行事务的时间差。这种延迟直接影响系统的数据一致性和服务稳定性。本文将探讨主备延迟的根本原因及其在实际场景中的表现。
主备延迟的产生是主库写入 binlog 到备库接收并执行完成这整个过程的时间差。具体流程如下:
关键点:网络延迟通常微乎其微,实际延迟主要源于备库的处理速度。使用 show slave status 可以获取 seconds_behind_master,反映主备延迟的具体时间值。
备库压力大:
大事务:
配置差异:
从库资源竞争:
备库执行状态:
表结构问题:
slave_rows_search_algorithms 参数可以优化部分延迟。延迟备库或空间不足:
在双主结构下,主备切换的逻辑和流程如下:
初始状态确认:
seconds_behind_master 是否小于设定阈值(如-5秒),如不满足则重试。主库变只读:
备库变可读写:
seconds_behind_master 变为 0 时才能变更状态。切换完成:
在双主结构下,业务切换的最优策略分为两种:
可靠性优先策略:
可用性优先策略:
根据业务需求选择合适的切换策略至关重要。通常,可靠性优先策略更适合对数据一致性要求较高的场景,而可用性优先则在结果可靠性不成)nфици重要时适用。
转载地址:http://rfesz.baihongyu.com/