zoukankan      html  css  js  c++  java
  • 你知道MySQL中的主从延迟吗?

    前言

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

    什么是主备延迟?

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

    主备延迟的来源

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

  • 相关阅读:
    windows安装nacos
    anki处理
    minikube安装net5
    在.net core中使用属性注入
    C# 使用MD5算法对密码进行加密
    c# 获取本机系统已经安装的打印机信息
    C# 比较两个datatable并找出修改差异的值
    打印机点击打印后无反应
    GUID转换成16位字符串或19位数据(确保唯一)
    RESTful
  • 原文地址:https://www.cnblogs.com/nedulee/p/11838922.html
Copyright © 2011-2022 走看看