欢迎光临
免费的PDF电子书下载网站

MySQL管理之道:性能调优、高可用与监控 PDF下载

编辑推荐

点击查看:

MySQL管理之道:性能调优、高可用与监控 PDF下载

  (1)51CTO技术博客之星、资深MySQL技术专家多年工作经验结晶,指导MySQL DBA进阶修炼的**实践之作(2)包含大量来自实际生产环境的经典案例,为各种疑难问题提供了解决方法,从性能优化、高可用与监控角度帮助读者把握实践技巧 ;

内容简介

  本书由资深MySQL专家撰写,以*的MySQL版本为基础,以构建高性能MySQL服务器为核心,从故障诊断、表设计、SQL优化、性能参数调优、mydumper逻辑、xtrabackup热备份与恢复、MySQL高可用集群搭建与管理、MySQL服务器性能和服务监控等方面多角度深入讲解了如何去管理与维护MySQL服务器。

  书中内容以实战为导向,所有内容均来自于笔者多年实践经验的总结和对新知识的拓展,同时也针对运维人员、DBA等相关工作者会遇到的有代表性的疑难问题给出了实用的情景模拟,并给出了解决方案。不论你目前有没有遇到过此类问题,相信对你以后处理相关问题都会有所借鉴。本书适合所有希望构建和管理高性能、高可用性的MySQL数据库系统的开发者和DBA阅读。

作者简介

  贺春旸 从事数据库管理工作多年,有管理和维护高并发海量数据的经验,曾经任职于中国移动飞信、国内某知名电商,致力于MySQL、Linux等开源技术的研究,在51CTO博客上公开发表数据库文章上百篇,现任职于机锋安卓市场,负责MySQL性能调优和架构设计。

MySQL管理之道:性能调优、高可用与监控 PDF下载

目录

前言
第一部分 MySQL5.5 新特性篇
第1章 MySQL5.5介绍
1.1 性能上的显著改变
1.1.1 MySQL5.5默认存储引擎的调整
1.1.2 充分利用CPU多核的处理能力
1.1.3 提高刷新脏页数量和合并插入数量,改善磁盘I/O处理能力
1.1.4 增加自适应刷新脏页功能
1.1.5 让InnoDB_Buffer_Pool缓冲池中的热数据存活更久
1.1.6 InnoDB的数据恢复时间加快
1.1.7 InnoDB同时支持多个BufferPool实例
1.1.8 可关闭自适应哈希索引
1.1.9 在InnoDB中可选择使用内存分配程序
1.1.10 提高默认InnoDB线程并发数
1.1.11 预读算法的变化
1.1.12 首次在Linux上实现了异步I/O
1.1.13 恢复组提交
1.1.14 InnoDB使用多个回滚段提升性能
1.1.15 改善清除程序进度
1.1.16 添加删除缓冲和清除缓冲
1.1.17 控制自旋锁Spin Lock轮训间隔
1.1.18 快速创建、删除、更改索引
1.1.19 InnoDB支持创建压缩数据页
1.1.20 可动态关闭InnoDB更新元数据的统计功能
1.2 安全性、稳定性的显著改变
1.2.1 复制功能加强
1.2.2 中继日志relay-log可自我修复
1.2.3 开启InnoDB严格检查模式
1.3 动态更改系统配置参数
1.3.1 支持动态更改独立表空间
1.3.2 支持动态更改InnoDB锁超时时间
1.4 InnoDB新参数汇总
1.5 同步复制新参数汇总
1.6 SQL语句写法的改变
1.6.1 delete表连接语法改变
1.6.2 MySQL5.5存储过程支持limit变量
1.7 MySQL5.1升级为MySQL5.5
1.7.1 采用MySQL_upgrade升级授权表方式升级
1.7.2 直接安装MySQL5.5,采用数据导出/导入方式升级
1.8 性能测试:MySQL5.5与MySQL5.1
第2章 半同步复制
2.1 半同步复制简介
2.2 半同步复制安装配置
2.3 参数说明
2.4 功能测试
2.4.1 如何验证半同步复制是否正常工作
2.4.2 半同步复制与异步复制的切换
2.5 性能测试
2.6 小结
第二部分 故障诊断与性能优化篇
第3章 故障诊断
3.1 影响MySQL性能的因素
3.2 系统性能评估标准
3.2.1 影响Linux服务器性能的因素
3.2.2 系统性能评估指标
3.2.3 开源监控和评估工具介绍
3.3 故障与处理
3.3.1 连接数过多导致程序连接报错的原因
3.3.2 记录子查询引起的宕机
3.3.3 诊断事务量突高的原因
3.3.4 谨慎设置binlog_format=MIXED
3.3.5 未设置swap分区导致内存耗尽,主机死机
3.3.6 MySQL故障切换之事件调度器注意事项
3.3.7 人工误删除InnoDB ibdata数据文件,如何恢复
3.3.8 update忘加where条件误操作恢复(模拟Oracle闪回功能)
3.3.9 delete忘加where条件误操作恢复(模拟Oracle闪回功能)
第4章 同步复制报错故障处理
4.1 最常见的3种故障
4.1.1 在master上删除一条记录时出现的故障
4.1.2 主键重复
4.1.3 在master上更新一条记录,而slave上却找不到
4.2 特殊情况:slave的中继日志relay-log损坏
4.3 人为失误
4.4 避免在master上执行大事务
4.5 slave_exec_mode参数可自动处理同步复制错误
4.6 如何验证主从数据一致
4.7 binlog_ignore_db引起的同步复制故障
4.8 MySQL5.5.19/20同步一个Bug
4.9 恢复slave从机上的某几张表的简要方法 
4.10 如何干净地清除slave同步信息
第5章 性能调优
5.1 表设计
5.2 字段类型的选取
5.2.1 数值类型
5.2.2 字符类型
5.2.3 时间类型
5.2.4 小技巧:快速修改表结构
5.2.5 pt-online-schema-change在线更改表结构
5.2.6 MySQL5.6在线DDL更改表测试
5.3 采用合适的锁机制
5.3.1 表锁的演示
5.3.2 行锁的演示
5.3.3 InnoDB引擎与MyISAM引擎的性能对比
5.4 选择合适的事务隔离级别
5.4.1 事务的概念
5.4.2 事务的实现
5.4.3 事务隔离级别介绍
5.5 SQL优化与合理利用索引
5.5.1 如何定位执行很慢的SQL语句
5.5.2 SQL优化案例分析
5.5.3 合理使用索引
5.6 my.cnf配置文件调优
5.6.1 per_thread_buffers优化
5.6.2 global_buffers优化
5.6.3 Query Cache在不同环境下的使用
5.6.4 tuning-primer.sh性能调试工具的使用
5.6.5 72 GB内存的my.cnf配置文件
5.6.6 谨慎使用分区表功能
5.7 MySQL5.6同步复制新特性详解
第6章 备份与恢复
6.1 冷备份
6.2 逻辑备份
6.2.1 mysqldump增加了一个重要参数
6.2.2 取代mysqldump的新工具mydumper
6.2.3 逻辑备份全量、增量备份脚本
6.3 热备份与恢复
第三部分 高可用集群管理篇
第7章 目前流行的4种高可用架构
7.1 采用MySQL自带的Replication架构
7.1.1 Keepalived+MySQL Replication架构的搭建演示
7.1.2 MMM+MySQL Replication架构的搭建演示
7.2 Heartbeat+DRBD+MySQL架构的搭建演示
7.3 红帽RHCS共享存储架构的搭建演示
7.3.1 安装过程
7.3.2 红帽RHCS集群的维护
7.4 MySQL高可用集群HA解决方案的测试评估
第8章 批量管理服务器
8.1 开源工具pssh的使用方法
8.2 自己编写的SSH服务器批量管理工具
第四部分 监控篇
第9章 性能监控
第10章 服务监控
10.1 Nagios搭建与维护
10.2 MySQL数据库的监控脚本
第五部分 项目案例
第11章 项目案例讲解
11.1 数据碎片整理方案
11.2 用户信息表水平拆表方案
11.3 阿里巴巴中间件Cobar水平拆表方案


媒体评论

本书作者贺春旸先生是51CTO技术博客之星,在MySQL领域有很深的造诣。贺先生自2012年6月开博以来,一年的时间写了100多篇技术文章,其中有1/3被评为推荐博文,他的文章在51CTO社区非常受欢迎,一个如此会写博客的人所著的书肯定值得一看。更重要的是这本书的内容来自他多年实践经验的总结和对新知识的拓展,同时还针对运维人员、DBA等相关工作者会遇到的代表性疑难问题给出了很多实用的情景模拟及解决方案。不论你目前是否已遇到相关问题,都强烈推荐你仔细研读这本书,一定会对你大有裨益!
——曹亚莉 51CTO技术博客总编
其实之前与作者的交集并不多,我接到邀请试读样章时,诚惶诚恐,于是倍加认真地阅读了样章。区别于很多资料文档式的介绍,本书的内容十分丰富。书中针对MySQL5.1到MySQL5.5的变化和差异进行了翔实讲解,从基本特性到调优的具体操作,本书都有涉及,另外还对MySQL5.6的部分特性进行了分析,非常适合正在学习和使用MySQL的各位朋友参考借鉴。
更重要的是,本书讲解极其详尽透彻。与很多类似书籍以罗列官方参数和手册不同,本书作者完全没有“偷懒”的觉悟!书中不仅对新版MySQL的特性进行了简单的描述,还对其进行了非常细致的分类和详细剖析—仅仅性能上的改变就介绍了20个特性。而且对每个特性都进行了深入浅出的解释和结合应用的实际分析。每个部分,文字解释、代码样例、数据图表、官方文档都图文并茂、一应俱全。我本人也写过书,深深知道要想做到这一点,*是非常费心费力的,但对读者来说,这却是莫大的福利。
因此,我愿意向各位读者推荐这本书,因为我能感受到其中蕴含的作者的心血和他多年的经验。我想,这也正是技术交流的最高价值。
——田逸 资深系统工程师
本书涵盖了新版MySQL的诸多特性,对于需要把握住潮流的技术人员来说是一顿丰盛的大餐。作者把多年的数据库管理心得诉诸于书本,以简单易懂的语言描述出来,论述的技术可操作性强,相信不管是初出茅庐的DBA,还是有一定管理经验的DBA,本书都值得一读。
——唐朝 京东网上商城高级DBA
MySQL作为目前最为成熟的开源数据库,在国内互联网公司广泛应用。*网使用上千台MySQL数据库支撑了今年“双十一”单日350.19亿的交易量。不仅互联网,传统行业也在悄悄接受并尝试这些新技术带来的变革,可以预见MySQL未来必将引领未来开源数据库的潮流。因此要想应对MySQL在运维管理过程中可能出现的各种疑难杂症,也为更好地设计出高性能、高可用、可扩展的数据库架构打好基础,就必须要深入学习MySQL数据库的各种功能特性。此书就是从这些方面入手,细致介绍了*版本MySQL的相关特性,并从基础概念、日常运维到架构设计,结合作者多年实战经验,由浅入深地进行了详细的阐述。相信只要你对MySQL感兴趣,都会开卷有益。
——陈栋 沃趣科技(woqutech.com)创始人

MySQL5.5作为目前最稳定的一个新版本,加入了众多新功能,同时在性能上也有大幅提升。尤其是高并发优化方面,使其更符合当今服务器低频多核的发展趋势。本书在填补目前MySQL管理书籍中对于MySQL5.5系列详细介绍的空缺以外,还针对*版本MySQL5.6的部分特性进行了介绍和分析。作者结合了自身使用实践和多年丰富的MySQL管理经验为读者展现了一个完整立体的MySQL 。
——卢钧轶 大众点评网高级DBA

伴随着互联网的高速发展,MySQL在海量数据、服务器集群的管理、支持、维护等方面也有了翻天覆地的变化,尤其是在Oracle入主后所出的*版本MySQL5.5,更是极大地方便了DBA和运维工程师们的工作。比较遗憾的是,国内对于MySQL的应用还停留在相对初级的版本上,没有充分发挥出其强大的战斗力,造成这种状况的很大一部分原因在于目前市面上相关书籍的缺乏,即使有涉及也只是“照本宣科”式的翻译,在灵活多变的运用中无法起到融会贯通的作用。本书的作者作为奋战在一线的工程师,毫无保留地给出了实战中关于MySQL5.5参数、特性、调优等的示例,同时针对MySQL5.6部分新特性进行了介绍,可谓DBA和运维工程师们的“宝典”。
 ——张润军 北京优品聚众科技有限公司CTO

前沿

前  言
为什么要写这本书
很久以前,我就梦想着自己有一天能写一本书出来,但始终未能成行,直到今天,我终于鼓足勇气着手写作,把多年工作的积累毫无保留地写出来,展现给大家,这不仅对他人的技术成长会有些许帮助,同时对自己来说,也是一个重新学习的过程,何乐而不为?
2010年我有幸加入了梦寐以求的飞信公司,并以此正式开始了我的MySQL职业生涯。工作中能实际接触到海量数据、大并发是我在该领域发展的很重要的因素,工作的驱使和个人的兴趣成为我每天坚持学习MySQL的源动力。对于MySQL,目前业内用得最多的是MySQL5.1.X版本,事实上,MySQL5.5已经推出两年多了,其性能方面有了显著的提升,但市面上介绍MySQL该版本的图书还寥寥无几,大家都是通过阅读英文手册去获取新的知识,因此我决定基于这个版本来写作,把自己学到的新东西做一个系统性的总结。
读者对象
本书是一本面向应用的数据库类书籍,是日常工作中的积累。本书主要面向使用MySQL InnoDB存储引擎作为数据库后端的运维人员和DBA。书中的大部分例子都是生产环境的实战,相信会对读者今后的工作有所帮助。
要想更好地学习本书的内容,要求具备以下条件:
有一定的SQL基础。
掌握基本的MySQL操作和Linux操作,以及数据库基本原理。
接触过Shell脚本语言。
如何阅读本书
本书从知识结构上分为五大部分:
第一部分(第1~2章)详细介绍了MySQL5.5的新特性、注意事项、安装和升级方法,以及半同步复制的日常管理维护,并针对MySQL5.5与MySQL5.1进行了性能测试和功能测试。
第二部分(第3~6章)为故障诊断与优化,内容为生产环境下MySQL故障处理以及性能调优,包括表设计阶段范式的理解、字段类型的选取、采用表锁还是行锁、MySQL默认的隔离级别与传统SQL Server以及Oracle数据库默认的隔离级别的区别、SQL语句的优化以及合理利用索引等,然后讲解了my.cnf配置文件的优化、如何定期整理数据库碎片,最后介绍了硬件的优化、内存对InnoDB引擎所起的决定性作用,以及MySQL5.6的新特性等内容。
第三部分(第7~8章)为高可用软件的搭建与维护,包括企业级高可用集群RHCS、Heartbeat+DRBD和Keepalived+MySQL Replication一主一从模式的搭建与维护,故障切换脚本、MySQL+MMM读写分离架构搭建与维护,以及批量管理上百台MySQL服务器等内容。
第四部分(第9~10章)为主流监控软件的搭建与维护,包括监控软件Cacti和Nagios的安装与使用,以及线上MySQL服务器的监控脚本等内容。
第五部分(第11章)为项目案例讲解,内容包括生产环境数据库碎片整理方案、用户信息表水平拆表方案、阿里巴巴中间件Cobar水平拆表方案。
每个部分可以单独作为一本迷你书阅读,如果你未接触过MySQL5.5,建议从第一部分开始阅读。
勘误和支持
由于作者的水平有限,编写的时间也很仓促,书中难免会出现一些错误或者不准确的地方,恳请读者批评指正。你可以将书中的错误发到我的邮箱chunyang_he@sohu.com,我将尽量提供最满意的解答。如果你有更多的宝贵意见,也欢迎你发送邮件至我的邮箱,很期待能够听到你们的真挚反馈。
致谢
在飞信3年多的时间里,我得到了很多帮助。在这里感谢任志修经理对我的信任,让我始终挑战运维一线,使我得到了成长;感谢我的同事周海平(www.MySQLpub.com)鼓励我,让我把知识展现出去;还要感谢我的同事吴炳锡把我介绍到了飞信,而且在工作中给了我很多鼓励。没有你们的帮助,这本书是完成不了的。
同时感谢我的朋友邱治军参与监控部分的编写;感谢51CTO博客总编曹亚莉、博客管理员张丽妍多次邀请我参加51CTO举办的数据库大会,拓展了我的知识视野;感谢51CTO博客管理员高阳帮我处理图片;感谢前同事李才荣提供Linux批量管理的工具(Python);感谢前同事李冉(乐蜂网高级DBA)提供事件调度器故障切换后的注意事项;另外,还要感谢给我提建议的一些朋友,谢谢你们。
感谢机械工业出版社华章公司的编辑杨绣国,感谢你的魄力和远见,在这一年多的时间中始终支持我的写作,你的鼓励和帮助引导我顺利完成全部书稿。
谨以此书献给我最亲爱的家人,以及众多热爱MySQL的朋友们。

贺春旸
2013年8月于北京

免费在线读

