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

Effective MySQL之深入解析复制技术 PDF下载

编辑推荐

Oracle ACEDirector、资深MySQL专家RonaldBradfordChris Schneider执笔;描述了MySQL非同步数据复制的本质,介绍了MySQL 5.5MySQL 5.6新特性

 ;

内容简介

《Effective MySQL之深入解析复制技术》由Oracle ACEDirector、资深MySQL专家RonaldBradford和Chris Schneider共同撰写,介绍了在使用MySQL数据复制技术构建具有可扩展性解决方案的过程中需要了解和实现的技术。本书通过详细示例向读者展示了MySQL原生数据复制技术的特性、选项以及不足之处,并对各种新增的数据复制特性以及其他第三方产品实现方案做出了中肯的评估。因此,通过认真学习本书,能够确保读者的MySQL环境满足各种业务环境的高可用性需求。
主要内容
● 掌握MySQL原生的异步数据复制技术的优缺点
● 找到MySQL的重要特性来改进数据复制性能,以应对不断增长的业务需求
● 正确认识关键的业务因素,决定高可用性的优化需求
● 了解在故障转移场景中使用MySQL数据复制带来的益处
● 找出影响主/从节点数据复制的关键配置变量和SQL命令

作者简介

RonaldBradford,Oracle ACE Director,是一位在关系数据库领域拥有20多年丰富经验的专家。Ronald的专业方向是数据库体系结构、性能优化以及大型企业管理系统。

在过去13年中,他重点研究MySQL这一风靡全球的开源数据库,期间曾担任Oracle公司和MySQL有限公司(2006~2008)的高级顾问。

Ronald是Planet MySQL(2010)上公认的*个人MySQL博客的博主,也曾荣获MySQLCommunity Member of the Year (2009)等国际荣誉。Ronald还撰写了《Effective MySQLSQL语句*化》和《Effective MySQL之备份与恢复》等书籍。

Effective MySQL之深入解析复制技术 PDF下载

目录

1  DBA五分钟速成   1

1.1  突发状况下的警报通知   2

1.2  发现问题   4

1.3  纠正问题   8

1.4  定位根本原因   10

1.5  了解数据复制问题   12

1.5.1  用户安全性   13

1.5.2  配置选项和变量   13

1.6  本章小结   14

2  诊断常见的数据复制问题  15

2.1  MySQL数据复制架构回顾  16

2.2  解释数据复制信息   17

2.2.1  二进制日志   18

2.2.2  中继日志 31

2.3  数据复制的一致性问题   32

2.3.1  定位数据不一致问题   34

2.3.2  定位模式不一致问题   34

2.3.3  导致数据不一致的原因 39

2.4  常见的数据复制错误 40

2.4.1  MySQL服务器ID   40

2.4.2  缺少模式对象 41

2.4.3  忽略重复的数据行 42

2.5  了解数据复制延迟   44

2.5.1  造成延迟的主要原因   44

2.5.2  MySQL错误日志    45

2.5.3  改善和最小化延迟的简单方法   46

2.5.4  改善和最小化延迟的高级方法   48

2.6  监控数据复制   51

2.7  本章小结   52

3  改善标准数据复制特性 53

3.1  扩展异步行为(Asynchronous Behavior)    54

3.1.1  半同步数据复制   54

3.1.2  同步数据复制 61

3.2  使用SSL增强数据复制安全性 61

3.2.1  让MySQL SSL准备就绪 62

3.2.2  创建必要的安全证书   63

3.2.3  MySQL SSL配置要求    67

3.2.4  MySQL用户特权要求    68

3.3  数据复制的新特性   72

3.3.1  新改良的数据完整性   72

3.3.2  数据复制的新的性能提升特性   80

3.3.3  新的数据复制管理特性 86

3.4  平衡读取和写入负载 95

3.5  本章小结   96

4  多主节点数据复制 97

4.1  MySQL数据复制的故障转移功能    98

4.2  主动/被动模式的多主节点数据复制    98

4.2.1  多主节点环境必需的配置   99

4.2.2  多主节点环境必需的配置   99

4.2.3  其他配置变量 100

4.2.4  配置示例 101

4.2.5  数据复制环境的搭建   102

4.2.6  多主节点复制环境的验证   105

4.2.7  手动故障转移过程 108

4.2.8  实际使用过程中的兼容性   115

4.2.9  读数据和写数据负载均衡   124

4.3  环形数据复制   124

4.4  自动高可用性故障转移   126

4.5  本章小结   127

5  MySQL数据复制工具   129

5.1  MySQL的一些工具套件    130

5.1.1  Openark Kit工具包    130

5.1.2  Percona Toolkit  135

5.1.3  MySQL Workbench Utilities    144

5.2  数据复制中的故障转移管理器 166

5.2.1  MySQL MHA    167

5.2.2  MMM  185

5.2.3  Flipper  186

5.2.4  集群控制 186

5.3  集群管理   187

5.4  复制数据的预读取   189

5.5  MySQL的补丁和变种  191

5.5.1  独立的社区用户   191

5.5.2  商业组织 192

5.6  本章小结   193

6  实际应用中的数据复制扩展技术 195

6.1  用户最期待的数据复制特性   196

6.2  MySQL的Galera Cluster 198

6.2.1  当前的限制和不足 198

6.2.2  参考资料 199

6.2.3  安装 200

6.2.4  Percona XtraDB Cluster集群工具   223

6.2.5  MariaDB Galera Cluster集群工具   223

6.2.6  Galera打包   223

6.2.7  获得更多帮助 224

6.3  Tungsten Replicator数据复制    224

6.3.1  参考资料 225

6.3.2  安装条件 225

6.3.3  在Tungsten沙箱中安装 226

6.3.4  检查Tungsten Replicator环境 229

6.3.5  手动安装Tungsten 236

6.3.6  其他Tungsten部署方式 250

6.4  SchoonerSQL    258

6.5  MySQL Replication Listener 259

6.6  MySQL与云计算  259

6.6.1  MySQL的Amazon RDS   259

6.6.2  Google Cloud SQL 260

6.7  其他解决方案   260

6.8  本章小结   261

7  MySQL配置选项   263

7.1  关于MySQL系统变量 264

7.2  二进制日志 264

7.3  MySQL数据复制变量  270

7.3.1  半同步数据复制   273

7.3.2  安全性   275

7.4  MySQL服务器变量    276

7.5  MySQL 5.6特性  278

7.5.1  通用唯一标识符(UUID) 279

7.5.2  从节点的崩溃预防机制相关变量 279

7.5.3  数据复制校验和变量   279

7.5.4  多线程的从节点   280

7.5.5  全局事务标识符(GTID) 280

7.6  用户权限   281

7.7  SQL命令和函数  282

7.7.1  数据复制语句 282

7.7.2  数据复制相关的函数   283

7.8  本章小结   283

8  数据复制集群的监控  285

8.1  监控的类型 286

8.1.1  MySQL配置    286

8.1.2  MySQL监控粒度    289

8.2  重要的MySQL信息   289

8.2.1  MySQL错误日志    289

8.2.2  SHOW MASTER STATUS   291

8.2.3  SHOW SLAVE STATUS    291

8.2.4  SHOW GLOBAL STATUS   292

8.2.5  元数据文件   293

8.2.6  元数据表 296

8.3  监控产品   297

8.3.1  监控方案的实现   299

8.3.2  MySQL Enterprise Monitor 299

8.3.3  MEM中的数据恢复顾问分析器    300

8.3.4  Cacti    301

8.3.5  使用thold插件发送警告   302

8.3.6  Cacti绘图模板    302

8.3.7  MySQL Performance Monitor (MPM)  304

8.3.8  最廉价的数据复制监控方案 305

8.4  数据复制的故障诊断 305

8.5  本章小结   307

附录  MySQL配置选项 309

前沿

   

MySQL为很多互联网中的超大型流量的网站提供了专业的数据库环境。所有这些安装了MySQL数据复制的数据库环境为其所在组织和机构提供了可扩展的和高度可用的数据库解决方案。本书主要面向数据库架构师和数据库管理员,帮助他们了解构建成功和可扩展的MySQL数据库解决方案所必需的基础、特性和选项。

