• MySQL运维内参9787121312359
21年品牌 40万+商家 超1.5亿件商品

MySQL运维内参9787121312359

正版二手图书,可开发票,请放心购买。

24.09 2.0折 119 八品

仅1件

广东广州
认证卖家担保交易快速发货售后保障

作者周彦伟|王竹峰|强昌金

出版社电子工业出版社

ISBN9787121312359

出版时间2017-06

装帧平装

开本16开

定价119元

货号1751782209977176577

上书时间2024-12-23

亿临书店

四年老店
已实名 已认证 进店 收藏店铺

   商品详情   

品相描述:八品
商品描述
前言
  前言

  MySQL是开源世界里面一颗璀璨的明珠,是最流行的关系型开源数据库。关于MySQL的著作浩如烟海、充栋盈车。如何才能写出一本有特色内容的书呢?本书独辟蹊径,从运维和实践相结合的角度,分专题和知识点逐一讲解。用源码去解释MySQL的知识点,分析碰到的问题,这就是本书的特色。

  本书内容所涉及的知识点的选择,建立在我们多年工作经验的基础之上。在平时维护MySQL的过程中,觉得需要引起注意或需要弄清楚的,就把它分享出来,希望能管中窥豹,帮助到读者朋友。

  本书总体分三个部分。

  第一部分是MySQL。

  在这一部分中,我们介绍了MySQL大部分常见知识点的概念和原理,以及运维经验。所谓源码面前,了无秘密。我们从MySQL源码入门开始,介绍源码结构、启动过程、创建连接、表对象缓存等,希望读者在研究MySQL的时候,能充分借助MySQL源码开源的优势,从源码出发,深入理解MySQL的精髓。当然,限于篇幅,我们只能抛砖引玉,适可而止。期望聪明的读者能打好基础,登堂入室。

  本部分会重点介绍InnoDB的相关概念,从源码目录结构,到InnoDB体系架构及其数据字典、数据存储结构、索引的实现原理、两次写(DoubleWrite)、日志管理机制、InnoDB记录格式等,都进行了深度的剖析,这块内容比较复杂,也凝聚了我们巨大的心血,期望能帮助读者理解其中的相关概念。

  随着MySQL 5.7的成熟及MySQL 8.0的发布,一大波MySQL新技术迎面扑来,我们也不会放过这次学习的机会。值得称道的是,本书中包含了来自两位MySQL官方团队的专家特地给我们供稿的内容,分别详细讲述了MySQL对JSON的支持:MySQL Group Replication和MySQL Document Store。另外,我们也关注了MySQL的GTID、SYS Schema、Semi-Sync Replication等,通过对它们详细的描述,相信本书能为广大读者在快速熟悉和掌握MySQL新版本中出现的功能的学习助上一臂之力。

  在讲述各个知识点的同时,也会结合工作过程中的一些经验,跟大家分享自己的心得,例如我们详细介绍了Percona XtraBackup,也分享了在使用它的过程中碰到的问题。类似地,还有快速删除大表的案例、死锁的案例、处理很多文件时碰到的问题等。

  最后,值得一提的是,我们还结合各个知识点,对MySQL如何保障数据库安全做了比较详细的总结,希望这会改变人们对开源数据库是否可靠这样问题的一些有争议的看法。

  第二部分是Galera。

  Galera是去哪儿网架构MySQL高可用的技术基础,我们选择了以Galera Cluster为基础的Percona XtraDB Cluster为技术原型,自主研发了针对去哪儿网这种以交易为主需求的电子商务网站的MySQL高可用架构方案,目前已经在线使用了三年,可能也是国内最大的Galera集群,我们也很荣幸能成为MySQL集群化的早期践行者。

  本部分首先介绍了Galera Cluster的设计与实现,让读者能从宏观层面理解它。当然,虽然说是宏观,但是根据本书写作的主导思想,也不免会从源码的角度去剖析其架构、理解其精华。Galera提供了非常丰富的参数让使用者去灵活地设置,我们也做了重点介绍和解析。

  在准备工作完成之后,开始讲述Galera的重要知识点:验证方法、消息传送、GCache实现原理、SST/IST细节、Donor/Desynced详解、并发控制、FlowControl及grastate.dat文件揭秘等。仔细研读了这些内容之后,相信读者对Galera的理解会更上一层楼。

  实践是本书的另一个特色。所以在Galera部分也加入了不少的实践案例,例如业务更新变慢的根由溯源、手动构建集群死锁、从库的转移等,通过这些内容分享工作中的一些心得,希望读者能够从中受益。

  第三部分是Inception。

  这是我们从零做出来的一个开源项目。Inception已经开源,其手册也已经在网络上广泛传播,而本书所要讲述的,更是对Inception的一种理解,以及它的意义和设计理念。

  关于它的诞生、安装与使用,以及支持的选项、结果集和命令集等,我们都会介绍。同时,值得注意的是,我们特地安排了一节Inception的彩蛋,里面讲述了几个Inception的特殊功能,它们已经成为了日常工作中不可或缺的重要工具。

  如何阅读本书

  基于本书的目的,不是为了帮助你了解整个数据库的所有内容,如果想要了解整个MySQL数据库的所有内容,在线手册无疑是最好的帮手。而本书只关注了在工作中总结出来的对工作有用的重点内容。所谓的重点内容很多,它们之间可以不相关,也可以相关,所以行文组织是比较自由的,相应的阅读模式也可以比较自由。

  书中的MySQL部分,其讲到的案例都是非常独立的,与其他章节没有什么关系,所以可以采取跳跃式阅读。对于一些讲述原理的内容,如果不同章节中有相关联的部分,在内容中都会有类型参照关于“某某某”的内容来引导阅读,所以也不需要刻意遵守章节顺序。

  书中的Galera部分,大部分是在讲述它的实现原理,对于这些内容,最好是按照书中的顺序阅读,这样才可以最好、最快速地理解它们。而后面会讲述一些操作方法及案例等内容,都是基于前面的原理的,案例之间没有相关性,可以采取跳跃式的阅读方法,找到自己感兴趣的内容。

  书中的Inception部分,讲述了如何诞生、如何使用、如何设计及所支持的功能等内容,这基本也是有顺序的,建议按照书中顺序来阅读。

  读者对象

  如果你是一名技术管理者,期望本书能帮你建立对MySQL数据库的信心,助你完成数据库方向的技术体系建设,同时也能帮助你了解MySQL的原理和架构。其中的知识要点,如果在面试中使用的话,应该能帮你找到你所渴求的那

  1% 的顶尖人才。

  如果你是一名架构师,期望本书能帮你在MySQL架构上大显身手,本书中介绍的MySQL

  Replication、Semi-Sync Replication、Group Replication、Galera

  Cluster,几乎囊括了所有MySQL架构的基础,一定有一款适合你。

  如果你是一名开发者,期望本书能帮助你在开发过程中,充分理解MySQL的原理,设计出合理的数据库表和索引,更好地利用MySQL的优势,避开MySQL的劣势,合理使用这个优秀的开源数据库。

  如果你是一名DBA,那么真心恭喜你,本书的知识能助你成为那1%的顶尖人才。

  勘误和支持

  由于我们对MySQL及相关技术的认知水平有限,以及在书写过程中可能存在一些疏忽,书中可能还存在一些不尽如人意的地方,或是不够完美还需要改进的地方,抑或是存在一些错误等问题。我们希望广大读者朋友们能指出其中的问题并留下您的宝贵建议或意见,我们会不断改进,不断完善,在此先感谢大家。

  如果有朋友有任何关于本书的问题,或者建议意见等,想要与我们联系,可以发邮件到mysql@dbace.club,我们会尽己所能及时回应大家。

  我们会在我们的公众号上随时发布本书勘误细节和最新技术进展,同时也会把相关重要意见不定期地结集发布,为了保持随时沟通并获取最新的改进资料,可以扫描右侧二维码关注我们的公众号:formysql。

  在我们学习和使用MySQL的过程中,个人知识和经验的积累及解决问题的思路大部分都来自朋友们的指点和教诲,我们要感谢帮助过我们的朋友们,特别是一起参与ACMUG社区活动的朋友们,限于篇幅,我们不能点名逐一致谢,就以ACMUG代替吧,感谢ACMUG。

  特别地,感谢为本书作推荐的作者:甘泉先生、王瀚漓先生、韩朱忠先生、盖国强先生、刘启荣先生、田发明先生、彭立勋先生、金官丁先生、叶金荣先生、祝百万先生、姜承尧先生、阳学仕先生,诸位师长和朋友的倾情推荐给了我们巨大的信心和勇气,我们表示衷心的感谢。

  由于我们几人出身工科,文字功底粗陋,同时在技术上也不可避免地破绽百出。这里要特别感谢参与本书校对的李坤、田丽芳、高岩,是他们不厌其烦的耐心核对和明察秋毫的细心校正,才使得本书不至于佶屈聱牙、不堪卒读。

  最后,感谢本书的读者,你们的支持是我们最大的动力,谢谢你们!

作者简介
  周彦伟,去哪儿网数据库总监,OracleMySQLACEDirector,ACMUG主席

  在去哪儿网负责数据库平台的管理和维护工作。工作范围包括MySQL、Redis、HBase平台的架构设计、性能调优、日常运维及自动化运维平台设计。长期奋战于互联网行业,历经酷讯网、人人网(校内网)和去哪儿网。曾经担任人人网MySQL技术主管,负责数千规模的MySQL数据库实例的运维管理。中国MySQL用户组(ACMUG)创始人兼主席,领导和组织中国MySQL社区活动。

  王竹峰,去哪儿网数据库专家

  擅长数据库开发、数据库管理及维护,一直致力于MySQL数据库源码的研究与探索,对数据库原理及实现具有深刻的理解。曾就职于达梦数据库,多年从事数据库内核开发的工作,后转战人人网,任职高级数据库工程师,目前在去哪儿网负责MySQL源码研究与运维、数据库管理和自动化运维平台设计开发及实践工作,是Inception开源项目的作者。

  强昌金,去哪儿网高级DBA

  先后就职于陌陌、去哪儿网。目前担任去哪儿网DBA,主要负责去哪儿网数据库管理平台的开发、MySQL和Redis的运维。在数据库方面,具有丰富的数据库运维和性能优化经验。

