MySQL DBA工作笔记:数据库管理、架构优化与运维开发
作者:杨建荣
出版时间:2019年版
内容简介
本书是来自一线MySQL DBA的技能进阶笔记,凝结了作者多年数据库管理心得。 全书从运维管理、架构优化和运维开发三个层面娓娓道来,精心筛选了作者在实际工作 中总结的技巧、对常见问题的处理方法以及对于运维体系的思考和实践;尤其是运维开 发章节从0 到1 构建运维体系,能够对DBA已有知识体系和技能栈做到全新梳理。
目录
第1 章 MySQL 发展和技术选型
1.1 如何看待MySQL ..............................................................................................................1
1.1.1 MySQL 始出...........................................................................................................1
1.1.2 MySQL 学习周期和难度........................................................................................1
1.1.3 解读DB-Engines 的正确姿势................................................................................2
1.1.4 MySQL 主要的一些分支........................................................................................3
1.1.5 如何看待MySQL 的技术发展...............................................................................3
1.2 如何看待MySQL 存储引擎..............................................................................................5
1.2.1 InnoDB 发展时间线...............................................................................................6
1.2.2 存储引擎之战.........................................................................................................7
1.2.3 存储引擎矩阵图.....................................................................................................7
1.3 MySQL 软件和版本选型...................................................................................................8
1.3.1 选择官方版的原因.................................................................................................9
1.3.2 Percona 分支的优劣对比........................................................................................9
1.3.3 选择MariaDB 的原因.......................................................................................... 10
1.3.4 MySQL 版本选型................................................................................................. 10
1.3.5 分支选择的参考和标准........................................................................................ 11
1.3.6 初步结论............................................................................................................... 13
1.4 MySQL 常用工具选择和建议......................................................................................... 13
1.4.1 运维管理类工具................................................................................................... 14
1. 主流运维管理工具........................................................................................... 14
2. 数据备份恢复工具........................................................................................... 14
3. MySQL 审计插件............................................................................................ 15
1.4.2 应用工具............................................................................................................... 15
1. 客户端工具...................................................................................................... 15
2. 数据库版本管理工具....................................................................................... 15
1.4.3 监控管理类工具................................................................................................... 16
1. 操作系统监控.................................................................................................. 16
2. 性能监控工具.................................................................................................. 16
1.4.4 诊断和优化工具................................................................................................... 16
1. 诊断工具.......................................................................................................... 16
2. 性能测试工具.................................................................................................. 18
3. 慢日志分析工具.............................................................................................. 18
1.4.5 初步结论............................................................................................................... 18
1.5 MySQL 安装.................................................................................................................... 19
1.5.1 常见的三种安装方式............................................................................................ 19
1.5.2 MySQL 安装规范................................................................................................. 20
1.5.3 MySQL 5.7 安装部署实践与总结........................................................................ 20
1.5.4 搭建从库............................................................................................................... 23
案例1-1:MySQL 频繁停库的问题分析........................................................................ 25
第2 章 理解MySQL 体系结构
2.1 通过文件来了解MySQL 体系结构................................................................................. 29
2.1.1 从例子来理解MySQL 存储结构......................................................................... 32
2.1.2 慢日志诊断........................................................................................................... 32
案例2-1:MySQL 日志故障的处理和分析.................................................................... 35
2.2 玩转MySQL 数据字典.................................................................................................... 38
2.2.1 MySQL 巡检模块:Sys Schema 的设计.............................................................. 39
2.2.2 解惑:MySQL 关于数据字典的一个疑问........................................................... 47
2.3 InnoDB 体系结构............................................................................................................ 50
2.3.1 InnoDB 体系结构图............................................................................................. 51
2.3.2 查看InnoDB 状态的小技巧................................................................................. 52
2.3.3 InnoDB 的多线程技术.......................................................................................... 53
2.3.4 InnoDB 的缓存池管理技术.................................................................................. 55
2.3.5 InnoDB 中的脏页管理.......................................................................................... 58
2.3.6 InnoDB 的日志管理............................................................................................. 60
2.3.7 InnoDB 中的检查机制.......................................................................................... 62
2.3.8 MySQL 是如何保证数据完整性的...................................................................... 63
2.4 换个角度看MySQL......................................................................................................... 66
2.4.1 MySQL 里的一些极限值...................................................................................... 66
案例2-2:关于MySQL 中的一些极限值的初步验证纠错............................................. 67
2.4.2 mysql. service 启动脚本浅析................................................................................ 68
2.4.3 MySQL 待改进的一些问题.................................................................................. 71
2.5 MySQL 参数解析............................................................................................................ 72
2.5.1 MySQL 参数变化分析.......................................................................................... 73
2.5.2 MySQL 5.7 参数解析............................................................................................ 74
第3 章 MySQL 基础运维面面观
3.1 环境部署和构建.............................................................................................................. 76
3.1.1 源码安装MySQL ................................................................................................. 76
3.1.2 在eclipse 中配置MySQL 源码环境.................................................................... 80
3.1.3 分分钟搭建MySQL 一主多从环境...................................................................... 87
3.2 MySQL 服务管理............................................................................................................ 88
3.2.1 Socket 连接........................................................................................................... 88
3.2.2 TCP/IP 连接.......................................................................................................... 89
3.2.3 MySQL 访问模式的演进...................................................................................... 89
3.2.4 无密码登录........................................................................................................... 90
案例3-1:通过shell 脚本检测MySQL 服务信息.......................................................... 91
案例3-2:MySQL 密码加密认证的简单脚本................................................................. 93
案例3-3:MySQL 中如何得到权限信息........................................................................ 94
方法1:重新导出导入整个数据库...................................................................... 94
方法2:导出mysql 的权限配置.......................................................................... 94
方法3:pt 工具导出............................................................................................ 95