您的位置:首页 > 数据库 > MySQL

你知道MySQL中的主从延迟吗?

2019-11-11 22:18 1271 查看

前言

在一个MySQL主备关系中,每个备库接受主库的binlog并执行。 正常情况下,只要主库执行更新生成所有的binlog,都可以传到备库并被正常的执行,这样备库就能够达到跟主库一样的状态,这就是最终一致性。 但是MySQL提供的高可用能力,只有最终一致性是不够的,因为我们的备份可能会遇到主备延迟。

什么是主备延迟?

主备切换可能是一个主动运维动作,比如软件升级,主库所有机器按计划下线等,也可能是被动操作,比如主库所在机器掉电。 主备延迟的时间,就是从主库A执行完一个事务,写入binlog,到备库B执行完这个事物。在网络正常的情况下,主备延迟的主要来源是备库接受完bin log和执行完这个事务之间的时间差。所以主备用延迟最直接的表现就是,备库消费中转日志的速度,比主库生产bin log的速度要慢。

主备延迟的来源

1 备库所在的机器性能问题。 理想情况下,主备库应选择相同规格的机器,并且做对称部署。 2 备库压力大 有一些业务的统计,由于主库影响业务,所以大家会比较克制,但是反而忽视了备库的压力控制,备库的查询桑拿耗费了大量的CPU资源,影响了同步速度,造成主备延迟。 处理方式:
  1. [li]一主多从,分担从库读压力
  2. 通过binlog输入到外部系统,比如Hadoop,让外部系统提供统计查询的能力。
[/li] 3 大事务 主库必须等待书屋执行完成才会写入bin log,再传给从库,所以如果一个主库上的语句执行要花费10分钟,那么这个事务很可能会导致主备延迟。所以应该避免大事务

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: