gaussdb mysql对比_详解GaussDB(for MySQL)服务:复制策略与可用性分析

摘要:本文通过介绍GaussDB(for MySQL)读写路径,分析其可用性。

简介

数据持久性和服务可用性是数据库服务的关键特征。

在实践中,通常认为拥有 3 份数据副本,就足以保证持久性。

但是 3 份副本,对于可用性的要求是不够的。维护 3 份一致的副本意味着,这些副本必须同时在线,系统才能保证可用。当数据库跨多个节点分片时,某些节点不可用的概率会随着节点数量的增加而呈指数增长。

在 GaussDB(for MySQL) 中,我们针对日志和数据采用不同副本策略,并采用一种新颖的恢复算法,来解决可用性的问题。

下面首先介绍写路径,然后介绍读路径,最后分析理论上的可用性估计,并与其它副本策略进行比较。

写路径

fb50b34bdc404550cd902b223162a65b.png

写路径如上图所示,下面对每一个步骤进行说明。

1)用户事务导致对数据库页面的更改,从而生成描述更改的日志记录(redo log,下面简称 redo)。

2)将 redo 写入到 Log Stores。写入 3 份副本,并且采用强一致性,即 3 份均写入成功才算成功。

3)将事务标记为已提交(committed)。

只要集群中有三个或以上的 Log Stores 可用,该数据库就可以进行写操作(因为写入只需要选择可用的节点即可,并不规定一定要写入某个节点)。对于成千上万个节点的群集,这实际上意味着 100% 的写入可用性。

4)redo 写入 Log Stores 之后,会将此 redo 放入到 SAL 的 write buffer 中,之后将此 buffer 写入到管理对应 slice 的 Page Store 上。

5)当任何一个 Page Store 副本返回成功,此写入成功,SAL 的 write buffer 被释放。

6)不同的 Page Store 副本之间使用 gossip 协议检测和修复缺失的日志。

空间回收

数据库运行过程中,会源源不断地产生 redo 日志。如果不将不需要的 redo 删除,可以预见,最终肯定会耗尽磁盘空间。在成功将 redo 写入所有 Slice 副本,并且所有数据库的读副本(read replica)都可以看到该记录之后,就可以将该日志从 Log Store 中删除。独立地跟踪每条 redo 的持久性很费资源,因此我们选择基于 LSN 来跟踪持久性。

对于 Page Store 的每个 slice,都有一个 persistent LSN,它的含义是 slice 接收到的所有日志记录中,保证连续(没有空洞)的最大 LSN。(譬如某个 slice 接收到 LSN 为 1 的 redo log 后,persistent LSN 变为 1,此时如果接收到 LSN 为 3 的 redo log,persistent LSN 依然为 1。之后如果接收到 LSN 为 2 的 redo log,即补齐了空洞之后, persistent LSN 变为 3)。

7)SAL 可以通过定期调用 api 或者在读写接口中获取每个 slice 的 persistent LSN(在恢复中也会使用)。

8)SAL 也会跟踪每个 PLog 的 LSN 范围。如果 PLog 中的所有 redo 的 LSN 都小于数据库 persistent LSN(3 副本中最小 persistent LSN),该 PLog 可被删除。

通过上面的机制,我们能够保证每条 redo 都至少会有三个节点上存在副本(一开始在 Plog Store 节点上有 3 副本,保证在 Page Store 节点上有 3 副本之后,将 Plog Store 节点上的副本删除,以回收磁盘资源)。

读路径

数据库前端以 page 粒度读取数据。

读取或者修改数据时,相应的 page 必须在 buffer pool 中。当 buffer pool 已满,我们又需要引入一个 page 时,必须将某些页面从 buffer pool 中淘汰。

我们对淘汰算法进行了修改,保证只有当所有相关 redo 日志都写入至少 1 个 Page Store 副本后,脏页才能被淘汰。因此,在最新的 redo 记录到达 Page Store 之前,保证相应的页面可从 buffer pool 中获得。 之后,可以从 Page Store 中读取页面。

对于每一个 slice,SAL 保存最新 redo log 的 LSN。主节点读取 page 时,读请求首先到达 SAL,SAL 会使用上述 LSN 下发读请求。读请求会被路由到时延最低的 Page Store。如果被选择的 Page Store 不可用或者还没有收到提供 LSN 之前的所有 redo,会返回错误。之后 SAL 会尝试下一个 Page Store,遍历所有副本,直到读请求可以被正确响应。

可用性分析

quorum replication

目前业界最广泛使用的强一致性复制技术基于 quorum replication。如果每份数据在 N 个节点上存在副本,每个读取操作必须从NR个节点接收响应,并写入NW个节点。

为了保证强一致性,必须满足 NR + NW > N 。业界许多系统使用 quorum replication 的不同组合方式。 例如,

1)RAID1 磁盘阵列中通常使用 N = 3,NR = 1,NW = 3;

2)PolarDB 中,N = 3,NR = 2,NW = 2;

3)Aurora 中,N = 6,NR = 3,NW = 4。

下面的分析中,仅考虑节点单独出现不可用的场景(不考虑譬如因为断点导致所有节点不可用的场景)。

假设 1 个节点不可用的概率为 x,则当 N - NW + 1 到 N 个节点同时不可用时,写请求会失败。 即一个写请求失败的概率可用如下公式计算:

5fb8ef2e824cffcf0d68e56c057910ad.png

同理,一个读请求失败的概率计算公式如下:

ce352b3ca81a2cefd11d36bb12151810.png

GaussDB(for MySQL)

在前面的写路径一节中已经提到,GaussDB(for MySQL) 的写 redo,不需要写到特定的 Log Store 上,所以公式 (1) 并不适用。对于写请求,只有当所有 PLog Store 都不可用时,才会失败。如果集群中 Log Store 足够多,这个概率几乎接近于 0。

对于读,每个 Page Store 节点都可以基于其 persistent LSN 决定是否可以为读提供服务。如果不能,它将返回错误,告诉 SAL 尝试另一个节点。在极少数情况下,由于级联故障,没有节点可以提供读服务(并非节点不可用),SAL 会识别这种情况并使用 Log Store 来修复数据。在这种情况下,性能可能下降,但是存储层仍然可用。

SAL 无法恢复的唯一情况是,包含 Slice 副本的所有 Page Store 都不可用,这样的概率是 x^3。

下表对比了 GaussDB(for MySQL) 和几种典型 quorum replication 场景的可用性:

ec87d03eac1f20eb6365c8880cc66486.png

结论

1)对于写,GaussDB(for MySQL) 总是可用的,优于 quorum replication 方案;