目录
第一部分 MySQL篇

1 MySQL源代码入门

MySQL源代码的组织结构

Linux下的编译

安装MySQL库

MySQL 5.7权限处理

2 MySQL启动过程

3 连接的生命与使命

用户连接线程创建

MySQL处理请求

总结

4 MySQL表对象缓存

表结构的实现原理

涉及的参数变量

优缺点总结

存在的问题

5 InnoDB初探

InnoDB的源代码目录结构

InnoDB存储引擎文件组织

InnoDB体系结构

InnoDB存储引擎启动与关闭

- - InnoDB 存储引擎的启动

- - InnoDB存储引擎的关闭

6 InnoDB数据字典

背景

系统表结构

字典表加载

Rowid管理

总结

7 InnoDB数据存储结构

表空间文件组成结构

- - 段

- - 簇

- - 页面

段、簇、页面组织结构

8 InnoDB索引实现原理

背景

B+树及B树的区别

索引的设计

聚簇索引和二级索引

二级索引指针

神奇的B+树网络

InnoDB索引的插入过程

一个页面至少要存储几条记录

页面结构管理

- - 文件管理头信息

- - 页面头信息

- - 最小记录和最大记录

- - 页面数据空间管理

- - 经典的槽管理

- - 页面尾部

- - 页面重组

索引页面的回收

9 InnoDB记录格式

背景

从源码入手了解行格式

总结

10 揭秘独特的两次写

单一页面刷盘

批量页面刷盘

- - 两次写组织结构

- - 批量刷盘两次写实现原理

两次写的作用

发散思维

总结

11 InnoDB日志管理机制

InnoDB Buffer Pool

REDO LOG日志文件管理的用途

MTR InnoDB物理事务

日志的意义

日志记录格式

日志刷盘时机

REDO日志恢复

数据库回滚

- - 数据库UNDO段管理

- - 数据库UNDO日志记录格式

- - 回滚时刻

总结

12 MySQL 5.7中崭新的MySQL sys Schema

Performance Schema的改进

sys Schema介绍

- - sys Schema视图摘要

- - sys Schema重点视图与应用场景

- - 使用风险

总结

13 方便的MySQL GTID

GTID 相关概念

- - 什么是GTID

- - GTID集合

- - GTID生命周期

GTID的维护

- - gtid_executed表

- - gtid_executed表压缩

GTID搭建主从

- - 搭建主从时,需要注意的MySQL参数

- - 开启GTID

- - 搭建主从

使用GTID案例总结

- - 如何跳过一个GTID

- - 利用GTID模式快速改变主从复制关系

- - 在线将传统模式复制改为GTID模式复制

- - 在线将GTID模式复制改为传统模式复制

GTID的限制

14 MySQL半同步复制

半同步特性

半同步主库端

半同步从库端

半同步实现

插件安装

半同步自动开关

15 MySQL 5.7多线程复制原理

背景

行之有效的延迟优化方法

MySQL 5.6的多线程复制

MySQL 5.7的多线程复制

- - ordered commit

- - 多线程复制分发原理

- - 异常故障恢复

16 大量MySQL表导致服务变慢的问题

背景

问题分析

案例解决

总结

17 MySQL快速删除大表

背景

问题分析

案例解决

发散思维

总结

18 两条不同的插入语句导致的死锁

背景

问题分析

发散思维

总结

19 MySQL在并发删除同一行数据时导致死锁的分析

背景

问题分析

发散思维

总结

20 参数SQL_SLAVE_SKIP_COUNTER的奥秘

21 Binlog中的时间戳

背景

问题分析

发散思维

事务中的事件顺序

问题延伸

show processlist中的Time

总结

22 InnoDB中Rowid对Binlog的影响

背景

问题分析

总结

23 MySQL备份:Percona XtraBackup的原理与实践

备份背景及类型

认识Percona XtraBackup

XtraBackup的工作流程

XtraBackup的备份原理

XtraBackup 需要的权限

innobackupex常用的备份选项说明

XtraBackup备份实践

- - 全量备份

- - 增量备份

- - 并行备份

- - 其他备份

案例实践与心得

建议与提醒

24 MySQL分库分表

分库分表的种类

分库分表的原则

分库分表实现

- - 数据库层的实现

- - 业务层的实现

25 MySQL数据安全

单机安全

集群安全

备份安全

MySQL实例安全保证

- - Double Write

- - REDO LOG

MySQL集群安全保证

- - 传统的主从模式如何保证数据库安全

- - Semi_Sync Replication方式的复制

- - MySQL集群化如何保证数据库安全

总结

26 MySQL 性能拾遗

适当的数据文件大小

- - 碎片空洞问题

- - 设计问题

合理设计表结构

- - 冗余存储

- - 拆分存储

- - 重复存储

- - 特别提醒

正确使用索引

MySQL系统参数

内存和CPU

磁盘的革命

云中漫步

总结

27 MySQL Group Replication

Group Replication概述

- - 组的概念

- - 多主复制

- - 单独的通信机制

Group Replication服务模式

- - 单主模式

- - 多主模式

- - 服务模式的配置

Binlog Event的多线程执行

- - group_replication_applier通道

- - 基于主键的并行执行

搭建Group Replication复制环境