第一部分
  MySQL5.5 新特性篇
  第1章 MySQL5.5介绍
  第2章 半同步复制
  第1章
  MySQL5.5介绍
  MySQL是一个中小型的关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司。由于它具有性能高、成本低、可靠性好等特点,近几年已经成为最流行的开源数据库,被广泛地应用在Internet上的中小型网站中。而且,随着MySQL的不断成熟,现在它也逐渐用于更多大规模的网站和应用了,比如,维基百科、Google和Facebook等。非常流行的开源软件组合“LAMP”中的“M”指的就是MySQL。
  这几年,MySQL的版本在不断变更,可以说是有了翻天覆地的变化,在之前的4.0版本中,没有存储过程、触发器、函数、事件,对CPU多核的支持也不好,在经历了5.0和5.1两个过渡版本后,到5.5版,其性能和功能上已经得到了很大的改善,主要体现在CPU多核处理上有了很大提高,宕机恢复时间减少,可快速创建索引,并具有半同步复制功能等方面,目前这个版本很稳定。2013年春节,5.6版本已经出了GA版,但这里不推荐直接将其用于生产环境中,因为该版本还有许多未知Bug在修复,建议1年后再开始应用,不要充当小白鼠,本书中也只会针对该版部分功能上的新特性进行介绍。
  本章主要讲解的是MySQL5.5 和 InnoDB 的一些增强性能,这些增强性能极大地提高了系统和MySQL的性能。下面将详细介绍每一个关键的增强性能及其实现过程。
  为了不误导读者,保证全文的准确性,下面的内容会结合MySQL5.5官方手册《14.4. New Features of InnoDB 1.1》来讲解,帮助大家认识MySQL5.5中一些较为重要的改变,其中也许会有疏漏的地方,不到之处请大家访问http://dev.MySQL.com/doc/refman/5.5/en/innodb-5-5.html,参考相关的英文文档。
  1.1 性能上的显著改变
  1.1.1 MySQL5.5默认存储引擎的调整
  在MySQL5.1.X之前的版本中,默认的存储引擎是MyISAM,每个MyISAM在磁盘上会将数据存储成三个文件。第一个文件是表结构文件,它的名字以表的名字开始,其扩展名会指出文件类型,为.frm文件存储表定义;第二个文件是数据文件,其扩展名为.MYD (MYData);第三个文件是索引文件,其扩展名是.MYI (MYIndex)。
  MyISAM存储引擎的特点是表级锁、不支持事务和全文索引,适合一些CMS内容管理系统作为后台数据库使用,但是在大并发、重负荷生产系统上,表锁的特性显得有些力不从心,并且如果系统出现宕机、MySQLd进程崩溃,MyISAM引擎表很容易受到损坏,这时不得不用外部命令MyISAMchk去修复它。
  从MySQL5.5.X开始,默认的存储引擎变更为InnoDB Plugin引擎。
  InnoDB给MySQL提供了具有提交、回滚和崩溃恢复能力的事务安全(ACID兼容)存储引擎。InnoDB锁定在行级,并且也在SELECT语句提供一个与Oracle风格一致的非锁定读。这些特色增加了多用户部署和性能。之所以没有在InnoDB中扩大锁定的需要,是因为InnoDB中的行级锁定适合非常小的空间。InnoDB也支持FOREIGN KEY(外键)。在SQL查询中,你可以自由地将InnoDB类型的表与其他MySQL表的类型混合起来,甚至在同一个查询中也可以混合。
  InnoDB是为处理巨大数据量时拥有最大性能而设计的。它的CPU效率可能是任何其他基于磁盘的关系数据库引擎所不能匹敌的。
  InnoDB存储引擎被完全整合到了MySQL服务器中,不过,为了能在主内存中缓存数据和索引,InnoDB存储引擎会维持它自己的缓冲池。InnoDB会在一个表空间中存储它的表和索引,表空间可以包含数个文件(或原始磁盘分区)。这与MyISAM表不同,在MyISAM表中,每个表是被存在分离的文件中的。另外,InnoDB 表可以是任何尺寸,即使是在文件尺寸被限制为2 GB的操作系统上。
  InnoDB存储引擎应用在众多高压力、高并发的大型数据库站点上。比如,著名的Internet新闻站点Slashdot.org运行在InnoDB上。Mytrix, Inc.在InnoDB上存储着超过
  1 TB的数据,还有一些其他站点在InnoDB上处理平均每秒800次插入/更新的负荷。
    

MySQL管理之道:性能调优、高可用与监控 pdf下载声明

本pdf资料下载仅供个人学习和研究使用,不能用于商业用途,请在下载后24小时内删除。如果喜欢,请购买正版

pdf下载地址

版权归出版社和作者所有,下载链接已删除。如果喜欢,请购买正版!

链接地址:MySQL管理之道:性能调优、高可用与监控