本书内容
全书共16章,从复制、中间件、集群、存储、优化五个方面介绍MySQL高可用技术。
第1~6章讲述MySQL的复制,是MySQL高可用实现的基础。除了包括原生的异步复制、插件实现的半同步复制,以及MySQL 5.7版本引入的组复制等基本复制技术外,还讨论了几种常见的复制拓扑,以及各种复制的性能对比。在实际应用中,GTID、部分复制、延迟复制都是针对不同场景下常用的与复制密切相关的技术,这部分内容会分别用单独的章节加以说明。
第7~12章给出如何使用中间件构建MySQL高可用环境。具体包括MySQL自己的中间件产品Router和Fabric,以及被广泛采用的MMM、MHA、Keepalived+LVS、Heartbeat+HAProxy等第三方MySQL高可用解决方案。每种产品使用一章的篇幅进行讲解。
第13~14章介绍两种MySQL集群:InnoDB Cluster和Galera Cluster。其中InnoDB Cluster是MySQL官方推出的集群产品,而Galera Cluster是包含在MariaDB中的MySQL多主集群。
第15章讲述利用DRBD技术实现MySQL高可用。前三部分介绍的MySQL高可用解决方案都是基于MySQL自带的各种复制技术。DRBD的实现方式则完全不同,它本身与MySQL复制毫无关系,而是一个用软件实现的镜像块设备内容的存储复制解决方案。
在全书最后的第16章,引入四个MySQL高可用环境下的优化案例,分别是:快速生成数字辅助表;将MySQL去重优化到极致;重叠时间段问题之算法优化;快速安全删除大表。严格来说,本章内容并不特指高可用环境下的优化。但这些案例都取自我工作中的真实需求,具有一定的代表性和实用性,既有利于读者借鉴解决实际问题,同时在某种程度上也能增加阅读的趣味。
为力求严谨,书中所涉及产品或技术的知识绝大部分来源于相应的官方文档。正如Linus的那句话:“Talk is cheap,show me the code”,对于每一个过程或结论,都配有详细的实验步骤,用实例辅以佐证,帮助读者加深理解。