本书描述了MySQL非同步数据复制的本质。非同步数据复制是一种广泛使用的数据复制技术。书中将描述这种数据复制的相对优点和局限性,并讲解配置这一数据复制的高级选项。MySQL中有很多选项可被用来改良数据复制,其中包括一些将会在第3章介绍的MySQL 5.5MySQL 5.6新特性。MySQL的生态系统拥有大量的实用程序和工具来支持、管理和增强MySQL数据复制,并帮助改善数据完整性。这些组件和工具包括OpenArkPercona ToolkitMySQL Workbench UtilitiesMySQL HA,在本书的第5章将会详细讨论这些工具。上面提到的这些工具都为创建复杂的数据库拓扑提供了重要的评估手段及架构方案。

  本书同样从细节上讨论了如何正确和安全地使用多主节点的数据复制和执行MySQL半同步数据复制。一些附加的产品和插件现在可以被用来支持MySQL的同步数据复制、自动化失效备份和更复杂的数据库拓扑。MySQLGalera数据复制和ContinuentTungsten Replicator的一些示例,会在第6章中详细地探讨。

  对于MySQL数据库管理员来说,拥有一定的MySQL数据复制的工作经验是必需的。本书附录提供了一个详细介绍MySQLSandbox和使用VirtualBox运行MySQL数据复制的虚拟环境。这是个理想且推荐的方法,用于测试及评估那些构成完整MySQL解决方案的不同选项、特性和产品。

  近些年来,MySQL数据复制有着显著的进步,而本书将会囊括那些尖端和常用的产品及特性。为了提供最佳且最准确的信息、指令、选项和操作,我们已经做出很多不同的尝试,然而,仍有一些软件处于开发阶段,我们应该在将这些软件应用到生产环境前小心考虑并做好备份。

本书约定

  书中出现的SQL语句会以mysql>为前缀出现并提醒读者,跟随着的语句需要使用mysql命令行客户端来执行。当使用多服务器运行MySQL数据复制的示例时,语句会分别使用master>slave>前缀来阐明。比如:

master>SHOW MASTER STATUS;

slave>SLAVE START;

  所有使用上述前缀的SQL语句,一般都可以在任何可选的MySQL客户端图形用户界面(GUI)工具中运行。然而,针对垂直显示输出的G语法是mysql命令行客户端的特定指令。

  文中或代码中所有的SQL语法示例将会以大写形式出现。例如SHOW SLAVE STATUS语句提供了从节点上数据复制的重要信息。在MySQL中,SQL语句是不分大小写的。这条语句之所以大写,只是为了在使用MySQL时能更加容易区分SQL语句中的SQL关键词和其他数据库对象或变量。

  任何UNIX/Linux命令,我们都会使用$前缀来说明这是使用shell提示符来运行的。比如:

$mysqladmin extended-status

  虽然本书描述的MySQL应用并不适用于微软公司的操作系统,不过MySQL还是可以在这种操作平台上运行,并且大多数的标准MySQL细节指令可以在微软系统中运行。然而,本书介绍的大多数用来支持MySQL数据复制的脚本、用户组件和工具,其实并不能原生地被微软系统运行。我们可以通过远程操作Linux/UNIX客户端来连接微软操作系统中的MySQL实例。

关于MySQL

  MySQL数据库服务器是个基于GPL V2许可的开源产品。更多关于这个许可的信息可以登录http://www.mysql.com/about/legal/licensing/index.html这个网页来查询。目前MySQL的版权所有者和法人是Oracle公司。Oracle公司负责MySQL的开发、OEM提供商的商业许可,以及包含商业支持和其他产品特性在内的全面订阅服务。

  更多关于MySQL的信息可以在MySQL的官方网站http://mysql.comMySQL开发者空间http://dev.mysql.com中找到。

  现在最流行的版本是MySQL5.5。本书基于MySQL 5.0或更新版本的内容编写,同时也会提供一些最新版本的应用和特性介绍。最新的开发里程碑和将会发布的版本是MySQL 5.6。本书会包含很多MySQL 5.6开发版本的数据复制新特性。而这些内容都隶属于Oracle Safe Harbor声明,下面会提供这个声明的细节。

MySQL 5.6新特性的Oracle Safe Harbor声明

  下面的内容旨在概述我们大体的产品方向。这个声明只是用来作为信息使用,所以并不适合在任何合约中使用和引用。我们不承诺发表任何资料、代码或功能,并且不应该依靠上面提到的元素而做出任何购买决定。任何Oracle产品的特性或功能的开发、发布和定时,都由Oracle拥有完全的酌情决定权。

开源软件许可

  本书谈及的产品被以下不同的开源许可涵盖,因此可能会用不同的使用条款。使用者在使用这些软件时,请自行斟酌。下面是一些常见的开源软件许可:

GPL本书设计的GNU通用公共许可证(General Public LicenseGPL)可能是第2版或第3版。更多信息可以登录网址http://www.gnu.org/copyleft/gpl.html来查询。

LGPLLGPL(Lesser General Public License)许可可以在http://www.gnu.org/copyleft/lesser.html上找到。

BSD 关于伯克利软件分配代号(Berkeley Software DistributionBSD),可以登录网页http://linfo.org/bsdlicense. html找到。最新BSD许可、简化BSD或免费BSD许可都是这个许可的同义词。

CreativeCommons (CC) 关于不同CC的许可细节可以访问网址http://creativecommons.org/

  更多关于不同开源软件的许可信息,可以登录开源代码促进会的官方网站http://opensource.org/。关于上述许可的细节清单,可以通过登录网页http://www.gnu.org/licenses/license-list.html来查询。

常用的专业术语和缩写

  我们预期本书的读者对SQL和关系数据库模型有一定的基础知识。下面是一些较为常用且比较重要的专业术语。下面列举的专业术语适用于MySQL开发环境及一般的SQL数据库环境。

关系数据库术语

RDBMS(RelationalDatabase Management System,关系数据库管理系统)

SQL(StructuredQuery Language,结构化查询语言)

DAB(DatabaseAdministrator,数据库管理员)

DDL(DataDefinition Language,数据定义语言)

DML(DataManipulation Language,数据操作语言)

ACID(Atomicity、ConsistencyIsolationDurability,原子性、一致性、隔离性、持久性)

硬件术语

CPU(CentralProcessing Unit,中央处理器)

RAID(RandomArray of Independent Disks,独立磁盘冗余阵列)

SSD(SolidState Drive,固态硬盘)

I/O(Input/Output,输入/输出)

软件术语

SSL(SecureSockets Layer,加密套接字协议层)

SSH(SecureShell,安全外壳)

IP(InternetProtocol,Internet协议)

DNS(DomainName Service,域名服务协议)

GNU(GNU’s Not Unix!)

BSD(BerkeleySoftware Distribution,伯克利软件分配代号)

GPL(GNUPublic License,公共许可证)

常用的MySQL术语

GA(GenerallyAvailable,普遍可用版本)

RC(ReleaseCandidate,候选发布版本)

DMR(DevelopmentMilestone Release,开发里程碑版本)

代码示例

  本书用过的所有示例都可以从EffectiveMySQL丛书的网站上找到。详情请访问http://effectivemysql.com/book/replication-techniques/。其他资源,例如代码、脚本和样本数据,同样可以在GitHub网站上找到,网址是https://github.com/effectiveMySQL/ ReplicatinTechniques

   一个包含所有URL链接的独立文本文件同样可以在上面的网址找到,从而方便以后参考时使用。

参考文献

  MySQL参考手册在MySQL开发者空间是免费的资源。该资源可以在http://dev.mysql.com/doc/refman/5.5/en/index.html上找到。同样,可以登录http://dev.mysql.com/doc找到较久或最新的MySQL参考手册。

  Planet MySQL是个聚集了上万MySQL博客的大型社交网站,几乎涵盖了有关MySQL领域的所有内容,提供了优质的MySQL数据复制示例、经验和用例。

Effective MySQL之深入解析复制技术 pdf下载声明

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

pdf下载地址

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

链接地址:Effective MySQL之深入解析复制技术