目录

  • 主备切换
  • 主备延迟的原因
  • 可靠性优先策略的主备切换流程
  • 可用性优先策略的主备切换流程

主备切换

主备切换分为主动运维与被动操作。

软件升级、主库所在机器按计划下线为主动运维。

主库所在机器掉电为被动操作。

同步延迟

1、主库A执行完一个事务,写入binlog,时刻T1

2、传给备库B,备库B接受完这个binlog,时刻T2;

3、备库B执行完这个事务,时刻T3;

同一个事务,在备库执行完成的时间和主库执行完成的时间之差为T3-T1,又称主备延迟。

在备库执行show slave status命令会显示seconds_behind_master,表示备库延迟了多少秒。

主备库机器系统时间设置不一样并不会导致主备延迟的值不准。

在网络正常的时候,日志从主库传给备库的时间T2-T1是很短的。也就是说网络正常时,主备延迟的主要来源是备库接受完binlog和执行这个事务之间的时间差。

主备延迟最直接的表现就是:备库消费中转日志(relay log)的速度,比主库生产binlog的速度慢。

主备延迟的原因

1、备库所在机器的性能可能比主库所在的机器性能差

2、备库压力大。(主库提供写能力,备库提供读能力)

由于主库直接影响业务,使用起来比较克制,反而忽视了备库的压力控制。结果就是,备库上的查询耗费了大量的CPU资源,影响了同步速度,造成主备延迟。

这种情况可以这么解决:

1、一主多从。除了备库外,可以多接几个从库,让这些从库来分担读的压力2、通过binlog输出到外部系统,让外部系统提供统计查询的能力

3、大事务情况

由于主库必须等事务执行完才会写入binlog,再传给备库。

如果一个主库上的语句执行10分钟,那么这个事务很可能会导致从库延迟10分钟。

典型大事务场景

a、一次性删掉大量历史数据。需要控制每个事务删除的数据量,分成多次删除

b、大表DDL

4、备库并行复制能力差

可靠性优先策略的主备切换流程

在M-M结构下,状态1切换到状态2流程如下:

1、判断备库B现在的seconds_behind_master,如果小于某个值(比如5s)继续下一步,否则继续重试这一步

2、把主库A改成只读状态,(readonly设置为true)

3、判断备库B的seconds_behind_master,直到这个值变为0

4、把备库改成可读写状态,(readonly设置为false)

5、把业务请求切换到备库B

step2之后,主库A和备库B都处于readonly状态,此时系统处于不可写状态,直到step5才能恢复。step3比较耗时。

可用性优先策略的主备切换流程

如果强行把上面的step4、5调整到最开始执行,也就是说不等主备数据同步,直接把连接切到备库B,并且让备库B可以读写,那么系统几乎没有不可用时间。

这个切换流程,称为可用性优先流程,不过这个切换的代价,就是可能出现数据不一致的情况。

结论如下:

1、使用row格式的binlog时,数据不一致的问题更容易被发现。使用mixed或者statement格式的binlog时,数据很可能就不一致了。

2、主备切换的可用性优先策略会导致数据不一致,所以一般情况下使用可靠性优先策略。

下面介绍一个使用可用性优先策略的情形:

  • 有一个库的作用是记录操作日志。如果数据不一致可以通过binlog来修补,而这个短暂的不一致也不会引发业务问题。

  • 同时,业务系统依赖于这个日志写入逻辑,如果这个库不可写,会导致线上的业务操作无法执行。

如果使用可靠性优先的思路,只能等待备库慢慢应用中转日志,在备库应用完中转日志且切换成读写状态之前,数据库是处于不可用的状态。 这时也不能直接切换到备库B,然后保持B库只读。

所以此时就需要用到可用性优先策略。

Mysql的高可用性,依赖于主备延迟。主备延迟的时间越小,出现故障的时候,服务需要恢复的时间就越短,可用性就越高

