MySQL面试题和答案 高手总结 仅供参考.pdfVIP

MySQL面试题和答案 高手总结 仅供参考.pdf

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
资源由 美河学习在线收集提供 MySQL 面试题 1, mysql 的复制原理以及流程。 (1) 先问基本原理流程,3 个线程以及之间的关联。 MySQL 的复制原理:Master 上面事务提交时会将该事务的binlog event 写入 binlog file,然后master 将binlog event 传到slave 上面,slave 应用该binlog event 实现 逻辑复制。 MySQL 的复制是基于如下3 个线程的交互(多线程复制里面应该是4 类线程): a. Master 上面的binlog dump 线程,该线程负责将master 的binlog event 传到 slave ; b. Slave 上面的IO 线程,该线程负责接收Master 传过来的binlog,并写入relay log; c. Slave 上面的SQL 线程,该线程负责读取relay log 并执行; d. 如果是多线程复制,无论是5.6 库级别的假多线程还是MariaDB 或者5.7 的真 正的多线程复制,SQL 线程只做coordinator,只负责把relay log 中的binlog 读出来然后交给worker 线程,woker 线程负责具体binlog event 的执行; (2 ) 再问一致性延时性,数据恢复。 一致性可以从以下几个方面来讲: a. 在MySQL5.5 以及之前,slave 的SQL 线程执行的relay log 的位置只能保存 在文件()里面,并且该文件默认每执行10000 次事务做一次 同步到磁盘,这意味着slave 意外crash 重启时,SQL 线程执行到的位置和 数据库的数据是不一致的,将导致复制报错,如果不重搭复制,则有可能会 导致数据不一致。MySQL 5.6 引入参数relay_log_info_repository,将该参 数设置为TABLE 时,MySQL 将SQL 线程执行到的位置存到 mysql.slave_relay_log_info 表,这样更新该表的位置和SQL 线程执行的用 户事务绑定成一个事务,这样slave 意外宕机后,slave 通过innodb 的崩溃 恢复可以把SQL 线程执行到的位置和用户事务恢复到一致性的状态。 b. MySQL 5.6 引入GTID 复制,每个GTID 对应的事务在每个实例上面最多执行 一次,这极大地提高了复制的数据一致性; c. MySQL 5.5 引入半同步复制,用户安装半同步复制插件并且开启参数后,设 置超时时间,可保证在超时时间内如果binlog 不传到slave 上面,那么用户 提交事务时不会返回,直到超时后切成异步复制,但是如果切成异步之前用 户线程提交时在master 上面等待的时候,事务已经提交,该事务对master 资源由 美河学习在线收集提供 上面的其他session 是可见的,如果这时master 宕机,那么到slave 上面该 事务又不可见了,该问题直到5.7 才解决; d. MySQL 5.7 引入无损半同步复制,引入参rpl_semi_sync_master_wait_point, 该参数默认为after_sync,指的是在切成半同步之前,事务不提交,而是接 收到slave 的ACK 确认之后才提交该事务,从此,复制真正可以做到无损 的了。 e. 可以再说一下5.7 的无损复制情况下,master 意外宕机,重启后发现有binlog 没传到slave 上面,这部分binlog 怎么办???分2 种情况讨论,1 宕机时 已经切成异步了,2

文档评论(0)

小青欣文案铺 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档