2)对于读,除了 x = 0.01 且 quorum 的节点个数为 6 的情况,GaussDB(for MySQL) 总是能提供比 quorum replication 相同或更好的的可用性。并且在上面的场景下,提供的可用性已经足够高,与 quorum replication 相差并不远。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
第一部 MySQL基础入门(21节) 01-老男孩运维DBA课程开班.avi 02-数据库概念介绍.avi 03-数据库种类介绍及关系型数据库原理.avi 04-非关系型数据库介绍.avi 05-非关系型数据库种类介绍.avi 06-关系型数据库产品介绍01.avi 07-关系型数据库产品介绍02.avi 08-非关系型数据库产品介绍01.avi 09-数据库产品排名及发展大事记.avi 10-MySQL数据库产品介绍.avi 11-数据库基础内容小结.avi 12-为什么选择MySQL数据库即MySQL优势介绍.avi 13-MySQL数据库分类与版本升级知识讲解.avi 14-MySQL数据库商业版与社区版区别.avi 15-MySQL数据库的发布版本知识讲解.avi 16-MySQL数据库发展的三条产品线介绍.avi 17-MySQL数据库发布版本命名知识介绍.avi 18-企业生产场景如何选择MySQL产品线产品及对应版本.avi 19-MySQL数据库企业生产常用5种安装方法介绍.avi 20-如何选择MySQL数据库版本及安装方式.avi 21-MySQL5.5编译方式安装实战.avi 第二部 MySQL多实例安装与企业应用场景(10节) 22-MySQL数据库多实例介绍.avi 23-MySQL数据库多实例的优势和问题介绍.avi 24-MySQL数据库多实例的门户企业应用场景.avi 25-MySQL数据库多实例的多种配置方案介绍.avi 26-MySQL数据库多实例安装实战讲解.avi 27-MySQL数据库多实例初始化及服务启动.avi 28-MySQL数据库多实例启动问题排错方法及实战排错.avi 29-MySQL数据库多实例实战排错02.avi 30-增加MySQL数据库第三个实例实战讲解.avi 31-MySQL数据库多实例的其他故障问题说明.avi 第三部:MySQL应用管理及进阶实战操作(29节) 01-MySQL启动与关闭深入知识及原理.avi 02-登录MySQL知识深入讲解.avi 03-学会使用MySQL数据库的帮助.avi 04-修改mysql密码多方法实战及注意-排错.avi 05-找回丢失的mysql密码实战.avi 06-多实例找回丢失的mysql密码.avi 07-SQL语言介绍及分类详解.avi 08-创建不同字符集数据库及企业场景应用讲解.avi 09-显示-连接-删除等数据库的库管理应用讲解.avi 10-创建mysql用户及授权的多种方法实战.avi 11-本地及远程主机授权思想及多种方法实战.avi 12-自己动手实战确定MySQL的授权权限列表.avi 13-生产场景如何授权用户及权限讲解.avi 14-MySQL建表语句及表的知识.avi 15-查看表结构以及建表语句.avi 16-索引的知识及索引创建多种方法实战.avi 17-索引生效的基本条件说明.avi 18-主键-唯一-普通索引创建及删除小结.avi 19-DML语句之insert知识讲解.avi 20-DQL之select知识实战讲解.avi 21-DQL之select多表连表查询实战.avi 22-利用explain查看sql语句的执行计划.avi 23-DML之修改表中的记录实战.avi 24-小试牛刀初步增量恢复MySQL数据实战.avi 25-某企业运维全套面试题解答.avi 26-DML之修改表及企业严重故障案例解决实战.avi 27-删除表中的数据机企业故障案例及防止方法.avi 28-增删改表的字段实战详解.avi 29-更改表名及删除表实战讲解.avi 第四部 MySQL乱码问题及字符集实战(14节) 01-MySQL数据乱码及多种解决方案实战1.avi 02-MySQL数据乱码及多种解决方案实战2.avi 03-MySQL不乱码5种方法及不乱码根源深入详解.avi 04-下节内容及课后作业说明.avi 05-课前思想-17期学生23万入职BAT公司 06-课前思想-及课前考试题说明.avi 07-MySQL字符集介绍及生产常用字符集说明.avi 08-MySQL不同字符集区别及企业生产选择.avi 09-MySQL乱码原因开始系统影响揭秘.avi 10-MySQL上执行set names到底做了什么?.avi 11-MySQL命令带字符集导入到底做了什么?.avi 12-MySQL数据中文不乱码终极实战.avi 13-MySQL数据中文不乱码终极大总结.avi 14-更改生产线上MySQL数据字符集的方案讲解.avi 第五部 MySQL备份、增量备份及数据恢复基础实战(12节) 01-备份数据的意义及重要性.avi 02-mysqldump多个命令参数备份实战.avi 03-mysqldump逻辑备份的工作原理.avi 04-备份多个库的思想及多种方法讲解.avi 05-mysql单多表的备份实战及脚本批量备份讲解.avi 06-只备份MySQL表结构及只备份MySQL数据.avi 07-企业生产场景不同引擎备份命令参数详解.avi 08-利用source恢复mysql数据讲解及实战.avi 09-分库备份后mysql如何分库恢复实战.avi 10-mysql进程-状态-在线修改参数重要知识讲解.avi 11-mysqlbinlog命令介绍及实战讲解.avi 12-mysqldump-master-data参数答疑详解.avi 第六部 MySQL主从复制原理及实战部署(10节) 01-由架构因为引出主从复制的作用及重要性.avi 02-文件及DB各种同步方案大集合介绍讲解.avi 03-mysql主从复制介绍及分布式数据库架构实现介绍.avi 04-主从同步的应用场景及切换从库不丢数据多方案介绍.avi 05-mysql数据库读写分离介绍及企业生产实现方案.avi 06-根据企业业务拆分业务应用到不同的从库思想.avi 07-mysql主从复制原理画图深入浅出讲解.avi 08-mysql主从复制实战01.avi 09-mysql主从复制实战02.avi 10-主从复制的超简单实现方案说明.avi 第七部 MySQL主从复制企业级深入高级应用实战(20节) 01-MySQL主从复制原理画图口头考试讲解.avi 02-课前思想-企业面试必胜绝招讲解.avi 03-MySQL主从复制故障多个案例实战讲解.avi 04-回顾MySQL主从复制配置步骤及注意事项.avi 05-回顾MySQL主从复制原理要点.avi 06-企业场景MySQL主从复制最牛部署方案.avi 07-一键获取全备及binlog位置多种方案讲解.avi 08-不停主库一键批量配置MySQL主从复制方案.avi 09-MySQL主从复制3个线程状态信息讲解.avi 10-MySQL主从复制读写分离授权多种方案案例详解.avi 11-忽略MySQL主从复制主库授权表同步实战.avi 12-MySQL主从复制指定不同库表同步参数说明.avi 13-MySQL主从复制从库只读案例实战及原理总结.avi 14-企业生产场景MySQL主从复制故障原因及实战解决.avi 15-从库开启BINLOG原因及开启实战讲解1.avi 16-从库开启BINLOG原因及开启实战讲解2.avi 17-企业场景一主多从宕机从库切换主继续和从同步过程详解1.avi 18-企业场景一主多从宕机从库切换主继续和从同步过程详解2.avi 19-企业场景一主多从宕机从库宕机解决.avi 20--企业场景-双主及多主同步过程详解及企业选用方案说明.avi 第八部-老男孩MySQL备份与恢复实战案例及生产方案(10节) 01-全量及增量备份概念及优缺点详解 02-不同企业如何选择备份方案及备份需要恢复的场景分析 03-企业场景数据库需要增量恢复的条件分析 04-MySQL数据恢复的必要条件及恢复案例场景图解分析 05-实战模拟企业数据丢失应用的案例场景 06-MySQL数据库增量恢复详细实战 07-更多MySQL数据库增量恢复大讨论及大总结 08-MySQL增量恢复小结及核心恢复思想 09-课后自学能力作业-务必完成并分享讲解 10-内部学员技术大会分享课表说明 第九部-老男孩MySQL服务日志详细介绍及增量恢复命令实践(7节) 01-mysqlbinlog命令介绍及实战讲解 02-mysqldump-master-data参数答疑详解 03-MySQL服务错误日志介绍及实践 04-MySQL服务普通查询日志介绍及实践 05-MySQL服务慢查询日志介绍及实践 06-MySQL服务二进制日志的3种工作模式详细介绍 07-MySQL服务二进制日志的3种工作模式配置方法实战 第十部-老男孩MySQL常用引擎及优缺点-应用场景-调优详解(14节) 01-MySQL服务存储引擎介绍 02-MySQL服务存储引擎体系结构 03-MySQL服务MyISAM引擎介绍及磁盘文件格式 04-MySQL服务事务详细介绍及ACID特性说明 05-MySQL服务MyISAM引擎特点讲解 06-MySQL服务MyISAM引擎适合的生产应用场景 07-MySQL服务MyISAM引擎调优精要 08-MySQL服务InnoDB引擎介绍及磁盘文件格式 09-MySQL服务InnoDB引擎特点讲解 10-MySQL服务InnoDB引擎适合的生产应用场景 11-MySQL服务InnoDB引擎调优及不同引擎功能对比 12-MySQL服务引擎种类功能及对应参数配置说明 13-批量修改MySQL服务引擎的多种方案 14-有关MySQL服务存储引擎的面试题等说明 第十一部 MySQL读写分离开发实现及软件实现-物理备份-高可用(已经包含有5节视频+文档资料) 01-amoeba读写分离实现技术分享.avi 02-mysql-proxy读写分离实现技术分享.avi 03-PHP程序实现读写分离技术分享.avi 04-xtrabackup热备工具技术分享.avi 05-mysql-mmm高可用实现技术分享.avi 文档资料 01-mysql-mmm高可用架构-王雄.rar 02-mysql半主从同步-技术分享--余宏刚.rar 03-xtrabackup安装及操作文档-技术分享--王玉晓.rar 04-mysql主从通过mysql-proxy程序实现读写分离.doc 老男孩linux测试读写分离php网站源代码.zip 第十二部 MySQL高可用工具heartbeat实战(33节) 01-heartbeat介绍与作用.avi 02-Heartbeat的工作原理与服务切换条件.avi 03-Heartbeat心跳连接介绍.avi 04-裂脑的概念讲解.avi 05-裂脑发生的多种原因介绍.avi 06-防止裂脑发生的8种秘籍01.avi 07-防止裂脑发生的8种秘籍02.avi 08-防止裂脑发生的8种秘籍03.avi 09-有关fence设备和仲裁机制说明.avi 10-heartbeat的消息类型介绍.avi 11-heartbeat的IP接管和故障转移原理.avi 12-高可用软件的IP配置管理技术讲解.avi 13-heartbeat的默认路径配置介绍.avi 14-heartbeat的软件版本分支说明.avi 15-heartbeat企业应用场景介绍.avi 16-部署heartbeat高可用业务需求描述.avi 17-模拟服务器准备及IP配置说明.avi 18-配置主机名及服务器hosts文件解析.avi 19-配置服务器间心跳的连接.avi 20-安装heartbeat软件及配置文件讲解.avi 21-heartbeat的主要配置文件参数讲解.avi 22-实战配置heartbeat配置文件.avi 23-启动heartbeat服务并查看配置的VIP.avi 24-发生裂脑故障及根据前面原理排查思路.avi 25-通过heartbeat日志分析接管过程.avi 26-heartbeat实现web服务高可用实战案例1.avi 27-heartbeat实现web服务高可用实战案例1原理.avi 28-heartbeat实现web服务高可用案例2.avi 29-有关heartbeat调用资源的生产场景应用.avi 30-heartbeat高可用案例拓展.avi 31-heartbeat和keepalived的应用场景区别.avi 32-heartbeat服务生产环境下维护要点.avi 33-heartbeat服务生产环境维护FAQ.avi 第十三部 MySQL高可用工具drbd实战(18节) 01-drbd服务介绍.avi 02-drbd的工作原理介绍.avi 03-drbd的工作原理图.avi 04-drbd的复制协议与应用模式.avi 05-drbd的企业应用场景介绍.avi 06-常见运维同步工具介绍.avi 07-drbd的部署及ip配置规划.avi 08-drbd软件的安装配置准备.avi 09-创建同步的分区实践drbd.avi 10-drbd环境分区说明及分区命令.avi 11-实际安装drbd软件实战.avi 12-drbd相关配置列表说明.avi 13-配置drbd加载到内核模块.avi 14-drbd配置文件参数讲解及实际配置.avi 15-drbd服务初始化数据故障机排查过程.avi 16-启动drbd并配置主从同步数据.avi 17-drbd服务的常见故障及排查方法.avi 18-挂载测试数据库同步及查看备节点数据.avi 第十四部 MySQL高可用综合实战(完整版32节) 01-重要课前思想mp4 02-MySQL高可用需求与架构讲解mp4 03-大规模集群架构中MySQL高可用的位置和架构mp4 04-MySQL高可用实战模拟环境描述mp4 05-MySQL高可用生产场景配置及网络地址规划mp4 06-MySQL高可用实施正式环境准备与裂脑注意mp4 07-快速安装双机Centos6.4下heartbeat并配置启动mp4 08-快速安装双机Centos6.4下drbd服务准备01mp4 09-快速安装双机Centos6.4下drbd服务实战02mp4 10-详解drbd服务状态信息细节mp4 11-启动服务测试DRBD实际同步情况mp4 12--配合heartbeat调试drbd服务配置mp4 13-MySQL服务安装实战安装过程讲解mp4 14-一键安装Mysql多实例实战讲解与演示mp4 15-通过手工测试MySQL的高可用切换mp4 16-MySQL双主高可用自动切换实战实现mp4 17-有关MySQL双主高可用my.cnf的配置注意事项讲解mp4 18-MySQL高可用切换的重要思想原理及故障排除思想、mp4 19-MySQL主从同步一键安装脚本实战mp4 20-MySQL多主多从高可用集群自动切换实现mp4 21-有关MySQL高可用注意及常见故障讲解mp4 22-MySQL集群及高可用的更多思路方案引子mp4 23-常见MySQL集群高可用架构讲座01.mp4 24-常见MySQL集群高可用架构讲座02.mp4 25-常见MySQL集群高可用架构讲座03.mp4 26-常见MySQL集群高可用架构讲座04.mp4 27-常见MySQL集群高可用架构讲座05.mp4 28-门户分布式数据库架构案例分享01.mp4 29-门户分布式数据库架构案例分享02.mp4 30-门户分布式数据库架构案例分享03.mp4 31-门户分布式数据库架构案例分享04.mp4 32-门户分布式数据库架构案例分享05.mp4 第十五部 MySQL数据库优化思想与优化实战(9节) 1-网站打开慢mysql问题多解决方案企业案例.avi 2-MySQL索引优化要点精讲01 3-MySQL索引优化生产案例讲解02 4-linux运维人员必须掌握的核心经验案例.avi MySQL数据库生产场景核心优化精讲 5-MySQL数据库硬件优化生产方案及细节精讲01.avi 6-MySQL数据库系统优化生产方案及细节精讲02.avi 7-MySQL数据库参数索引优化生产方案及细节精讲03.avi 8-MySQL数据库SQL优化生产方案及细节精讲04.avi 9-MySQL数据库架构优化生产方案及细节精讲05.avi 第十六部 MySQL业务变更流程与安全管理思想(7节) 01-安全优化-项目开发流程及数据库更新流程.avi 02-DBA参与项目数据库设计及培训开发人员高效设计MYSQL库语句.avi 03-老男孩核心思想-项目周期的制定思想.avi 04-linux进程占用cpu高的解决方案案例.avi 05-数据库账户权限控制多种思路及技巧.avi 06-数据库客户端安全控制策略详解.avi 07-数据库运维的核心管理思想.avi
mysql管理之道:性能调优、高可用与监控》由资深mysql专家撰写,以最新的mysql版本为基础,以构建高性能mysql服务器为核心,从故障诊断、表设计、sql优化、性能参数调优、mydumper逻辑、xtrabackup热备份与恢复、mysql高可用集群搭建与管理、mysql服务器性能和服务监控等方面多角度深入讲解了如何去管理与维护mysql服务器。 书中内容以实战为导向,所有内容均来自于笔者多年实践经验的总结和对新知识的拓展,同时也针对运维人员、dba等相关工作者会遇到的有代表性的疑难问题给出了实用的情景模拟,并给出了解决方案。不论你目前有没有遇到过此类问题,相信对你以后处理相关问题都会有所借鉴。本书适合所有希望构建和管理高性能、高可用性mysql数据库系统的开发者和dba阅读。 目录 · · · · · · 前言 第一部分 mysql5.5 新特性篇 第1章 mysql5.5介绍 2 1.1 性能上的显著改变 2 1.1.1 mysql5.5默认存储引擎的调整 2 1.1.2 充分利用cpu多核的处理能力 7 1.1.3 提高刷新脏页数量和合并插入数量,改善磁盘i/o处理能力 8 1.1.4 增加自适应刷新脏页功能 9 1.1.5 让innodb_buffer_pool缓冲池中的热数据存活更久 9 1.1.6 innodb的数据恢复时间加快 11 1.1.7 innodb同时支持多个bufferpool实例 15 1.1.8 可关闭自适应哈希索引 17 1.1.9 在innodb中可选择使用内存分配程序 18 1.1.10 提高默认innodb线程并发数 21 1.1.11 预读算法的变化 22 1.1.12 首次在linux上实现了异步i/o 23 1.1.13 恢复组提交 24 1.1.14 innodb使用多个回滚段提升性能 26 1.1.15 改善清除程序进度 26 .1.1.16 添加删除缓冲和清除缓冲 27 1.1.17 控制自旋锁spin lock轮训间隔 28 1.1.18 快速创建、删除、更改索引 29 1.1.19 innodb支持创建压缩数据页 30 1.1.20 可动态关闭innodb更新元数据的统计功能 37 1.2 安全性、稳定性的显著改变 38 1.2.1 复制功能加强 38 1.2.2 中继日志relay-log可自我修复 39 1.2.3 开启innodb严格检查模式 39 1.3 动态更改系统配置参数 39 1.3.1 支持动态更改独立表空间 39 1.3.2 支持动态更改innodb锁超时时间 40 1.4 innodb新参数汇总 40 1.5 同步复制新参数汇总 48 1.6 sql语句写法的改变 53 1.6.1 delete表连接语法改变 53 1.6.2 mysql5.5存储过程支持limit变量 54 1.7 mysql5.1升级为mysql5.5 55 1.7.1 采用mysql_upgrade升级授权表方式升级 55 1.7.2 直接安装mysql5.5,采用数据导出/导入方式升级 59 1.8 性能测试:mysql5.5与mysql5.1 60 第2章 半同步复制 62 2.1 半同步复制简介 62 2.2 半同步复制安装配置 63 2.3 参数说明 63 2.4 功能测试 64 2.4.1 如何验证半同步复制是否正常工作 64 2.4.2 半同步复制与异步复制的切换 65 2.5 性能测试 68 2.6 小结 70 第二部分 故障诊断与性能优化篇 第3章 故障诊断 72 3.1 影响mysql性能的因素 72 3.2 系统性能评估标准 73 3.2.1 影响linux服务器性能的因素 73 3.2.2 系统性能评估指标 74 3.2.3 开源监控和评估工具介绍 76 3.3 故障与处理 79 3.3.1 连接数过多导致程序连接报错的原因 79 3.3.2 记录子查询引起的宕机 84 3.3.3 诊断事务量突高的原因 87 3.3.4 谨慎设置binlog_format=mixed 90 3.3.5 未设置swap分区导致内存耗尽,主机死机 94 3.3.6 mysql故障切换之事件调度器注意事项 95 3.3.7 人工误删除innodb ibdata数据文件,如何恢复 97 3.3.8 update忘加where条件误操作恢复(模拟oracle闪回功能) 99 3.3.9 delete忘加where条件误操作恢复(模拟oracle闪回功能) 108 第4章 同步复制报错故障处理 112 4.1 最常见的3种故障 112 4.1.1 在master上删除一条记录时出现的故障 112 4.1.2 主键重复 114 4.1.3 在master上更新一条记录,而slave上却找不到 115 4.2 特殊情况:slave的中继日志relay-log损坏 116 4.3 人为失误 118 4.4 避免在master上执行大事务 119 4.5 slave_exec_mode参数可自动处理同步复制错误 120 4.6 如何验证主从数据一致 121 4.7 binlog_ignore_db引起的同步复制故障 123 4.8 mysql5.5.19/20同步一个bug 124 4.9 恢复slave从机上的某几张表的简要方法  126 4.10 如何干净地清除slave同步信息 127 第5章 性能调优 129 5.1 表设计 129 5.2 字段类型的选取 133 5.2.1 数值类型 134 5.2.2 字符类型 139 5.2.3 时间类型 141 5.2.4 小技巧:快速修改表结构 148 5.2.5 pt-online-schema-change在线更改表结构 152 5.2.6 mysql5.6在线ddl更改表测试 158 5.3 采用合适的锁机制 161 5.3.1 表锁的演示 161 5.3.2 行锁的演示 164 5.3.3 innodb引擎与myisam引擎的性能对比 166 5.4 选择合适的事务隔离级别 168 5.4.1 事务的概念 168 5.4.2 事务的实现 169 5.4.3 事务隔离级别介绍 171 5.5 sql优化与合理利用索引 177 5.5.1 如何定位执行很慢的sql语句 177 5.5.2 sql优化案例分析 178 5.5.3 合理使用索引 188 5.6 my.cnf配置文件调优 198 5.6.1 per_thread_buffers优化 198 5.6.2 global_buffers优化 200 5.6.3 query cache在不同环境下的使用 201 5.6.4 tuning-primer.sh性能调试工具的使用 205 5.6.5 72 gb内存的my.cnf配置文件 208 5.6.6 谨慎使用分区表功能 211 5.7 mysql5.6同步复制新特性详解 213 第6章 备份与恢复 223 6.1 冷备份 224 6.2 逻辑备份 224 6.2.1 mysqldump增加了一个重要参数 225 6.2.2 取代mysqldump的新工具mydumper 226 6.2.3 逻辑备份全量、增量备份脚本 229 6.3 热备份与恢复 230 第三部分 高可用集群管理篇 第7章 目前流行的4种高可用架构 236 7.1 采用mysql自带的replication架构 237 7.1.1 keepalived+mysql replication架构的搭建演示 237 7.1.2 mmm+mysql replication架构的搭建演示 241 7.2 heartbeat+drbd+mysql架构的搭建演示 249 7.3 红帽rhcs共享存储架构的搭建演示 254 7.3.1 安装过程 257 7.3.2 红帽rhcs集群的维护 265 7.4 mysql高可用集群ha解决方案的测试评估 267 第8章 批量管理服务器 270 8.1 开源工具pssh的使用方法 270 8.2 自己编写的ssh服务器批量管理工具 273 第四部分 监控篇 第9章 性能监控 278 第10章 服务监控 283 10.1 nagios搭建与维护 283 10.2 mysql数据库的监控脚本 288 第五部分 项目案例 第11章 项目案例讲解 292 11.1 数据碎片整理方案 292 11.2 用户信息表水平拆表方案 296 11.3 阿里巴巴中间件cobar水平拆表方案 299

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值