《MySQL——主备切换流程与主备延迟》相关推荐

  1. ComeFuture英伽学院——2020年 全国大学生英语竞赛【C类初赛真题解析】(持续更新)

    视频:ComeFuture英伽学院--2019年 全国大学生英语竞赛[C类初赛真题解析]大小作文--详细解析 课件:[课件]2019年大学生英语竞赛C类初赛.pdf 视频:2020年全国大学生英语竞赛 ...

  2. ComeFuture英伽学院——2019年 全国大学生英语竞赛【C类初赛真题解析】大小作文——详细解析

    视频:ComeFuture英伽学院--2019年 全国大学生英语竞赛[C类初赛真题解析]大小作文--详细解析 课件:[课件]2019年大学生英语竞赛C类初赛.pdf 视频:2020年全国大学生英语竞赛 ...

  3. 信息学奥赛真题解析(玩具谜题)

    玩具谜题(2016年信息学奥赛提高组真题) 题目描述 小南有一套可爱的玩具小人, 它们各有不同的职业.有一天, 这些玩具小人把小南的眼镜藏了起来.小南发现玩具小人们围成了一个圈,它们有的面朝圈内,有的 ...

  4. 信息学奥赛之初赛 第1轮 讲解(01-08课)

    信息学奥赛之初赛讲解 01 计算机概述 系统基本结构 信息学奥赛之初赛讲解 01 计算机概述 系统基本结构_哔哩哔哩_bilibili 信息学奥赛之初赛讲解 02 软件系统 计算机语言 进制转换 信息 ...

  5. 信息学奥赛一本通习题答案(五)

    最近在给小学生做C++的入门培训,用的教程是信息学奥赛一本通,刷题网址 http://ybt.ssoier.cn:8088/index.php 现将部分习题的答案放在博客上,希望能给其他有需要的人带来 ...

  6. 信息学奥赛一本通习题答案(三)

    最近在给小学生做C++的入门培训,用的教程是信息学奥赛一本通,刷题网址 http://ybt.ssoier.cn:8088/index.php 现将部分习题的答案放在博客上,希望能给其他有需要的人带来 ...

  7. 信息学奥赛一本通 提高篇 第六部分 数学基础 相关的真题

    第1章   快速幂 1875:[13NOIP提高组]转圈游戏 信息学奥赛一本通(C++版)在线评测系统 第2 章  素数 第 3 章  约数 第 4 章  同余问题 第 5 章  矩阵乘法 第 6 章 ...

  8. 信息学奥赛一本通题目代码(非题库)

    为了完善自己学c++,很多人都去读相关文献,就比如<信息学奥赛一本通>,可又对题目无从下手,从今天开始,我将把书上的题目一 一的解析下来,可以做参考,如果有错,可以告诉我,将在下次解析里重 ...

  9. 信息学奥赛一本通(C++版) 刷题 记录

    总目录详见:https://blog.csdn.net/mrcrack/article/details/86501716 信息学奥赛一本通(C++版) 刷题 记录 http://ybt.ssoier. ...

  10. 最近公共祖先三种算法详解 + 模板题 建议新手收藏 例题: 信息学奥赛一本通 祖孙询问 距离

    首先什么是最近公共祖先?? 如图:红色节点的祖先为红色的1, 2, 3. 绿色节点的祖先为绿色的1, 2, 3, 4. 他们的最近公共祖先即他们最先相交的地方,如在上图中黄色的点就是他们的最近公共祖先 ...

最新文章

  1. linux下的重要服务dns
  2. 武汉计算机组成原理八校联盟考试,武汉理工大学《计算机组成原理》在线练习及考试题目.doc...
  3. openresty require报错
  4. PMcaff微分享 | 为什么大部分女生爱星座?大部分男生恨星座?
  5. Linux基础(firewalld防火墙配置管理工具的图形用户界面)
  6. python获取他人的ip_Python获取指定网段正在使用的IP
  7. python可以不用主函数吗_python自定义函数可以向前引用不用声明
  8. java mysql教程基于_基于JAVA和MYSQL数据库实现的学生信息管理系统
  9. 19.MongoDB值distinct性能验证
  10. 华为GaussDB:封装JDBC数据连接访问华为GaussDB数据库实现CRUD
  11. Java 9 的 9 个特性
  12. xdroid on linux 黑屏,常见问题及解决方案
  13. SwiftUI CoreSpotlight 实战之实现Spotlight搜索(教程含源码)
  14. 全连MGRE与星型拓扑MGRE
  15. 阿里云技术专家刘晨旭:阿里云对数据可靠性保障的一些思考
  16. 初识云计算和DevOps
  17. 虚拟机怎么安装geany_75 个最常用的 Linux 应用程序(2018 年)
  18. Android全面屏导航栏高度,Android10全面屏开启底部手势横条,弹窗留白问题
  19. 博林格林大学计算机排名,美国传媒研究生排名简述
  20. Looksery Cup 2015 F. Yura and Developers(单调栈+二分+分治)(难*)

热门文章

  1. 《鸿蒙理论知识05》HarmonyOS概述之下载与安装软件
  2. 前端渲染与后端渲染之间的区别?
  3. 如何玩转CSS的Id 和 Class选择器?
  4. java 静态方法与实例方法的区别_静态方法与实例方法的区分
  5. css实现web前端最美的loading加载动画!
  6. call/apply以及this指向的理解
  7. css的再深入7(更新中···)
  8. snippet,让你编码效率翻倍
  9. 原型 - 实现自己的jQuery
  10. 滚动条造成页面抖动问题