- - MySQL的参数设置

- - Group Replication插件的使用

- - Group Replication插件的基本参数设置

- - Group Replication的数据库用户

- - Group Replication组初始化

- - 新成员加入组

Group Replication的高可用性

- - 组内成员数量的变化

- - 强制移除故障成员

Group Replication的监控

Group Replication的基本原理

- - 状态机复制

- - 分布式的状态机复制

- - 分布式的高可用数据库

深入理解Group Replication中事务的执行过程

- - 本地事务控制模块

- - 成员间的通信模块

- - 全局事务认证模块

- - 异地事务执行模块

- - 事务流程的总结

深入理解成员加入组的过程

- - 组视图

- - 加入组时视图的切换

- - View_change_log_event

- - 恢复

28 MySQL Document Store面面观

新的JSON数据类型和JSON函数

- - JSON数据类型

- - JSON函数详解

- - JSON函数的运用

MySQL X Plugin 和 X Protocol

- - 支持NoSQL所做的努力

- - 安装MySQL X Plugin

MySQL Shell

- - 安装MySQL Shell

- - 运行MySQL Shell

- - 在MySQL Shell中操作JSON文档

- - 用脚本执行MySQL Shell

X DevAPI

总结

参考资料

第二部分 Galera篇

29 Galera Cluster的设计与实现

Galera Cluster的优点

Galera的引入

Galera接口

总结

30 Galera 参数解析

状态参数

变量参数

31 Galera的验证方法

Binlog与Galera的关系

验证方法

32 Galera的消息传送

33 GCache实现原理

配置参数

实现原理

发散思维

34 大话SST/IST细节

初始化节点环境

连接到集群并且做SST/IST

如何提供增量数据

总结

35 Donor/Desynced详解

实现方式

意义何在

问答环节

36 Galera的并发控制机制

数据复制

写集验证

写集APPLY

事务Commit

37 Galera的流量控制

流量控制的定义

流量控制的实现原理及影响

两个问题

38 Galera Cluster影响单节点执行效率的因素

单点验证

并发控制

等待GTID

总结

39 grastate.dat文件揭秘

引子

分析研究

总结

40 Galera Cluster从库的转移

没有开启Server级GTID的情况

开启了GTID(server级)的情况

总结

41 Galera Cluster节点与其从库的随意转换

背景

从节点向PXC节点的转换

PXC节点向异步从节点的转换

42 业务更新慢,不是由Galera引起的

43 在线改表引发的Galera Cluster集群死锁

背景

用Binlog来代替触发器

表名交换

Galera Cluster中的问题

一个有趣的实验

解决方案

总结

第三部分 Inception篇

44 Inception诞生记

关于SQL审核

- - 半自动化方法

人肉法

不满现状的追求

何谓Inception

45 Inception安装与使用

下载和编译

启动配置

线上配置需求

需要额外注意的点

使用方法

举例说明

环境变量的设置

46 支持选项

选项说明

DDL与DML语句分离

小技巧

47 Inception的备份回滚

备份存储架构

备份所需条件

48 审核规范

支持的语句类型

公共检查项

插入语句检查项

更新、删除语句检查项

表属性检查项

列属性检查项

索引属性检查项

修改表语句检查项

总结

49 参数变量

语法和变量

注意事项

50 友好的结果集

结果集结构

总结

51 命令集语句

远程信息获取

显示本地全部变量

显示本地某个变量

设置本地变量

显示OSC执行进度

查看当前processlist

52 Inception的彩蛋

对OSC的支持

- - 可选的OSC参数

- - 查看OSC的执行进度

- - 中止OSC的执行

- - 查看所有OSC执行信息

Inception对SQL执行情况的统计

打印语法树

53 Inception设计

Inception之源

Inception执行流程

内容摘要
  本书是一本介绍

—  没有更多了  —

以下为对购买帮助不大的评价

此功能需要访问孔网APP才能使用
暂时不用
打开孔网APP