项目1 了解数据库运维工作 1
1.1 项目场景 1
1.2 教学目标 1
1.3 项目知识导入 2
1.3.1 数据管理概述 2
1.3.2 数据库运维概述 5
1.3.3 数据库工程师职位及其职责 6
1.3.4 数据库运维发展趋势 7
1.4 项目任务分解 8
任务1-1 了解数据库工程师职位要求及就业前景 8
任务1-2 了解 数据库运维平台 9
1.5 课后习题 10
项目2 安装和配置MySQL 11
2.1 项目场景 11
2.2 教学目标 11
2.3 项目知识导入 11
2.3.1 MySQL概述 11
2.3.2 MySQL工具 14
2.3.3 MySQL配置解析 16
2.4 项目任务分解 18
任务2-1 在Linux系统下安装并配置MySQL 18
任务2-2 登录、退出MySQL 20
任务2-3 在Windows系统下安装并配置MySQL 21
任务2-4 第三方运维平台下的自动化部署 26
2.5 常见问题解决 29
2.6 课后习题 30
项目3 管理MySQL权限与安全 31
3.1 项目场景 31
3.2 教学目标 31
3.3 项目知识导入 32
3.3.1 权限表 32
3.3.2 账户管理 34
3.3.3 权限管理 38
3.4 项目任务分解 43
任务3-1 创建MySQL普通账户并用普通账户登录 43
任务3-2 为MySQL普通账户授予数据库的远程访问权限 44
任务3-3 忘记root账户密码情况下的登录 45
任务3-4 为MySQL普通账户授予对数据库和表的读写权限 47
任务3-5 收回MySQL普通账户对特定数据库的操作权限 48
3.5 常见问题解决 49
3.6 课后习题 49
项目4 分析MySQL日志 51
4.1 项目场景 51
4.2 教学目标 51
4.3 项目知识导入 51
4.3.1 错误日志 52
4.3.2 一般查询日志 55
4.3.3 慢查询日志 56
4.3.4 二进制日志 59
4.4 项目任务分解 64
任务4-1 通过错误日志查看MySQL服务不能启动的原因 64
任务4-2 记录客户端连接错误信息 65
任务4-3 使用mysqldumpslow分析慢查询日志 66
任务4-4 使用mysqlbinlog基于时间点恢复数据 68
任务4-5 使用mysqlbinlog基于字节位置恢复数据 71
4.5 常见问题解决 72
4.6 课后习题 73
项目5 备份与恢复MySQL数据库 75
5.1 项目场景 75
5.2 教学目标 75
5.3 项目知识导入 75
5.3.1 数据备份 75
5.3.2 数据恢复 81
5.3.3 数据库迁移 83
5.3.4 表的导出和导入 84
5.3.5 Linux crontab 88
5.4 项目任务分解 89
任务5-1 使用mysqldump命令备份和恢复数据 89
任务5-2 使用Percona XtraBackup备份和恢复数据 90
任务5-3 使用mysqldump+crontab自动备份数据库 92
任务5-4 迁移MySQL数据库 93
任务5-5 迁移MySQL表数据 94
5.5 常见问题解决 98
5.6 课后习题 99
项目6 监控、测试并优化MySQL性能 101
6.1 项目场景 101
6.2 教学目标 101
6.3 项目知识导入 101
6.3.1 性能监控 101
6.3.2 性能测试 107
6.3.3 性能调优 115
6.4 项目任务分解 122
任务6-1 安装MONyog工具监控MySQL服务器 122
任务6-2 对MySQL数据库读写性能调优 126
任务6-3 创建MySQL压力测试报告 128
任务6-4 使用explain工具分析并优化单表SQL查询 129
任务6-5 使用explain工具分析并优化多表SQL查询 132
任务6-6 申请及使用阿里云RDS数据库 135
任务6-7 MySQL及阿里云RDS数据库运维任务 141
6.5 常见问题解决 142
6.6 课后习题 143
项目7 MySQL复制 145
7.1 项目场景 145
7.2 教学目标 145
7.3 项目知识导入 145
7.3.1 MySQL复制概述 145
7.3.2 MySQL复制过程 146
7.3.3 复制的表现形式 148
7.3.4 复制的常用拓扑结构 149
7.4 项目任务分解 151
任务7-1 在Windows系统下建立MySQL主从复制 151
任务7-2 在Linux系统下建立MySQL主从复制 155
任务7-3 配置MySQL半同步复制 159
任务7-4 配置MySQL并行复制 161
任务7-5 基于GTID建立MySQL主从复制 165
7.5 常见问题解决 169
7.6 课后习题 169
项目8 搭建及运维MySQL Cluster 172
8.1 项目场景 172
8.2 教学目标 172
8.3 项目知识导入 172
8.3.1 什么是MySQL Cluster? 172
8.3.2 MySQL Cluster节点 174
8.3.3 维护MySQL Cluster 174
8.4 项目任务分解 178
任务8-1 在Linux系统下建立并管理MySQL Cluster 178
任务8-2 在Windows系统下建立并管理MySQL Cluster 182
任务8-3 测试Linux系统下的MySQL Cluster 188
8.5 常见问题解决 189
8.6 课后习题 190
项目9 结合Redis的MySQL运维 191
9.1 项目场景 191
9.2 教学目标 191
9.3 项目知识导入 192
9.3.1 Redis介绍与安装 192
9.3.2 Redis结构与读写原理 195
9.3.3 Redis常用命令 197
9.3.4 Redis配置 198
9.3.5 Redis集群 201
9.3.6 RedisManager 201
9.4 项目任务分解 202
任务9-1 使用redis-cli命令监控Redis服务状态 202
任务9-2 搭建Redis集群 203
任务9-3 使用RedisManager创建集群监控 207
任务9-4 MySQL结合Redis实现读写分离 212
9.5 常见问题解决 216
9.6 课后习题 217
项目10 数据库自动化运维 218
10.1 项目场景 218
10.2 教学目标 218
10.3 项目知识导入 219
10.3.1 数据库运维的演进 219
10.3.2 数据库自动化运维 220
10.3.3 数据库智能运维 221
10.3.4 开源数据库运维平台介绍 222
10.3.5 商用数据库运维平台功能概览 224
10.4 项目任务分解 230
任务10-1 安装goInception 231
任务10-2 使用goInception完成DDL语句审核 232
10.5 常见问题解决 234
10.6 课后习题 234