内容简介
本书主要讲解真实环境下如何使用MySQL的复制、集群和监控特性,揭示MySQL可靠性和高可用性的方方面面。本书定位于解决MySQL数据库的常见应用瓶颈,在保持MySQL的持续可用性的前提下,挖潜各种提高性能的解决方案。本书描述了很多MySQL工具的变化。涵盖了5.5版本的知识,以及若干5.6版本的功能。本书的作者正是书中介绍的很多工具的设计师,本书揭示了MySQL可靠性和高可用性的许多不为人知的方面。
前言
前言
本书的作者们参与编写了部分MySQL组件,并在此领域工作了多年。Charles Bell博士是带领MySQL Utilities小组的高级开发人员,同时还参与复制和备份工作。他的兴趣涵盖MySQL的各个方面,数据库理论、软件工程、微控制器和3D打印等。Mats Kindahl博士是主要的高级开发人员,目前带领MySQL高可用性和扩展性小组,是若干MySQL特性的架构师和实现者。Lars Thalmann博士是MySQL Replication、Backup、Connectors和Utilities小组的开发总监和技术领导,他设计了很多复制和备份的特性,主要从事MySQL集群、复制和备份技术的开发工作。
为了填补MySQL相关书籍的空白,我们撰写了这本书。关于MySQL有很多出色的书籍,但很少集中讲述它的高级特性和应用,诸如高可用性、可靠性和可维护性等。本书将涵盖所有这些主题,当然还有其他更多内容。
为了使阅读更加有趣,我们添加了一个遭遇老板提出种种要求的MySQL从业者的小故事。在该故事中,你将认识Joel Thomas,最近他决定在一家刚开始使用MySQL的公司工作。你将看到Joel学习MySQL的方式,以及如何处理MySQL从业者所面临的一些最棘手的问题。希望你会觉得这部分内容很有趣。
读者对象
本书的读者对象是MySQL从业人士。我们假设读者已拥有SQL、MySQL管理和操作系统的基础背景知识。我们会介绍一些关于复制、灾难恢复、系统监控及其他以高可用性为主题的背景信息。其他书籍的第1章也会介绍相关有用的背景知识。
本书的组织结构
本书分为两部分。第1部分包括MySQL的高可用性和横向扩展性。由于这些问题很大程度上取决于复制,所以本部分大多都集中在这个主题上。第2部分介绍构建健壮的数据中心时,监控和性能方面的问题。
第1部分 高可用性和可扩展性
第1章 引言 介绍了本书的价值,并提供了阅读的情境。
第2章 MySQL Replicant库 介绍了贯穿本书的一个Python库。
第3章 MySQL 复制原理 讨论了设置基本复制的手动和自动流程。
第4章 二进制日志 解释了与复制、灾难恢复、故障排除和其他管理任务相关的关键文件。
第5章 面向高可用性的复制 给出了服务器故障恢复的多种方法,包括自动化脚本的使用。
第6章 面向横向扩展的MySQL复制 介绍了提升大数据集读扩展性的多种技术和拓扑结构。
第7章 数据分片 描述了处理超大数据库的技术,以及通过分片提升数据库的写扩展性。
第8章 深入复制 讲述了诸如安全数据传输和基于行的复制等主题。
第9章 MySQL集群 描述了如何使用该工具达到高可用性。
第2部分 监控和管理
第10章 监控入门 介绍了必须注意的主要操作系统参数,以及监控它们的工具。
第11章 监控MySQL 介绍了几种数据库行为和性能的监控工具。
第12章 监控存储引擎 更加详细地解释了需要监控的参数,重点描述MyISAM或者InnoDB相关的问题。
第13章 监控复制 详细描述了如何跟踪主节点和从节点。
第14章 复制的故障排除 介绍了如何处理故障、重启、崩溃及其他意外事故。
第15章 保护你的资产 解释了备份和灾难恢复技术的使用。
第16章 MySQL企业版监控 介绍了用于简化上述很多任务的一个工具套件。
第17章 使用MySQL实用工具管理MySQL复制 介绍了MySQL实用工具,包含管理MySQL服务器的一整套工具。
附录
附录A为复制的提示和技巧,列举了特定情况下一些有用的方法。
附录B为一个GTID的实现,给出了如果服务器不支持GTID,处理事务故障转移的实现方法。
本书的印刷约定
下面是本书中使用的字体约定:
纯文本(Plain text)
表示菜单标题、选项和按钮。
斜体(Italic)
表示新术语、表名和数据库名、URL、E-mail地址、文件名及UNIX工具。
等宽字体(Constant width)
表示命令行选项、变量和其他代码元素、文件内容及命令输出。
等宽加粗字体(Constant width bold)
表示命令或其他应该由用户输入的文本。
等宽斜体(Constant width italic)
表示应该替换为用户提供的值的文本。
这个图标表示提示或建议。
这个图标表示一般说明。
这个图标表示警告或注意。
中文版书中切口以“”表示原书页码,便于读者与原英文版图书对照阅读,本书的索引中所列的页码为原英文版图书中的页码。
使用示例代码
补充材料(包括代码示例、练习等)可以到//bit.ly/mysqllaunch下载。
本书对你的工作有所帮助。一般来说,可以在你的程序或者文档中使用本书提供的示例代码。你不必联系我们获得许可,除非你要大量传播代码。例如,从书中抄几块代码编写程序不需要许可;销售或分销O'Reilly随书附带光盘上的示例代码则需要许可;引用本书的示例代码回答问题不需要许可;将书中大量的示例代码附加到你的产品文档中则需要许可。
我们感谢但不要求注明出处。出处的格式一般包括标题、作者、出版商和ISBN。例如,“MySQL High Availability,by Charles Bell,Mats Kindahl,and Lars Thalmann.Copyright 2014 Charles Bell,Mats Kindahl,and Lars Thalmann,978-1-44933-958-6.”
如果你觉得示例代码的使用不合理或不符合以上的许可权限,请随时联系我们:permissions@oreilly.com。
Safari Books Online
Safari Books Online(www.safaribooksonline.com)是一个按需出版的数字图书馆,出版各种专业的书籍和视频,它们由世界上技术和商业领域的优秀作者撰写。
技术人员、软件开发者、网页设计者及商业和创意专业人士都把Safari Books Online当作科研、问题解决、学习及认证训练的主要资源。
Safari Books Online为组织、政府机构和个人提供了大量的产品组合和定价方案。订阅者可以从一个完全可搜索的数据库中获取成千上万的书籍、培训视频和尚未出版的手稿,这些出版商包括O'Reilly Media,Prentice Hall Professional,Addison-Wesley Professional,Microsoft Press,Sams,Que,Peachpit Press,Focal Press,Cisco Press,John Wiley & Sons,Syngress,Morgan Kaufmann,IBM Redbooks,Packt,Adobe Press,FT Press,Apress,Manning,New Riders,McGraw-Hill,Jones & Bartlett,Course Technology,以及其他数十家出版社。如想了解更多Safari Books Online的信息,请在线访问我们。
如何联系我们
请将对本书的评价和存在的问题通过如下地址告知出版者:
美国:
O'Reilly Media,Inc.
1005 Gravenstein Highway North
Sebastopol,CA 95472
中国:
北京市西城区西直门南大街2 号成铭大厦C 座807 室(100035)
奥莱利技术咨询(北京)有限公司
O'Reilly 的每一本书都有专属网站,你可以在那里找到关于本书的相关信息,包括勘误列表、示例代码以及其他信息。本书的网站地址是:
http:/bit.ly/mysql_high_availability
对于本书的评论和技术性的问题,请发送电子邮件到:
bookquestions@oreilly.com
关于我们的书籍、课程、会议和新闻的更多信息,请参阅我们的网站//www.oreilly.com。
在Facebook上找到我们://facebook.com/oreilly
在Twitter上关注我们://twitter.com/oreillymedia
在YouTube上观看我们://www.youtube.com/oreillymedia
致谢
作者要感谢这一版和上一版的技术审校人员:Mark Callaghan,Morgan Tocker,Sveta Smirnova,Luis Soares,Sheeri Kritzer Cabral,Alfie John和Colin Charles。你们对细节的关注以及有见地的建议都是无价的。没有你们的帮助,就没有高质量的图书。
还要感谢我们MySQL小组极有才华的同事们,以及MySQL社区提供评论的人们,包括Alfranio Correia,Andrei Elkin,Zhen-Xing He,Serge Kozlov,Sven Sandberg,Luis Soares,Rafal Somla,Li-Bing Song,Ingo Strüwing,Dao-Gang Qu,Giuseppe Maxia和Narayanan Venkateswaran,他们孜孜不倦的努力使得MySQL变得健壮和强大。特别感谢MySQL客户支持的专家们,他们帮助我们缩小了客户需求与我们改进产品的愿望之间的差距。还要感谢很多社区成员,他们如此忘我地投入时间和精力改善MySQL,造福大家。
最后,同时也是最重要的,要感谢我们的编辑,Andy Oram,他帮助我们完成这项工作,并忍受着我们对于MySQL时而理智时而过度积极的热情。向整个O'Reilly小组致以最诚挚的谢意,特别是编辑,感谢他们的耐心,我们如此努力地往一本已经很庞大的书里面塞了这么多新的内容。
Charles要感谢他最爱的妻子,Annette,当他忙于本书的工作而不在家的时候,感谢她的耐心和理解。Charles还要感谢他在Oracle工作的MySQL小组的同事们,他们每天无偿地将自己的智慧贡献给每个人。最后,Charles要感谢他基督教的兄弟姐妹们,他们每天都在考验和支持着他。
Mats要感谢他的妻子Lill和两个儿子Jon和Hannes,感谢他们在自己最困难的时候给予无条件的爱和理解。他们是他一生的挚爱,他无法想象没有他们的生活。Mats还要感谢他在Oracle内外的MySQL同事们,以及所有那些有趣、惊喜和鼓舞人心的时光:你们是这行中最能干的人。
Lars要感谢他的女朋友Claudia,他爱她溢于言表。他还要感谢现在和以前的所有同事,他们让MySQL成为一个十分有趣的工作场所。事实上,这并不是一个场所。MySQL开发小组的分布式本质和很多专业开发者的开放胸怀是真正了不起的。MySQL社区有一种特殊的精神,使MySQL工作成为一个光荣的任务。我们共同创造着非凡。令人吃惊的是,最初的这样一小撮人,成功地创造了一个今天服务于许多财富500强公司的产品。