一般面试官问这个问题,都伴随着另外一个问题,叫:小伙子,你说一下MySQL主从原理?
当你回答完原理之后,就会问到关于MySQL主从的几种方式的问题。

一般我们的主从同步,分为:半同步复制和异步复制:
MySQL主从复制默认采用的是异步复制的机制进行同步,所谓的异步指的是主库执行完客户端提交的事务之后立即将结果返回给客户端,并不关心从库是否已经接收道binlog并同步。

如果从库还没有接收到binlog的时候主库发生宕机,那么进行主从切换后的从库数据并不能和主库完全一致。为了解决这个问题,从MySQL 5.5开始以插件的形式支持半同步复制(另需要注意由于半同步复制仅与默认复制通道(for channel “”)兼容,不支持与多源复制混用。)。半同步复制中,当一个客户端提交事务时主库执行完事务并不会立即响应该客户端,而是等待至少有一个从库接收到了binlog并将事务写到自己的relay log中,最后收到从库的ACK响应后才返回给客户端。

半同步这边根据存储引擎处理的逻辑不同又分为after-commit和after-sync两种:

  • after-commit

主库未收到从库的ACK消息之前,虽然不会让发起事务的会话收到事务提交结果,但是会在存储引擎层先执行提交。这样一来虽然提交事务的会话无法知道事务结果,但其他会话在主库上却是可以正常查询的。如果发生主从切换,那么原本在主库可以查询到的数据,在从库却丢失了

  • after-sync

也可以叫做增强半同步复制或者无损复制,是MySQL 5.7默认的半同步方式。主库未收到从库的ACK消息之前,发起事务的会话收无法到事务提交结果,存储引擎层也不会执行提交,解决了after-commit的缺陷,保证了数据的严格一致。由于OLTP应用场景大多数是读多写少,读不会产生binlog,所以即便开启无损复制,相比异步复制所损失的性能也并不多

半同步复制发生超时,可以由rel_semi_sync_master_timeout参数设置关闭半同步,转而使用异步。

【运维面试】面试官: 你能说一下MySQL主从的几种方式吗?相关推荐

  1. 6个linux运维典型问题,Linux运维人员面试常见的问题及答案(二)

    今天小编要跟大家分享的文章是关于Linux运维人员面试常见的问题及答案(二).准备参加Linux运维面试的小伙伴们是否做好了面试准备,今天在这里小编继续为大家分享一些Linux运维人员面试中的常见问题 ...

  2. 总结一下:运维工程师面试的经历及面试相关问题

    2018年1月4号面试     笔者其实没有想到去面试,只是在智联上更新了一下简历,就陆陆续续接到很多猎头的邮件和电话,实在是没准备好要去面试,就推掉了几家公司的面试了.正因为笔者也很久没有面试了,笔 ...

  3. python运维工程师面试题_新浪软件测试面试题-Linux运维工程师面试真题

    新浪软件测试面试题-Linux运维工程师面试真题 作为Linux运维工程师,进入大公司是开启职业新起点的关键,今天特别分享了其在新浪面试Linux运维及云计算工程师的题目和经历,希望对广大Linux运 ...

  4. linux运维培训后面试,Linux运维岗位面试中常见的面试问题汇总

    今天小编要跟大家分享的文章是关于Linux运维岗位面试中常见的面试问题汇总.正准备参加Linux运维面试的小伙伴们来和小编一起看一看吧,希望本篇文章能够对正在从事Linux运维工作的小伙伴们有所帮助. ...

  5. 【面试真题】白同学的系统运维开发面试复盘

    前言 小白同学应邀参加系统运维的面试,面试过程的每个问题小白都提前做好了准备,所以面试还算顺利. 面试完拿到了12K的offer,成功入职,先总结面试过程给大家分享. 面试开始 小白同学按约定时间上午 ...

  6. 运维工程师面试的经历及面试相关问题

    转载 2018年1月4号面试 笔者其实没有想到去面试,只是在智联上更新了一下简历,就陆陆续续接到很多猎头的邮件和电话,实在是没准备好要去面试,就推掉了几家公司的面试了.正因为笔者也很久没有面试了,笔者 ...

  7. 网络运维工程师面试(笔试)

    网络运维工程师面试(笔试) TCP/IP模型有几层,他们的作用分别是什么? OSI模型有几层,作用是? 相同vlan连接不同的交换机,如何通信? arp欺骗的原理? ping的过程 nat有几种,静态 ...

  8. 小猿看图CDN_小猿圈分析Linux运维工程师面试

    原标题:小猿圈分析Linux运维工程师面试 互联网发展到了今天,很多同学都开始学习编程,java.python.linux.html5前端都是现在比较火爆的行业之一,而学习linux前端的同学也是最多 ...

  9. 运维经典面试真题汇总系列

    运维经典面试真题汇总系列 如何判断 mysql 主从是否同步?该如何使其同步?** Slave_IO_Running Slave_SQL_Running: 略 2. mysql 的 innodb 如何 ...

最新文章

  1. 人人都能看懂的EM算法推导
  2. luogu P4725 多项式对数函数 (模板题、FFT、多项式求逆、求导和积分)
  3. 机载计算机网络拓扑结构设计,计算机网络课程设计-网络拓扑结构设计.doc
  4. LeetCode 面试题 10.02. 变位词组
  5. python生成元组_python 列表生成、元组、字典
  6. php查找txt文件是否有,php怎么查询txt文件是否存在
  7. java 分号 转义_java – 正则表达式和转义和未转义的分隔符
  8. 加载一张照片,可选择是否另存为
  9. 如何对聚类结果进行分析_产品经理如何进行数据分析?
  10. 结合实例学习F#(二) --基本数据类型Discriminated Unions
  11. java 性能瓶颈_如何通过 Java 线程堆栈来进行性能瓶颈分析?
  12. python matplotlib.pyplot 填充曲线下面积
  13. linux内核源码多大,需要多久才能看完linux内核源码?
  14. nps是什么、怎么计算、有什么用
  15. Ubuntu10.10 CAJView安装 读取nh\kdh\caj文件 成功
  16. 标号法求解单源最短路径
  17. 交换机与路由器技术-08-路由器上配置DHCP
  18. 牛客多校第八场 Enigmatic Partition(DP)
  19. linux中如何用ftp命令下载文件,linux中ftp下载文件命令的用法
  20. hpm1216nfh驱动程序_M1216nfh 驱动-HP 惠普 LaserJet Pro M1216nfh多功能一体机驱动下载4.0官方版-东坡下载...

热门文章

  1. 多个省市公布大学开学时间!全国仅剩2地“待定”
  2. leetcode系列-309.最佳买卖股票时机含冷冻期
  3. 每年6月10祭奠歌迷家驹活动
  4. Argument of type ‘string‘ is not assignable to parameter of type ‘never‘.
  5. 鸿蒙系统照片显示模糊,为什么iPhone上照片模糊了 iCloud相册到底有啥用?
  6. 大话互联网行业发展史
  7. linux向函数传值的例子,linux awk 内置函数详细介绍(实例)
  8. 网络攻防实验——MAC泛洪攻击、ARP DOS、ARP中间人
  9. java循环队列判断为空_Java - 可循环队列
  10. 织梦添加图片变量_dedecms编辑页面添加变量(织梦内容模型自定义字段)