更新时间:2021-04-16 16:30:21
封面
版权信息
作者简介
内容简介
专家赞誉
前言
读者服务
第1章 GTID
1.1 GTID的基本概念
1.1.1 GTID的作用
1.1.2 GTID的基本表示
1.1.3 server_uuid的生成
1.1.4 GTID的生成
1.1.5 GTID_EVENT和PREVIOUS_GTIDS_LOG_EVENT简介
1.1.6 gtid_executed表的作用
1.2 mysql.gtid_executed表、gtid_executed变量、gtid_purged变量的修改时机
1.2.1 定义
1.2.2 主库修改时机
1.2.3 从库修改时机
1.2.4 通用修改时机
1.2.5 通用修改时机源码函数简析
1.3 GTID模块初始化简介和参数binlog_gtid_simple_recovery
1.3.1 GTID模块初始化流程图
1.3.2 步骤解析
1.4 GTID中的运维
1.4.1 跳过一个事务
1.4.2 mysqldump导出行为的改变
1.4.3 搭建GTID AUTO_POSITION MODE的主从
1.4.4 主从切换
1.4.5 参数gitd_mode的含义
1.4.6 在线开启GTID
1.4.7 离线开启GTID
1.4.8 开启GTID的注意事项
1.4.9 统计值ONGOING_ANONYMOUS_TRANSACTION_COUNT的变更时机
1.4.10 设置MASTER_AUTO_POSITION = 1的影响
1.4.11 离线开启GTID丢失数据的测试
第2章 Event
2.1 binary log Event 的总体格式
2.1.1 引言
2.1.2 binary log综述
2.1.3 Event的总体格式
2.1.4 Event header和Event footer
2.1.5 具体解析
2.1.6 本书涉及的Event类型
2.2 重点Event之 FORMAT_DESCRIPTION_EVENT和PREVIOUS_GTIDS_LOG_EVENT
2.2.1 FORMAT_DESCRIPTION_EVENT
2.2.2 PREVIOUS_GTIDS_LOG_EVENT
2.3 重点Event之GTID_EVENT
2.3.1 GTID_EVENT的作用
2.3.2 源码重要接口
2.3.3 主体格式
2.3.4 简单解析
2.3.5 生成时机
2.3.6 ANONYMOUS_GTID_EVENT
2.3.7 GTID的三种模式
2.4 重点Event之QUERY_EVENT和MAP_EVENT
2.4.1 QUERY_EVENT
2.4.2 MAP_EVENT
2.5 重点Event之WRITE_EVENT和DELETE_EVENT
2.5.1 WRITE_EVENT
2.5.2 DELETE_EVENT
2.6 重点Event之UPDATE_EVENT和XID_EVENT
2.6.1 UPDATE_EVENT
2.6.2 XID_EVENT
2.7 参数binlog_row_image的影响
2.7.1 参数影响
2.7.2 过滤方式
2.7.3 DML Event中的标识
2.8 巧用Event发现问题
2.8.1 工具简介
2.8.2 分析长期未提交的事务
2.8.3 分析大事务
2.8.4 分析binary log中Event的生成速度
2.8.5 分析每个表生成了多少个DML Event
2.8.6 工具展示
第3章 主库
3.1 binlog cache简介
3.1.1 binlog cache综述
3.1.2 使用binlog cache的流程
3.1.3 参数binlog_cache_size的作用及其初始化
3.1.4 临时文件的分配和使用
3.1.5 参数max_binlog_cache_size的作用
3.1.6 如何观察到临时文件
3.2 事务Event的生成和写入流程
3.2.1 流程综述
3.2.2 删除阶段流程
3.2.3 提交阶段流程
3.2.4 两个注意点
3.3 MySQL层事务提交流程简析
3.3.1 参数设置
3.3.2 总体流程图
3.3.3 步骤解析第一阶段
3.3.4 步骤解析第二阶段(FLUSH阶段)
3.3.5 步骤解析第三阶段(SYNC阶段)
3.3.6 步骤解析第四阶段(COMMIT阶段)
3.3.7 步骤解析第五阶段
3.3.8 提交阶段的注意点
3.4 基于WRITESET的并行复制方式
3.4.1 奇怪的last commit
3.4.2 WRITESET是什么