MySQL 8 组复制完全指南
目录
### 文章目录
- [MySQL 8 组复制完全指南](#文章目录 MySQL 8 组复制完全指南 目录 @[toc] 一、组复制概述 1.1 什么是组复制 1.2 核心特性 1.3 与传统复制对比 二、核心原理 2.1 Paxos 协议基础 2.2 事务处理流程 2.3 冲突检测机制 三、架构模式 3.1 单主模式(Single-Primary Mode) 3.2 多主模式(Multi-Primary Mode) 3.3 模式切换 四、环境要求 4.1 系统要求 4.2 必需配置参数 4.3 可选优化参数 五、配置实战 5.1 三节点集群部署 环境规划 步骤一:配置各节点 my.cnf 步骤二:创建复制用户 步骤三:启动组复制 步骤四:验证集群状态 5.2 测试复制功能 5.3 测试故障转移 六、运维管理 6.1 常用管理命令 6.2 添加新节点 6.3 移除节点 七、故障处理 7.1 常见问题诊断 问题1:节点无法加入组 问题2:事务提交失败 问题3:节点被驱逐 7.2 数据恢复场景 场景1:单节点数据损坏 场景2:多数节点宕机 八、性能优化 8.1 网络优化 8.2 流量控制 8.3 一致性级别选择 8.4 监控指标 九、最佳实践 9.1 生产部署建议 9.2 安全配置 9.3 与中间件配合 9.4 适用场景总结 9.5 不适用场景 附录:配置参数速查表 核心参数 性能参数)
- [目录](#文章目录 MySQL 8 组复制完全指南 目录 @[toc] 一、组复制概述 1.1 什么是组复制 1.2 核心特性 1.3 与传统复制对比 二、核心原理 2.1 Paxos 协议基础 2.2 事务处理流程 2.3 冲突检测机制 三、架构模式 3.1 单主模式(Single-Primary Mode) 3.2 多主模式(Multi-Primary Mode) 3.3 模式切换 四、环境要求 4.1 系统要求 4.2 必需配置参数 4.3 可选优化参数 五、配置实战 5.1 三节点集群部署 环境规划 步骤一:配置各节点 my.cnf 步骤二:创建复制用户 步骤三:启动组复制 步骤四:验证集群状态 5.2 测试复制功能 5.3 测试故障转移 六、运维管理 6.1 常用管理命令 6.2 添加新节点 6.3 移除节点 七、故障处理 7.1 常见问题诊断 问题1:节点无法加入组 问题2:事务提交失败 问题3:节点被驱逐 7.2 数据恢复场景 场景1:单节点数据损坏 场景2:多数节点宕机 八、性能优化 8.1 网络优化 8.2 流量控制 8.3 一致性级别选择 8.4 监控指标 九、最佳实践 9.1 生产部署建议 9.2 安全配置 9.3 与中间件配合 9.4 适用场景总结 9.5 不适用场景 附录:配置参数速查表 核心参数 性能参数)
- [@[toc]](#文章目录 MySQL 8 组复制完全指南 目录 @[toc] 一、组复制概述 1.1 什么是组复制 1.2 核心特性 1.3 与传统复制对比 二、核心原理 2.1 Paxos 协议基础 2.2 事务处理流程 2.3 冲突检测机制 三、架构模式 3.1 单主模式(Single-Primary Mode) 3.2 多主模式(Multi-Primary Mode) 3.3 模式切换 四、环境要求 4.1 系统要求 4.2 必需配置参数 4.3 可选优化参数 五、配置实战 5.1 三节点集群部署 环境规划 步骤一:配置各节点 my.cnf 步骤二:创建复制用户 步骤三:启动组复制 步骤四:验证集群状态 5.2 测试复制功能 5.3 测试故障转移 六、运维管理 6.1 常用管理命令 6.2 添加新节点 6.3 移除节点 七、故障处理 7.1 常见问题诊断 问题1:节点无法加入组 问题2:事务提交失败 问题3:节点被驱逐 7.2 数据恢复场景 场景1:单节点数据损坏 场景2:多数节点宕机 八、性能优化 8.1 网络优化 8.2 流量控制 8.3 一致性级别选择 8.4 监控指标 九、最佳实践 9.1 生产部署建议 9.2 安全配置 9.3 与中间件配合 9.4 适用场景总结 9.5 不适用场景 附录:配置参数速查表 核心参数 性能参数)
- [一、组复制概述](#文章目录 MySQL 8 组复制完全指南 目录 @[toc] 一、组复制概述 1.1 什么是组复制 1.2 核心特性 1.3 与传统复制对比 二、核心原理 2.1 Paxos 协议基础 2.2 事务处理流程 2.3 冲突检测机制 三、架构模式 3.1 单主模式(Single-Primary Mode) 3.2 多主模式(Multi-Primary Mode) 3.3 模式切换 四、环境要求 4.1 系统要求 4.2 必需配置参数 4.3 可选优化参数 五、配置实战 5.1 三节点集群部署 环境规划 步骤一:配置各节点 my.cnf 步骤二:创建复制用户 步骤三:启动组复制 步骤四:验证集群状态 5.2 测试复制功能 5.3 测试故障转移 六、运维管理 6.1 常用管理命令 6.2 添加新节点 6.3 移除节点 七、故障处理 7.1 常见问题诊断 问题1:节点无法加入组 问题2:事务提交失败 问题3:节点被驱逐 7.2 数据恢复场景 场景1:单节点数据损坏 场景2:多数节点宕机 八、性能优化 8.1 网络优化 8.2 流量控制 8.3 一致性级别选择 8.4 监控指标 九、最佳实践 9.1 生产部署建议 9.2 安全配置 9.3 与中间件配合 9.4 适用场景总结 9.5 不适用场景 附录:配置参数速查表 核心参数 性能参数)
- [1.1 什么是组复制](#文章目录 MySQL 8 组复制完全指南 目录 @[toc] 一、组复制概述 1.1 什么是组复制 1.2 核心特性 1.3 与传统复制对比 二、核心原理 2.1 Paxos 协议基础 2.2 事务处理流程 2.3 冲突检测机制 三、架构模式 3.1 单主模式(Single-Primary Mode) 3.2 多主模式(Multi-Primary Mode) 3.3 模式切换 四、环境要求 4.1 系统要求 4.2 必需配置参数 4.3 可选优化参数 五、配置实战 5.1 三节点集群部署 环境规划 步骤一:配置各节点 my.cnf 步骤二:创建复制用户 步骤三:启动组复制 步骤四:验证集群状态 5.2 测试复制功能 5.3 测试故障转移 六、运维管理 6.1 常用管理命令 6.2 添加新节点 6.3 移除节点 七、故障处理 7.1 常见问题诊断 问题1:节点无法加入组 问题2:事务提交失败 问题3:节点被驱逐 7.2 数据恢复场景 场景1:单节点数据损坏 场景2:多数节点宕机 八、性能优化 8.1 网络优化 8.2 流量控制 8.3 一致性级别选择 8.4 监控指标 九、最佳实践 9.1 生产部署建议 9.2 安全配置 9.3 与中间件配合 9.4 适用场景总结 9.5 不适用场景 附录:配置参数速查表 核心参数 性能参数)
- [1.2 核心特性](#文章目录 MySQL 8 组复制完全指南 目录 @[toc] 一、组复制概述 1.1 什么是组复制 1.2 核心特性 1.3 与传统复制对比 二、核心原理 2.1 Paxos 协议基础 2.2 事务处理流程 2.3 冲突检测机制 三、架构模式 3.1 单主模式(Single-Primary Mode) 3.2 多主模式(Multi-Primary Mode) 3.3 模式切换 四、环境要求 4.1 系统要求 4.2 必需配置参数 4.3 可选优化参数 五、配置实战 5.1 三节点集群部署 环境规划 步骤一:配置各节点 my.cnf 步骤二:创建复制用户 步骤三:启动组复制 步骤四:验证集群状态 5.2 测试复制功能 5.3 测试故障转移 六、运维管理 6.1 常用管理命令 6.2 添加新节点 6.3 移除节点 七、故障处理 7.1 常见问题诊断 问题1:节点无法加入组 问题2:事务提交失败 问题3:节点被驱逐 7.2 数据恢复场景 场景1:单节点数据损坏 场景2:多数节点宕机 八、性能优化 8.1 网络优化 8.2 流量控制 8.3 一致性级别选择 8.4 监控指标 九、最佳实践 9.1 生产部署建议 9.2 安全配置 9.3 与中间件配合 9.4 适用场景总结 9.5 不适用场景 附录:配置参数速查表 核心参数 性能参数)
- [1.3 与传统复制对比](#文章目录 MySQL 8 组复制完全指南 目录 @[toc] 一、组复制概述 1.1 什么是组复制 1.2 核心特性 1.3 与传统复制对比 二、核心原理 2.1 Paxos 协议基础 2.2 事务处理流程 2.3 冲突检测机制 三、架构模式 3.1 单主模式(Single-Primary Mode) 3.2 多主模式(Multi-Primary Mode) 3.3 模式切换 四、环境要求 4.1 系统要求 4.2 必需配置参数 4.3 可选优化参数 五、配置实战 5.1 三节点集群部署 环境规划 步骤一:配置各节点 my.cnf 步骤二:创建复制用户 步骤三:启动组复制 步骤四:验证集群状态 5.2 测试复制功能 5.3 测试故障转移 六、运维管理 6.1 常用管理命令 6.2 添加新节点 6.3 移除节点 七、故障处理 7.1 常见问题诊断 问题1:节点无法加入组 问题2:事务提交失败 问题3:节点被驱逐 7.2 数据恢复场景 场景1:单节点数据损坏 场景2:多数节点宕机 八、性能优化 8.1 网络优化 8.2 流量控制 8.3 一致性级别选择 8.4 监控指标 九、最佳实践 9.1 生产部署建议 9.2 安全配置 9.3 与中间件配合 9.4 适用场景总结 9.5 不适用场景 附录:配置参数速查表 核心参数 性能参数)
- [二、核心原理](#文章目录 MySQL 8 组复制完全指南 目录 @[toc] 一、组复制概述 1.1 什么是组复制 1.2 核心特性 1.3 与传统复制对比 二、核心原理 2.1 Paxos 协议基础 2.2 事务处理流程 2.3 冲突检测机制 三、架构模式 3.1 单主模式(Single-Primary Mode) 3.2 多主模式(Multi-Primary Mode) 3.3 模式切换 四、环境要求 4.1 系统要求 4.2 必需配置参数 4.3 可选优化参数 五、配置实战 5.1 三节点集群部署 环境规划 步骤一:配置各节点 my.cnf 步骤二:创建复制用户 步骤三:启动组复制 步骤四:验证集群状态 5.2 测试复制功能 5.3 测试故障转移 六、运维管理 6.1 常用管理命令 6.2 添加新节点 6.3 移除节点 七、故障处理 7.1 常见问题诊断 问题1:节点无法加入组 问题2:事务提交失败 问题3:节点被驱逐 7.2 数据恢复场景 场景1:单节点数据损坏 场景2:多数节点宕机 八、性能优化 8.1 网络优化 8.2 流量控制 8.3 一致性级别选择 8.4 监控指标 九、最佳实践 9.1 生产部署建议 9.2 安全配置 9.3 与中间件配合 9.4 适用场景总结 9.5 不适用场景 附录:配置参数速查表 核心参数 性能参数)
- [2.1 Paxos 协议基础](#文章目录 MySQL 8 组复制完全指南 目录 @[toc] 一、组复制概述 1.1 什么是组复制 1.2 核心特性 1.3 与传统复制对比 二、核心原理 2.1 Paxos 协议基础 2.2 事务处理流程 2.3 冲突检测机制 三、架构模式 3.1 单主模式(Single-Primary Mode) 3.2 多主模式(Multi-Primary Mode) 3.3 模式切换 四、环境要求 4.1 系统要求 4.2 必需配置参数 4.3 可选优化参数 五、配置实战 5.1 三节点集群部署 环境规划 步骤一:配置各节点 my.cnf 步骤二:创建复制用户 步骤三:启动组复制 步骤四:验证集群状态 5.2 测试复制功能 5.3 测试故障转移 六、运维管理 6.1 常用管理命令 6.2 添加新节点 6.3 移除节点 七、故障处理 7.1 常见问题诊断 问题1:节点无法加入组 问题2:事务提交失败 问题3:节点被驱逐 7.2 数据恢复场景 场景1:单节点数据损坏 场景2:多数节点宕机 八、性能优化 8.1 网络优化 8.2 流量控制 8.3 一致性级别选择 8.4 监控指标 九、最佳实践 9.1 生产部署建议 9.2 安全配置 9.3 与中间件配合 9.4 适用场景总结 9.5 不适用场景 附录:配置参数速查表 核心参数 性能参数)
- [2.2 事务处理流程](#文章目录 MySQL 8 组复制完全指南 目录 @[toc] 一、组复制概述 1.1 什么是组复制 1.2 核心特性 1.3 与传统复制对比 二、核心原理 2.1 Paxos 协议基础 2.2 事务处理流程 2.3 冲突检测机制 三、架构模式 3.1 单主模式(Single-Primary Mode) 3.2 多主模式(Multi-Primary Mode) 3.3 模式切换 四、环境要求 4.1 系统要求 4.2 必需配置参数 4.3 可选优化参数 五、配置实战 5.1 三节点集群部署 环境规划 步骤一:配置各节点 my.cnf 步骤二:创建复制用户 步骤三:启动组复制 步骤四:验证集群状态 5.2 测试复制功能 5.3 测试故障转移 六、运维管理 6.1 常用管理命令 6.2 添加新节点 6.3 移除节点 七、故障处理 7.1 常见问题诊断 问题1:节点无法加入组 问题2:事务提交失败 问题3:节点被驱逐 7.2 数据恢复场景 场景1:单节点数据损坏 场景2:多数节点宕机 八、性能优化 8.1 网络优化 8.2 流量控制 8.3 一致性级别选择 8.4 监控指标 九、最佳实践 9.1 生产部署建议 9.2 安全配置 9.3 与中间件配合 9.4 适用场景总结 9.5 不适用场景 附录:配置参数速查表 核心参数 性能参数)
- [2.3 冲突检测机制](#文章目录 MySQL 8 组复制完全指南 目录 @[toc] 一、组复制概述 1.1 什么是组复制 1.2 核心特性 1.3 与传统复制对比 二、核心原理 2.1 Paxos 协议基础 2.2 事务处理流程 2.3 冲突检测机制 三、架构模式 3.1 单主模式(Single-Primary Mode) 3.2 多主模式(Multi-Primary Mode) 3.3 模式切换 四、环境要求 4.1 系统要求 4.2 必需配置参数 4.3 可选优化参数 五、配置实战 5.1 三节点集群部署 环境规划 步骤一:配置各节点 my.cnf 步骤二:创建复制用户 步骤三:启动组复制 步骤四:验证集群状态 5.2 测试复制功能 5.3 测试故障转移 六、运维管理 6.1 常用管理命令 6.2 添加新节点 6.3 移除节点 七、故障处理 7.1 常见问题诊断 问题1:节点无法加入组 问题2:事务提交失败 问题3:节点被驱逐 7.2 数据恢复场景 场景1:单节点数据损坏 场景2:多数节点宕机 八、性能优化 8.1 网络优化 8.2 流量控制 8.3 一致性级别选择 8.4 监控指标 九、最佳实践 9.1 生产部署建议 9.2 安全配置 9.3 与中间件配合 9.4 适用场景总结 9.5 不适用场景 附录:配置参数速查表 核心参数 性能参数)
- [三、架构模式](#文章目录 MySQL 8 组复制完全指南 目录 @[toc] 一、组复制概述 1.1 什么是组复制 1.2 核心特性 1.3 与传统复制对比 二、核心原理 2.1 Paxos 协议基础 2.2 事务处理流程 2.3 冲突检测机制 三、架构模式 3.1 单主模式(Single-Primary Mode) 3.2 多主模式(Multi-Primary Mode) 3.3 模式切换 四、环境要求 4.1 系统要求 4.2 必需配置参数 4.3 可选优化参数 五、配置实战 5.1 三节点集群部署 环境规划 步骤一:配置各节点 my.cnf 步骤二:创建复制用户 步骤三:启动组复制 步骤四:验证集群状态 5.2 测试复制功能 5.3 测试故障转移 六、运维管理 6.1 常用管理命令 6.2 添加新节点 6.3 移除节点 七、故障处理 7.1 常见问题诊断 问题1:节点无法加入组 问题2:事务提交失败 问题3:节点被驱逐 7.2 数据恢复场景 场景1:单节点数据损坏 场景2:多数节点宕机 八、性能优化 8.1 网络优化 8.2 流量控制 8.3 一致性级别选择 8.4 监控指标 九、最佳实践 9.1 生产部署建议 9.2 安全配置 9.3 与中间件配合 9.4 适用场景总结 9.5 不适用场景 附录:配置参数速查表 核心参数 性能参数)
- [3.1 单主模式(Single-Primary Mode)](#文章目录 MySQL 8 组复制完全指南 目录 @[toc] 一、组复制概述 1.1 什么是组复制 1.2 核心特性 1.3 与传统复制对比 二、核心原理 2.1 Paxos 协议基础 2.2 事务处理流程 2.3 冲突检测机制 三、架构模式 3.1 单主模式(Single-Primary Mode) 3.2 多主模式(Multi-Primary Mode) 3.3 模式切换 四、环境要求 4.1 系统要求 4.2 必需配置参数 4.3 可选优化参数 五、配置实战 5.1 三节点集群部署 环境规划 步骤一:配置各节点 my.cnf 步骤二:创建复制用户 步骤三:启动组复制 步骤四:验证集群状态 5.2 测试复制功能 5.3 测试故障转移 六、运维管理 6.1 常用管理命令 6.2 添加新节点 6.3 移除节点 七、故障处理 7.1 常见问题诊断 问题1:节点无法加入组 问题2:事务提交失败 问题3:节点被驱逐 7.2 数据恢复场景 场景1:单节点数据损坏 场景2:多数节点宕机 八、性能优化 8.1 网络优化 8.2 流量控制 8.3 一致性级别选择 8.4 监控指标 九、最佳实践 9.1 生产部署建议 9.2 安全配置 9.3 与中间件配合 9.4 适用场景总结 9.5 不适用场景 附录:配置参数速查表 核心参数 性能参数)
- [3.2 多主模式(Multi-Primary Mode)](#文章目录 MySQL 8 组复制完全指南 目录 @[toc] 一、组复制概述 1.1 什么是组复制 1.2 核心特性 1.3 与传统复制对比 二、核心原理 2.1 Paxos 协议基础 2.2 事务处理流程 2.3 冲突检测机制 三、架构模式 3.1 单主模式(Single-Primary Mode) 3.2 多主模式(Multi-Primary Mode) 3.3 模式切换 四、环境要求 4.1 系统要求 4.2 必需配置参数 4.3 可选优化参数 五、配置实战 5.1 三节点集群部署 环境规划 步骤一:配置各节点 my.cnf 步骤二:创建复制用户 步骤三:启动组复制 步骤四:验证集群状态 5.2 测试复制功能 5.3 测试故障转移 六、运维管理 6.1 常用管理命令 6.2 添加新节点 6.3 移除节点 七、故障处理 7.1 常见问题诊断 问题1:节点无法加入组 问题2:事务提交失败 问题3:节点被驱逐 7.2 数据恢复场景 场景1:单节点数据损坏 场景2:多数节点宕机 八、性能优化 8.1 网络优化 8.2 流量控制 8.3 一致性级别选择 8.4 监控指标 九、最佳实践 9.1 生产部署建议 9.2 安全配置 9.3 与中间件配合 9.4 适用场景总结 9.5 不适用场景 附录:配置参数速查表 核心参数 性能参数)
- [3.3 模式切换](#文章目录 MySQL 8 组复制完全指南 目录 @[toc] 一、组复制概述 1.1 什么是组复制 1.2 核心特性 1.3 与传统复制对比 二、核心原理 2.1 Paxos 协议基础 2.2 事务处理流程 2.3 冲突检测机制 三、架构模式 3.1 单主模式(Single-Primary Mode) 3.2 多主模式(Multi-Primary Mode) 3.3 模式切换 四、环境要求 4.1 系统要求 4.2 必需配置参数 4.3 可选优化参数 五、配置实战 5.1 三节点集群部署 环境规划 步骤一:配置各节点 my.cnf 步骤二:创建复制用户 步骤三:启动组复制 步骤四:验证集群状态 5.2 测试复制功能 5.3 测试故障转移 六、运维管理 6.1 常用管理命令 6.2 添加新节点 6.3 移除节点 七、故障处理 7.1 常见问题诊断 问题1:节点无法加入组 问题2:事务提交失败 问题3:节点被驱逐 7.2 数据恢复场景 场景1:单节点数据损坏 场景2:多数节点宕机 八、性能优化 8.1 网络优化 8.2 流量控制 8.3 一致性级别选择 8.4 监控指标 九、最佳实践 9.1 生产部署建议 9.2 安全配置 9.3 与中间件配合 9.4 适用场景总结 9.5 不适用场景 附录:配置参数速查表 核心参数 性能参数)
- [四、环境要求](#文章目录 MySQL 8 组复制完全指南 目录 @[toc] 一、组复制概述 1.1 什么是组复制 1.2 核心特性 1.3 与传统复制对比 二、核心原理 2.1 Paxos 协议基础 2.2 事务处理流程 2.3 冲突检测机制 三、架构模式 3.1 单主模式(Single-Primary Mode) 3.2 多主模式(Multi-Primary Mode) 3.3 模式切换 四、环境要求 4.1 系统要求 4.2 必需配置参数 4.3 可选优化参数 五、配置实战 5.1 三节点集群部署 环境规划 步骤一:配置各节点 my.cnf 步骤二:创建复制用户 步骤三:启动组复制 步骤四:验证集群状态 5.2 测试复制功能 5.3 测试故障转移 六、运维管理 6.1 常用管理命令 6.2 添加新节点 6.3 移除节点 七、故障处理 7.1 常见问题诊断 问题1:节点无法加入组 问题2:事务提交失败 问题3:节点被驱逐 7.2 数据恢复场景 场景1:单节点数据损坏 场景2:多数节点宕机 八、性能优化 8.1 网络优化 8.2 流量控制 8.3 一致性级别选择 8.4 监控指标 九、最佳实践 9.1 生产部署建议 9.2 安全配置 9.3 与中间件配合 9.4 适用场景总结 9.5 不适用场景 附录:配置参数速查表 核心参数 性能参数)
- [4.1 系统要求](#文章目录 MySQL 8 组复制完全指南 目录 @[toc] 一、组复制概述 1.1 什么是组复制 1.2 核心特性 1.3 与传统复制对比 二、核心原理 2.1 Paxos 协议基础 2.2 事务处理流程 2.3 冲突检测机制 三、架构模式 3.1 单主模式(Single-Primary Mode) 3.2 多主模式(Multi-Primary Mode) 3.3 模式切换 四、环境要求 4.1 系统要求 4.2 必需配置参数 4.3 可选优化参数 五、配置实战 5.1 三节点集群部署 环境规划 步骤一:配置各节点 my.cnf 步骤二:创建复制用户 步骤三:启动组复制 步骤四:验证集群状态 5.2 测试复制功能 5.3 测试故障转移 六、运维管理 6.1 常用管理命令 6.2 添加新节点 6.3 移除节点 七、故障处理 7.1 常见问题诊断 问题1:节点无法加入组 问题2:事务提交失败 问题3:节点被驱逐 7.2 数据恢复场景 场景1:单节点数据损坏 场景2:多数节点宕机 八、性能优化 8.1 网络优化 8.2 流量控制 8.3 一致性级别选择 8.4 监控指标 九、最佳实践 9.1 生产部署建议 9.2 安全配置 9.3 与中间件配合 9.4 适用场景总结 9.5 不适用场景 附录:配置参数速查表 核心参数 性能参数)
- [4.2 必需配置参数](#文章目录 MySQL 8 组复制完全指南 目录 @[toc] 一、组复制概述 1.1 什么是组复制 1.2 核心特性 1.3 与传统复制对比 二、核心原理 2.1 Paxos 协议基础 2.2 事务处理流程 2.3 冲突检测机制 三、架构模式 3.1 单主模式(Single-Primary Mode) 3.2 多主模式(Multi-Primary Mode) 3.3 模式切换 四、环境要求 4.1 系统要求 4.2 必需配置参数 4.3 可选优化参数 五、配置实战 5.1 三节点集群部署 环境规划 步骤一:配置各节点 my.cnf 步骤二:创建复制用户 步骤三:启动组复制 步骤四:验证集群状态 5.2 测试复制功能 5.3 测试故障转移 六、运维管理 6.1 常用管理命令 6.2 添加新节点 6.3 移除节点 七、故障处理 7.1 常见问题诊断 问题1:节点无法加入组 问题2:事务提交失败 问题3:节点被驱逐 7.2 数据恢复场景 场景1:单节点数据损坏 场景2:多数节点宕机 八、性能优化 8.1 网络优化 8.2 流量控制 8.3 一致性级别选择 8.4 监控指标 九、最佳实践 9.1 生产部署建议 9.2 安全配置 9.3 与中间件配合 9.4 适用场景总结 9.5 不适用场景 附录:配置参数速查表 核心参数 性能参数)
- [4.3 可选优化参数](#文章目录 MySQL 8 组复制完全指南 目录 @[toc] 一、组复制概述 1.1 什么是组复制 1.2 核心特性 1.3 与传统复制对比 二、核心原理 2.1 Paxos 协议基础 2.2 事务处理流程 2.3 冲突检测机制 三、架构模式 3.1 单主模式(Single-Primary Mode) 3.2 多主模式(Multi-Primary Mode) 3.3 模式切换 四、环境要求 4.1 系统要求 4.2 必需配置参数 4.3 可选优化参数 五、配置实战 5.1 三节点集群部署 环境规划 步骤一:配置各节点 my.cnf 步骤二:创建复制用户 步骤三:启动组复制 步骤四:验证集群状态 5.2 测试复制功能 5.3 测试故障转移 六、运维管理 6.1 常用管理命令 6.2 添加新节点 6.3 移除节点 七、故障处理 7.1 常见问题诊断 问题1:节点无法加入组 问题2:事务提交失败 问题3:节点被驱逐 7.2 数据恢复场景 场景1:单节点数据损坏 场景2:多数节点宕机 八、性能优化 8.1 网络优化 8.2 流量控制 8.3 一致性级别选择 8.4 监控指标 九、最佳实践 9.1 生产部署建议 9.2 安全配置 9.3 与中间件配合 9.4 适用场景总结 9.5 不适用场景 附录:配置参数速查表 核心参数 性能参数)
- [五、配置实战](#文章目录 MySQL 8 组复制完全指南 目录 @[toc] 一、组复制概述 1.1 什么是组复制 1.2 核心特性 1.3 与传统复制对比 二、核心原理 2.1 Paxos 协议基础 2.2 事务处理流程 2.3 冲突检测机制 三、架构模式 3.1 单主模式(Single-Primary Mode) 3.2 多主模式(Multi-Primary Mode) 3.3 模式切换 四、环境要求 4.1 系统要求 4.2 必需配置参数 4.3 可选优化参数 五、配置实战 5.1 三节点集群部署 环境规划 步骤一:配置各节点 my.cnf 步骤二:创建复制用户 步骤三:启动组复制 步骤四:验证集群状态 5.2 测试复制功能 5.3 测试故障转移 六、运维管理 6.1 常用管理命令 6.2 添加新节点 6.3 移除节点 七、故障处理 7.1 常见问题诊断 问题1:节点无法加入组 问题2:事务提交失败 问题3:节点被驱逐 7.2 数据恢复场景 场景1:单节点数据损坏 场景2:多数节点宕机 八、性能优化 8.1 网络优化 8.2 流量控制 8.3 一致性级别选择 8.4 监控指标 九、最佳实践 9.1 生产部署建议 9.2 安全配置 9.3 与中间件配合 9.4 适用场景总结 9.5 不适用场景 附录:配置参数速查表 核心参数 性能参数)
- [5.1 三节点集群部署](#文章目录 MySQL 8 组复制完全指南 目录 @[toc] 一、组复制概述 1.1 什么是组复制 1.2 核心特性 1.3 与传统复制对比 二、核心原理 2.1 Paxos 协议基础 2.2 事务处理流程 2.3 冲突检测机制 三、架构模式 3.1 单主模式(Single-Primary Mode) 3.2 多主模式(Multi-Primary Mode) 3.3 模式切换 四、环境要求 4.1 系统要求 4.2 必需配置参数 4.3 可选优化参数 五、配置实战 5.1 三节点集群部署 环境规划 步骤一:配置各节点 my.cnf 步骤二:创建复制用户 步骤三:启动组复制 步骤四:验证集群状态 5.2 测试复制功能 5.3 测试故障转移 六、运维管理 6.1 常用管理命令 6.2 添加新节点 6.3 移除节点 七、故障处理 7.1 常见问题诊断 问题1:节点无法加入组 问题2:事务提交失败 问题3:节点被驱逐 7.2 数据恢复场景 场景1:单节点数据损坏 场景2:多数节点宕机 八、性能优化 8.1 网络优化 8.2 流量控制 8.3 一致性级别选择 8.4 监控指标 九、最佳实践 9.1 生产部署建议 9.2 安全配置 9.3 与中间件配合 9.4 适用场景总结 9.5 不适用场景 附录:配置参数速查表 核心参数 性能参数)
- [环境规划](#文章目录 MySQL 8 组复制完全指南 目录 @[toc] 一、组复制概述 1.1 什么是组复制 1.2 核心特性 1.3 与传统复制对比 二、核心原理 2.1 Paxos 协议基础 2.2 事务处理流程 2.3 冲突检测机制 三、架构模式 3.1 单主模式(Single-Primary Mode) 3.2 多主模式(Multi-Primary Mode) 3.3 模式切换 四、环境要求 4.1 系统要求 4.2 必需配置参数 4.3 可选优化参数 五、配置实战 5.1 三节点集群部署 环境规划 步骤一:配置各节点 my.cnf 步骤二:创建复制用户 步骤三:启动组复制 步骤四:验证集群状态 5.2 测试复制功能 5.3 测试故障转移 六、运维管理 6.1 常用管理命令 6.2 添加新节点 6.3 移除节点 七、故障处理 7.1 常见问题诊断 问题1:节点无法加入组 问题2:事务提交失败 问题3:节点被驱逐 7.2 数据恢复场景 场景1:单节点数据损坏 场景2:多数节点宕机 八、性能优化 8.1 网络优化 8.2 流量控制 8.3 一致性级别选择 8.4 监控指标 九、最佳实践 9.1 生产部署建议 9.2 安全配置 9.3 与中间件配合 9.4 适用场景总结 9.5 不适用场景 附录:配置参数速查表 核心参数 性能参数)
- [步骤一:配置各节点 my.cnf](#文章目录 MySQL 8 组复制完全指南 目录 @[toc] 一、组复制概述 1.1 什么是组复制 1.2 核心特性 1.3 与传统复制对比 二、核心原理 2.1 Paxos 协议基础 2.2 事务处理流程 2.3 冲突检测机制 三、架构模式 3.1 单主模式(Single-Primary Mode) 3.2 多主模式(Multi-Primary Mode) 3.3 模式切换 四、环境要求 4.1 系统要求 4.2 必需配置参数 4.3 可选优化参数 五、配置实战 5.1 三节点集群部署 环境规划 步骤一:配置各节点 my.cnf 步骤二:创建复制用户 步骤三:启动组复制 步骤四:验证集群状态 5.2 测试复制功能 5.3 测试故障转移 六、运维管理 6.1 常用管理命令 6.2 添加新节点 6.3 移除节点 七、故障处理 7.1 常见问题诊断 问题1:节点无法加入组 问题2:事务提交失败 问题3:节点被驱逐 7.2 数据恢复场景 场景1:单节点数据损坏 场景2:多数节点宕机 八、性能优化 8.1 网络优化 8.2 流量控制 8.3 一致性级别选择 8.4 监控指标 九、最佳实践 9.1 生产部署建议 9.2 安全配置 9.3 与中间件配合 9.4 适用场景总结 9.5 不适用场景 附录:配置参数速查表 核心参数 性能参数)
- [步骤二:创建复制用户](#文章目录 MySQL 8 组复制完全指南 目录 @[toc] 一、组复制概述 1.1 什么是组复制 1.2 核心特性 1.3 与传统复制对比 二、核心原理 2.1 Paxos 协议基础 2.2 事务处理流程 2.3 冲突检测机制 三、架构模式 3.1 单主模式(Single-Primary Mode) 3.2 多主模式(Multi-Primary Mode) 3.3 模式切换 四、环境要求 4.1 系统要求 4.2 必需配置参数 4.3 可选优化参数 五、配置实战 5.1 三节点集群部署 环境规划 步骤一:配置各节点 my.cnf 步骤二:创建复制用户 步骤三:启动组复制 步骤四:验证集群状态 5.2 测试复制功能 5.3 测试故障转移 六、运维管理 6.1 常用管理命令 6.2 添加新节点 6.3 移除节点 七、故障处理 7.1 常见问题诊断 问题1:节点无法加入组 问题2:事务提交失败 问题3:节点被驱逐 7.2 数据恢复场景 场景1:单节点数据损坏 场景2:多数节点宕机 八、性能优化 8.1 网络优化 8.2 流量控制 8.3 一致性级别选择 8.4 监控指标 九、最佳实践 9.1 生产部署建议 9.2 安全配置 9.3 与中间件配合 9.4 适用场景总结 9.5 不适用场景 附录:配置参数速查表 核心参数 性能参数)
- [步骤三:启动组复制](#文章目录 MySQL 8 组复制完全指南 目录 @[toc] 一、组复制概述 1.1 什么是组复制 1.2 核心特性 1.3 与传统复制对比 二、核心原理 2.1 Paxos 协议基础 2.2 事务处理流程 2.3 冲突检测机制 三、架构模式 3.1 单主模式(Single-Primary Mode) 3.2 多主模式(Multi-Primary Mode) 3.3 模式切换 四、环境要求 4.1 系统要求 4.2 必需配置参数 4.3 可选优化参数 五、配置实战 5.1 三节点集群部署 环境规划 步骤一:配置各节点 my.cnf 步骤二:创建复制用户 步骤三:启动组复制 步骤四:验证集群状态 5.2 测试复制功能 5.3 测试故障转移 六、运维管理 6.1 常用管理命令 6.2 添加新节点 6.3 移除节点 七、故障处理 7.1 常见问题诊断 问题1:节点无法加入组 问题2:事务提交失败 问题3:节点被驱逐 7.2 数据恢复场景 场景1:单节点数据损坏 场景2:多数节点宕机 八、性能优化 8.1 网络优化 8.2 流量控制 8.3 一致性级别选择 8.4 监控指标 九、最佳实践 9.1 生产部署建议 9.2 安全配置 9.3 与中间件配合 9.4 适用场景总结 9.5 不适用场景 附录:配置参数速查表 核心参数 性能参数)
- [步骤四:验证集群状态](#文章目录 MySQL 8 组复制完全指南 目录 @[toc] 一、组复制概述 1.1 什么是组复制 1.2 核心特性 1.3 与传统复制对比 二、核心原理 2.1 Paxos 协议基础 2.2 事务处理流程 2.3 冲突检测机制 三、架构模式 3.1 单主模式(Single-Primary Mode) 3.2 多主模式(Multi-Primary Mode) 3.3 模式切换 四、环境要求 4.1 系统要求 4.2 必需配置参数 4.3 可选优化参数 五、配置实战 5.1 三节点集群部署 环境规划 步骤一:配置各节点 my.cnf 步骤二:创建复制用户 步骤三:启动组复制 步骤四:验证集群状态 5.2 测试复制功能 5.3 测试故障转移 六、运维管理 6.1 常用管理命令 6.2 添加新节点 6.3 移除节点 七、故障处理 7.1 常见问题诊断 问题1:节点无法加入组 问题2:事务提交失败 问题3:节点被驱逐 7.2 数据恢复场景 场景1:单节点数据损坏 场景2:多数节点宕机 八、性能优化 8.1 网络优化 8.2 流量控制 8.3 一致性级别选择 8.4 监控指标 九、最佳实践 9.1 生产部署建议 9.2 安全配置 9.3 与中间件配合 9.4 适用场景总结 9.5 不适用场景 附录:配置参数速查表 核心参数 性能参数)
- [5.2 测试复制功能](#文章目录 MySQL 8 组复制完全指南 目录 @[toc] 一、组复制概述 1.1 什么是组复制 1.2 核心特性 1.3 与传统复制对比 二、核心原理 2.1 Paxos 协议基础 2.2 事务处理流程 2.3 冲突检测机制 三、架构模式 3.1 单主模式(Single-Primary Mode) 3.2 多主模式(Multi-Primary Mode) 3.3 模式切换 四、环境要求 4.1 系统要求 4.2 必需配置参数 4.3 可选优化参数 五、配置实战 5.1 三节点集群部署 环境规划 步骤一:配置各节点 my.cnf 步骤二:创建复制用户 步骤三:启动组复制 步骤四:验证集群状态 5.2 测试复制功能 5.3 测试故障转移 六、运维管理 6.1 常用管理命令 6.2 添加新节点 6.3 移除节点 七、故障处理 7.1 常见问题诊断 问题1:节点无法加入组 问题2:事务提交失败 问题3:节点被驱逐 7.2 数据恢复场景 场景1:单节点数据损坏 场景2:多数节点宕机 八、性能优化 8.1 网络优化 8.2 流量控制 8.3 一致性级别选择 8.4 监控指标 九、最佳实践 9.1 生产部署建议 9.2 安全配置 9.3 与中间件配合 9.4 适用场景总结 9.5 不适用场景 附录:配置参数速查表 核心参数 性能参数)
- [5.3 测试故障转移](#文章目录 MySQL 8 组复制完全指南 目录 @[toc] 一、组复制概述 1.1 什么是组复制 1.2 核心特性 1.3 与传统复制对比 二、核心原理 2.1 Paxos 协议基础 2.2 事务处理流程 2.3 冲突检测机制 三、架构模式 3.1 单主模式(Single-Primary Mode) 3.2 多主模式(Multi-Primary Mode) 3.3 模式切换 四、环境要求 4.1 系统要求 4.2 必需配置参数 4.3 可选优化参数 五、配置实战 5.1 三节点集群部署 环境规划 步骤一:配置各节点 my.cnf 步骤二:创建复制用户 步骤三:启动组复制 步骤四:验证集群状态 5.2 测试复制功能 5.3 测试故障转移 六、运维管理 6.1 常用管理命令 6.2 添加新节点 6.3 移除节点 七、故障处理 7.1 常见问题诊断 问题1:节点无法加入组 问题2:事务提交失败 问题3:节点被驱逐 7.2 数据恢复场景 场景1:单节点数据损坏 场景2:多数节点宕机 八、性能优化 8.1 网络优化 8.2 流量控制 8.3 一致性级别选择 8.4 监控指标 九、最佳实践 9.1 生产部署建议 9.2 安全配置 9.3 与中间件配合 9.4 适用场景总结 9.5 不适用场景 附录:配置参数速查表 核心参数 性能参数)
- [六、运维管理](#文章目录 MySQL 8 组复制完全指南 目录 @[toc] 一、组复制概述 1.1 什么是组复制 1.2 核心特性 1.3 与传统复制对比 二、核心原理 2.1 Paxos 协议基础 2.2 事务处理流程 2.3 冲突检测机制 三、架构模式 3.1 单主模式(Single-Primary Mode) 3.2 多主模式(Multi-Primary Mode) 3.3 模式切换 四、环境要求 4.1 系统要求 4.2 必需配置参数 4.3 可选优化参数 五、配置实战 5.1 三节点集群部署 环境规划 步骤一:配置各节点 my.cnf 步骤二:创建复制用户 步骤三:启动组复制 步骤四:验证集群状态 5.2 测试复制功能 5.3 测试故障转移 六、运维管理 6.1 常用管理命令 6.2 添加新节点 6.3 移除节点 七、故障处理 7.1 常见问题诊断 问题1:节点无法加入组 问题2:事务提交失败 问题3:节点被驱逐 7.2 数据恢复场景 场景1:单节点数据损坏 场景2:多数节点宕机 八、性能优化 8.1 网络优化 8.2 流量控制 8.3 一致性级别选择 8.4 监控指标 九、最佳实践 9.1 生产部署建议 9.2 安全配置 9.3 与中间件配合 9.4 适用场景总结 9.5 不适用场景 附录:配置参数速查表 核心参数 性能参数)
- [6.1 常用管理命令](#文章目录 MySQL 8 组复制完全指南 目录 @[toc] 一、组复制概述 1.1 什么是组复制 1.2 核心特性 1.3 与传统复制对比 二、核心原理 2.1 Paxos 协议基础 2.2 事务处理流程 2.3 冲突检测机制 三、架构模式 3.1 单主模式(Single-Primary Mode) 3.2 多主模式(Multi-Primary Mode) 3.3 模式切换 四、环境要求 4.1 系统要求 4.2 必需配置参数 4.3 可选优化参数 五、配置实战 5.1 三节点集群部署 环境规划 步骤一:配置各节点 my.cnf 步骤二:创建复制用户 步骤三:启动组复制 步骤四:验证集群状态 5.2 测试复制功能 5.3 测试故障转移 六、运维管理 6.1 常用管理命令 6.2 添加新节点 6.3 移除节点 七、故障处理 7.1 常见问题诊断 问题1:节点无法加入组 问题2:事务提交失败 问题3:节点被驱逐 7.2 数据恢复场景 场景1:单节点数据损坏 场景2:多数节点宕机 八、性能优化 8.1 网络优化 8.2 流量控制 8.3 一致性级别选择 8.4 监控指标 九、最佳实践 9.1 生产部署建议 9.2 安全配置 9.3 与中间件配合 9.4 适用场景总结 9.5 不适用场景 附录:配置参数速查表 核心参数 性能参数)
- [6.2 添加新节点](#文章目录 MySQL 8 组复制完全指南 目录 @[toc] 一、组复制概述 1.1 什么是组复制 1.2 核心特性 1.3 与传统复制对比 二、核心原理 2.1 Paxos 协议基础 2.2 事务处理流程 2.3 冲突检测机制 三、架构模式 3.1 单主模式(Single-Primary Mode) 3.2 多主模式(Multi-Primary Mode) 3.3 模式切换 四、环境要求 4.1 系统要求 4.2 必需配置参数 4.3 可选优化参数 五、配置实战 5.1 三节点集群部署 环境规划 步骤一:配置各节点 my.cnf 步骤二:创建复制用户 步骤三:启动组复制 步骤四:验证集群状态 5.2 测试复制功能 5.3 测试故障转移 六、运维管理 6.1 常用管理命令 6.2 添加新节点 6.3 移除节点 七、故障处理 7.1 常见问题诊断 问题1:节点无法加入组 问题2:事务提交失败 问题3:节点被驱逐 7.2 数据恢复场景 场景1:单节点数据损坏 场景2:多数节点宕机 八、性能优化 8.1 网络优化 8.2 流量控制 8.3 一致性级别选择 8.4 监控指标 九、最佳实践 9.1 生产部署建议 9.2 安全配置 9.3 与中间件配合 9.4 适用场景总结 9.5 不适用场景 附录:配置参数速查表 核心参数 性能参数)
- [6.3 移除节点](#文章目录 MySQL 8 组复制完全指南 目录 @[toc] 一、组复制概述 1.1 什么是组复制 1.2 核心特性 1.3 与传统复制对比 二、核心原理 2.1 Paxos 协议基础 2.2 事务处理流程 2.3 冲突检测机制 三、架构模式 3.1 单主模式(Single-Primary Mode) 3.2 多主模式(Multi-Primary Mode) 3.3 模式切换 四、环境要求 4.1 系统要求 4.2 必需配置参数 4.3 可选优化参数 五、配置实战 5.1 三节点集群部署 环境规划 步骤一:配置各节点 my.cnf 步骤二:创建复制用户 步骤三:启动组复制 步骤四:验证集群状态 5.2 测试复制功能 5.3 测试故障转移 六、运维管理 6.1 常用管理命令 6.2 添加新节点 6.3 移除节点 七、故障处理 7.1 常见问题诊断 问题1:节点无法加入组 问题2:事务提交失败 问题3:节点被驱逐 7.2 数据恢复场景 场景1:单节点数据损坏 场景2:多数节点宕机 八、性能优化 8.1 网络优化 8.2 流量控制 8.3 一致性级别选择 8.4 监控指标 九、最佳实践 9.1 生产部署建议 9.2 安全配置 9.3 与中间件配合 9.4 适用场景总结 9.5 不适用场景 附录:配置参数速查表 核心参数 性能参数)
- [七、故障处理](#文章目录 MySQL 8 组复制完全指南 目录 @[toc] 一、组复制概述 1.1 什么是组复制 1.2 核心特性 1.3 与传统复制对比 二、核心原理 2.1 Paxos 协议基础 2.2 事务处理流程 2.3 冲突检测机制 三、架构模式 3.1 单主模式(Single-Primary Mode) 3.2 多主模式(Multi-Primary Mode) 3.3 模式切换 四、环境要求 4.1 系统要求 4.2 必需配置参数 4.3 可选优化参数 五、配置实战 5.1 三节点集群部署 环境规划 步骤一:配置各节点 my.cnf 步骤二:创建复制用户 步骤三:启动组复制 步骤四:验证集群状态 5.2 测试复制功能 5.3 测试故障转移 六、运维管理 6.1 常用管理命令 6.2 添加新节点 6.3 移除节点 七、故障处理 7.1 常见问题诊断 问题1:节点无法加入组 问题2:事务提交失败 问题3:节点被驱逐 7.2 数据恢复场景 场景1:单节点数据损坏 场景2:多数节点宕机 八、性能优化 8.1 网络优化 8.2 流量控制 8.3 一致性级别选择 8.4 监控指标 九、最佳实践 9.1 生产部署建议 9.2 安全配置 9.3 与中间件配合 9.4 适用场景总结 9.5 不适用场景 附录:配置参数速查表 核心参数 性能参数)
- [7.1 常见问题诊断](#文章目录 MySQL 8 组复制完全指南 目录 @[toc] 一、组复制概述 1.1 什么是组复制 1.2 核心特性 1.3 与传统复制对比 二、核心原理 2.1 Paxos 协议基础 2.2 事务处理流程 2.3 冲突检测机制 三、架构模式 3.1 单主模式(Single-Primary Mode) 3.2 多主模式(Multi-Primary Mode) 3.3 模式切换 四、环境要求 4.1 系统要求 4.2 必需配置参数 4.3 可选优化参数 五、配置实战 5.1 三节点集群部署 环境规划 步骤一:配置各节点 my.cnf 步骤二:创建复制用户 步骤三:启动组复制 步骤四:验证集群状态 5.2 测试复制功能 5.3 测试故障转移 六、运维管理 6.1 常用管理命令 6.2 添加新节点 6.3 移除节点 七、故障处理 7.1 常见问题诊断 问题1:节点无法加入组 问题2:事务提交失败 问题3:节点被驱逐 7.2 数据恢复场景 场景1:单节点数据损坏 场景2:多数节点宕机 八、性能优化 8.1 网络优化 8.2 流量控制 8.3 一致性级别选择 8.4 监控指标 九、最佳实践 9.1 生产部署建议 9.2 安全配置 9.3 与中间件配合 9.4 适用场景总结 9.5 不适用场景 附录:配置参数速查表 核心参数 性能参数)
- [问题1:节点无法加入组](#文章目录 MySQL 8 组复制完全指南 目录 @[toc] 一、组复制概述 1.1 什么是组复制 1.2 核心特性 1.3 与传统复制对比 二、核心原理 2.1 Paxos 协议基础 2.2 事务处理流程 2.3 冲突检测机制 三、架构模式 3.1 单主模式(Single-Primary Mode) 3.2 多主模式(Multi-Primary Mode) 3.3 模式切换 四、环境要求 4.1 系统要求 4.2 必需配置参数 4.3 可选优化参数 五、配置实战 5.1 三节点集群部署 环境规划 步骤一:配置各节点 my.cnf 步骤二:创建复制用户 步骤三:启动组复制 步骤四:验证集群状态 5.2 测试复制功能 5.3 测试故障转移 六、运维管理 6.1 常用管理命令 6.2 添加新节点 6.3 移除节点 七、故障处理 7.1 常见问题诊断 问题1:节点无法加入组 问题2:事务提交失败 问题3:节点被驱逐 7.2 数据恢复场景 场景1:单节点数据损坏 场景2:多数节点宕机 八、性能优化 8.1 网络优化 8.2 流量控制 8.3 一致性级别选择 8.4 监控指标 九、最佳实践 9.1 生产部署建议 9.2 安全配置 9.3 与中间件配合 9.4 适用场景总结 9.5 不适用场景 附录:配置参数速查表 核心参数 性能参数)
- [问题2:事务提交失败](#文章目录 MySQL 8 组复制完全指南 目录 @[toc] 一、组复制概述 1.1 什么是组复制 1.2 核心特性 1.3 与传统复制对比 二、核心原理 2.1 Paxos 协议基础 2.2 事务处理流程 2.3 冲突检测机制 三、架构模式 3.1 单主模式(Single-Primary Mode) 3.2 多主模式(Multi-Primary Mode) 3.3 模式切换 四、环境要求 4.1 系统要求 4.2 必需配置参数 4.3 可选优化参数 五、配置实战 5.1 三节点集群部署 环境规划 步骤一:配置各节点 my.cnf 步骤二:创建复制用户 步骤三:启动组复制 步骤四:验证集群状态 5.2 测试复制功能 5.3 测试故障转移 六、运维管理 6.1 常用管理命令 6.2 添加新节点 6.3 移除节点 七、故障处理 7.1 常见问题诊断 问题1:节点无法加入组 问题2:事务提交失败 问题3:节点被驱逐 7.2 数据恢复场景 场景1:单节点数据损坏 场景2:多数节点宕机 八、性能优化 8.1 网络优化 8.2 流量控制 8.3 一致性级别选择 8.4 监控指标 九、最佳实践 9.1 生产部署建议 9.2 安全配置 9.3 与中间件配合 9.4 适用场景总结 9.5 不适用场景 附录:配置参数速查表 核心参数 性能参数)
- [问题3:节点被驱逐](#文章目录 MySQL 8 组复制完全指南 目录 @[toc] 一、组复制概述 1.1 什么是组复制 1.2 核心特性 1.3 与传统复制对比 二、核心原理 2.1 Paxos 协议基础 2.2 事务处理流程 2.3 冲突检测机制 三、架构模式 3.1 单主模式(Single-Primary Mode) 3.2 多主模式(Multi-Primary Mode) 3.3 模式切换 四、环境要求 4.1 系统要求 4.2 必需配置参数 4.3 可选优化参数 五、配置实战 5.1 三节点集群部署 环境规划 步骤一:配置各节点 my.cnf 步骤二:创建复制用户 步骤三:启动组复制 步骤四:验证集群状态 5.2 测试复制功能 5.3 测试故障转移 六、运维管理 6.1 常用管理命令 6.2 添加新节点 6.3 移除节点 七、故障处理 7.1 常见问题诊断 问题1:节点无法加入组 问题2:事务提交失败 问题3:节点被驱逐 7.2 数据恢复场景 场景1:单节点数据损坏 场景2:多数节点宕机 八、性能优化 8.1 网络优化 8.2 流量控制 8.3 一致性级别选择 8.4 监控指标 九、最佳实践 9.1 生产部署建议 9.2 安全配置 9.3 与中间件配合 9.4 适用场景总结 9.5 不适用场景 附录:配置参数速查表 核心参数 性能参数)
- [7.2 数据恢复场景](#文章目录 MySQL 8 组复制完全指南 目录 @[toc] 一、组复制概述 1.1 什么是组复制 1.2 核心特性 1.3 与传统复制对比 二、核心原理 2.1 Paxos 协议基础 2.2 事务处理流程 2.3 冲突检测机制 三、架构模式 3.1 单主模式(Single-Primary Mode) 3.2 多主模式(Multi-Primary Mode) 3.3 模式切换 四、环境要求 4.1 系统要求 4.2 必需配置参数 4.3 可选优化参数 五、配置实战 5.1 三节点集群部署 环境规划 步骤一:配置各节点 my.cnf 步骤二:创建复制用户 步骤三:启动组复制 步骤四:验证集群状态 5.2 测试复制功能 5.3 测试故障转移 六、运维管理 6.1 常用管理命令 6.2 添加新节点 6.3 移除节点 七、故障处理 7.1 常见问题诊断 问题1:节点无法加入组 问题2:事务提交失败 问题3:节点被驱逐 7.2 数据恢复场景 场景1:单节点数据损坏 场景2:多数节点宕机 八、性能优化 8.1 网络优化 8.2 流量控制 8.3 一致性级别选择 8.4 监控指标 九、最佳实践 9.1 生产部署建议 9.2 安全配置 9.3 与中间件配合 9.4 适用场景总结 9.5 不适用场景 附录:配置参数速查表 核心参数 性能参数)
- [场景1:单节点数据损坏](#文章目录 MySQL 8 组复制完全指南 目录 @[toc] 一、组复制概述 1.1 什么是组复制 1.2 核心特性 1.3 与传统复制对比 二、核心原理 2.1 Paxos 协议基础 2.2 事务处理流程 2.3 冲突检测机制 三、架构模式 3.1 单主模式(Single-Primary Mode) 3.2 多主模式(Multi-Primary Mode) 3.3 模式切换 四、环境要求 4.1 系统要求 4.2 必需配置参数 4.3 可选优化参数 五、配置实战 5.1 三节点集群部署 环境规划 步骤一:配置各节点 my.cnf 步骤二:创建复制用户 步骤三:启动组复制 步骤四:验证集群状态 5.2 测试复制功能 5.3 测试故障转移 六、运维管理 6.1 常用管理命令 6.2 添加新节点 6.3 移除节点 七、故障处理 7.1 常见问题诊断 问题1:节点无法加入组 问题2:事务提交失败 问题3:节点被驱逐 7.2 数据恢复场景 场景1:单节点数据损坏 场景2:多数节点宕机 八、性能优化 8.1 网络优化 8.2 流量控制 8.3 一致性级别选择 8.4 监控指标 九、最佳实践 9.1 生产部署建议 9.2 安全配置 9.3 与中间件配合 9.4 适用场景总结 9.5 不适用场景 附录:配置参数速查表 核心参数 性能参数)
- [场景2:多数节点宕机](#文章目录 MySQL 8 组复制完全指南 目录 @[toc] 一、组复制概述 1.1 什么是组复制 1.2 核心特性 1.3 与传统复制对比 二、核心原理 2.1 Paxos 协议基础 2.2 事务处理流程 2.3 冲突检测机制 三、架构模式 3.1 单主模式(Single-Primary Mode) 3.2 多主模式(Multi-Primary Mode) 3.3 模式切换 四、环境要求 4.1 系统要求 4.2 必需配置参数 4.3 可选优化参数 五、配置实战 5.1 三节点集群部署 环境规划 步骤一:配置各节点 my.cnf 步骤二:创建复制用户 步骤三:启动组复制 步骤四:验证集群状态 5.2 测试复制功能 5.3 测试故障转移 六、运维管理 6.1 常用管理命令 6.2 添加新节点 6.3 移除节点 七、故障处理 7.1 常见问题诊断 问题1:节点无法加入组 问题2:事务提交失败 问题3:节点被驱逐 7.2 数据恢复场景 场景1:单节点数据损坏 场景2:多数节点宕机 八、性能优化 8.1 网络优化 8.2 流量控制 8.3 一致性级别选择 8.4 监控指标 九、最佳实践 9.1 生产部署建议 9.2 安全配置 9.3 与中间件配合 9.4 适用场景总结 9.5 不适用场景 附录:配置参数速查表 核心参数 性能参数)
- [八、性能优化](#文章目录 MySQL 8 组复制完全指南 目录 @[toc] 一、组复制概述 1.1 什么是组复制 1.2 核心特性 1.3 与传统复制对比 二、核心原理 2.1 Paxos 协议基础 2.2 事务处理流程 2.3 冲突检测机制 三、架构模式 3.1 单主模式(Single-Primary Mode) 3.2 多主模式(Multi-Primary Mode) 3.3 模式切换 四、环境要求 4.1 系统要求 4.2 必需配置参数 4.3 可选优化参数 五、配置实战 5.1 三节点集群部署 环境规划 步骤一:配置各节点 my.cnf 步骤二:创建复制用户 步骤三:启动组复制 步骤四:验证集群状态 5.2 测试复制功能 5.3 测试故障转移 六、运维管理 6.1 常用管理命令 6.2 添加新节点 6.3 移除节点 七、故障处理 7.1 常见问题诊断 问题1:节点无法加入组 问题2:事务提交失败 问题3:节点被驱逐 7.2 数据恢复场景 场景1:单节点数据损坏 场景2:多数节点宕机 八、性能优化 8.1 网络优化 8.2 流量控制 8.3 一致性级别选择 8.4 监控指标 九、最佳实践 9.1 生产部署建议 9.2 安全配置 9.3 与中间件配合 9.4 适用场景总结 9.5 不适用场景 附录:配置参数速查表 核心参数 性能参数)
- [8.1 网络优化](#文章目录 MySQL 8 组复制完全指南 目录 @[toc] 一、组复制概述 1.1 什么是组复制 1.2 核心特性 1.3 与传统复制对比 二、核心原理 2.1 Paxos 协议基础 2.2 事务处理流程 2.3 冲突检测机制 三、架构模式 3.1 单主模式(Single-Primary Mode) 3.2 多主模式(Multi-Primary Mode) 3.3 模式切换 四、环境要求 4.1 系统要求 4.2 必需配置参数 4.3 可选优化参数 五、配置实战 5.1 三节点集群部署 环境规划 步骤一:配置各节点 my.cnf 步骤二:创建复制用户 步骤三:启动组复制 步骤四:验证集群状态 5.2 测试复制功能 5.3 测试故障转移 六、运维管理 6.1 常用管理命令 6.2 添加新节点 6.3 移除节点 七、故障处理 7.1 常见问题诊断 问题1:节点无法加入组 问题2:事务提交失败 问题3:节点被驱逐 7.2 数据恢复场景 场景1:单节点数据损坏 场景2:多数节点宕机 八、性能优化 8.1 网络优化 8.2 流量控制 8.3 一致性级别选择 8.4 监控指标 九、最佳实践 9.1 生产部署建议 9.2 安全配置 9.3 与中间件配合 9.4 适用场景总结 9.5 不适用场景 附录:配置参数速查表 核心参数 性能参数)
- [8.2 流量控制](#文章目录 MySQL 8 组复制完全指南 目录 @[toc] 一、组复制概述 1.1 什么是组复制 1.2 核心特性 1.3 与传统复制对比 二、核心原理 2.1 Paxos 协议基础 2.2 事务处理流程 2.3 冲突检测机制 三、架构模式 3.1 单主模式(Single-Primary Mode) 3.2 多主模式(Multi-Primary Mode) 3.3 模式切换 四、环境要求 4.1 系统要求 4.2 必需配置参数 4.3 可选优化参数 五、配置实战 5.1 三节点集群部署 环境规划 步骤一:配置各节点 my.cnf 步骤二:创建复制用户 步骤三:启动组复制 步骤四:验证集群状态 5.2 测试复制功能 5.3 测试故障转移 六、运维管理 6.1 常用管理命令 6.2 添加新节点 6.3 移除节点 七、故障处理 7.1 常见问题诊断 问题1:节点无法加入组 问题2:事务提交失败 问题3:节点被驱逐 7.2 数据恢复场景 场景1:单节点数据损坏 场景2:多数节点宕机 八、性能优化 8.1 网络优化 8.2 流量控制 8.3 一致性级别选择 8.4 监控指标 九、最佳实践 9.1 生产部署建议 9.2 安全配置 9.3 与中间件配合 9.4 适用场景总结 9.5 不适用场景 附录:配置参数速查表 核心参数 性能参数)
- [8.3 一致性级别选择](#文章目录 MySQL 8 组复制完全指南 目录 @[toc] 一、组复制概述 1.1 什么是组复制 1.2 核心特性 1.3 与传统复制对比 二、核心原理 2.1 Paxos 协议基础 2.2 事务处理流程 2.3 冲突检测机制 三、架构模式 3.1 单主模式(Single-Primary Mode) 3.2 多主模式(Multi-Primary Mode) 3.3 模式切换 四、环境要求 4.1 系统要求 4.2 必需配置参数 4.3 可选优化参数 五、配置实战 5.1 三节点集群部署 环境规划 步骤一:配置各节点 my.cnf 步骤二:创建复制用户 步骤三:启动组复制 步骤四:验证集群状态 5.2 测试复制功能 5.3 测试故障转移 六、运维管理 6.1 常用管理命令 6.2 添加新节点 6.3 移除节点 七、故障处理 7.1 常见问题诊断 问题1:节点无法加入组 问题2:事务提交失败 问题3:节点被驱逐 7.2 数据恢复场景 场景1:单节点数据损坏 场景2:多数节点宕机 八、性能优化 8.1 网络优化 8.2 流量控制 8.3 一致性级别选择 8.4 监控指标 九、最佳实践 9.1 生产部署建议 9.2 安全配置 9.3 与中间件配合 9.4 适用场景总结 9.5 不适用场景 附录:配置参数速查表 核心参数 性能参数)
- [8.4 监控指标](#文章目录 MySQL 8 组复制完全指南 目录 @[toc] 一、组复制概述 1.1 什么是组复制 1.2 核心特性 1.3 与传统复制对比 二、核心原理 2.1 Paxos 协议基础 2.2 事务处理流程 2.3 冲突检测机制 三、架构模式 3.1 单主模式(Single-Primary Mode) 3.2 多主模式(Multi-Primary Mode) 3.3 模式切换 四、环境要求 4.1 系统要求 4.2 必需配置参数 4.3 可选优化参数 五、配置实战 5.1 三节点集群部署 环境规划 步骤一:配置各节点 my.cnf 步骤二:创建复制用户 步骤三:启动组复制 步骤四:验证集群状态 5.2 测试复制功能 5.3 测试故障转移 六、运维管理 6.1 常用管理命令 6.2 添加新节点 6.3 移除节点 七、故障处理 7.1 常见问题诊断 问题1:节点无法加入组 问题2:事务提交失败 问题3:节点被驱逐 7.2 数据恢复场景 场景1:单节点数据损坏 场景2:多数节点宕机 八、性能优化 8.1 网络优化 8.2 流量控制 8.3 一致性级别选择 8.4 监控指标 九、最佳实践 9.1 生产部署建议 9.2 安全配置 9.3 与中间件配合 9.4 适用场景总结 9.5 不适用场景 附录:配置参数速查表 核心参数 性能参数)
- [九、最佳实践](#文章目录 MySQL 8 组复制完全指南 目录 @[toc] 一、组复制概述 1.1 什么是组复制 1.2 核心特性 1.3 与传统复制对比 二、核心原理 2.1 Paxos 协议基础 2.2 事务处理流程 2.3 冲突检测机制 三、架构模式 3.1 单主模式(Single-Primary Mode) 3.2 多主模式(Multi-Primary Mode) 3.3 模式切换 四、环境要求 4.1 系统要求 4.2 必需配置参数 4.3 可选优化参数 五、配置实战 5.1 三节点集群部署 环境规划 步骤一:配置各节点 my.cnf 步骤二:创建复制用户 步骤三:启动组复制 步骤四:验证集群状态 5.2 测试复制功能 5.3 测试故障转移 六、运维管理 6.1 常用管理命令 6.2 添加新节点 6.3 移除节点 七、故障处理 7.1 常见问题诊断 问题1:节点无法加入组 问题2:事务提交失败 问题3:节点被驱逐 7.2 数据恢复场景 场景1:单节点数据损坏 场景2:多数节点宕机 八、性能优化 8.1 网络优化 8.2 流量控制 8.3 一致性级别选择 8.4 监控指标 九、最佳实践 9.1 生产部署建议 9.2 安全配置 9.3 与中间件配合 9.4 适用场景总结 9.5 不适用场景 附录:配置参数速查表 核心参数 性能参数)
- [9.1 生产部署建议](#文章目录 MySQL 8 组复制完全指南 目录 @[toc] 一、组复制概述 1.1 什么是组复制 1.2 核心特性 1.3 与传统复制对比 二、核心原理 2.1 Paxos 协议基础 2.2 事务处理流程 2.3 冲突检测机制 三、架构模式 3.1 单主模式(Single-Primary Mode) 3.2 多主模式(Multi-Primary Mode) 3.3 模式切换 四、环境要求 4.1 系统要求 4.2 必需配置参数 4.3 可选优化参数 五、配置实战 5.1 三节点集群部署 环境规划 步骤一:配置各节点 my.cnf 步骤二:创建复制用户 步骤三:启动组复制 步骤四:验证集群状态 5.2 测试复制功能 5.3 测试故障转移 六、运维管理 6.1 常用管理命令 6.2 添加新节点 6.3 移除节点 七、故障处理 7.1 常见问题诊断 问题1:节点无法加入组 问题2:事务提交失败 问题3:节点被驱逐 7.2 数据恢复场景 场景1:单节点数据损坏 场景2:多数节点宕机 八、性能优化 8.1 网络优化 8.2 流量控制 8.3 一致性级别选择 8.4 监控指标 九、最佳实践 9.1 生产部署建议 9.2 安全配置 9.3 与中间件配合 9.4 适用场景总结 9.5 不适用场景 附录:配置参数速查表 核心参数 性能参数)
- [9.2 安全配置](#文章目录 MySQL 8 组复制完全指南 目录 @[toc] 一、组复制概述 1.1 什么是组复制 1.2 核心特性 1.3 与传统复制对比 二、核心原理 2.1 Paxos 协议基础 2.2 事务处理流程 2.3 冲突检测机制 三、架构模式 3.1 单主模式(Single-Primary Mode) 3.2 多主模式(Multi-Primary Mode) 3.3 模式切换 四、环境要求 4.1 系统要求 4.2 必需配置参数 4.3 可选优化参数 五、配置实战 5.1 三节点集群部署 环境规划 步骤一:配置各节点 my.cnf 步骤二:创建复制用户 步骤三:启动组复制 步骤四:验证集群状态 5.2 测试复制功能 5.3 测试故障转移 六、运维管理 6.1 常用管理命令 6.2 添加新节点 6.3 移除节点 七、故障处理 7.1 常见问题诊断 问题1:节点无法加入组 问题2:事务提交失败 问题3:节点被驱逐 7.2 数据恢复场景 场景1:单节点数据损坏 场景2:多数节点宕机 八、性能优化 8.1 网络优化 8.2 流量控制 8.3 一致性级别选择 8.4 监控指标 九、最佳实践 9.1 生产部署建议 9.2 安全配置 9.3 与中间件配合 9.4 适用场景总结 9.5 不适用场景 附录:配置参数速查表 核心参数 性能参数)
- [9.3 与中间件配合](#文章目录 MySQL 8 组复制完全指南 目录 @[toc] 一、组复制概述 1.1 什么是组复制 1.2 核心特性 1.3 与传统复制对比 二、核心原理 2.1 Paxos 协议基础 2.2 事务处理流程 2.3 冲突检测机制 三、架构模式 3.1 单主模式(Single-Primary Mode) 3.2 多主模式(Multi-Primary Mode) 3.3 模式切换 四、环境要求 4.1 系统要求 4.2 必需配置参数 4.3 可选优化参数 五、配置实战 5.1 三节点集群部署 环境规划 步骤一:配置各节点 my.cnf 步骤二:创建复制用户 步骤三:启动组复制 步骤四:验证集群状态 5.2 测试复制功能 5.3 测试故障转移 六、运维管理 6.1 常用管理命令 6.2 添加新节点 6.3 移除节点 七、故障处理 7.1 常见问题诊断 问题1:节点无法加入组 问题2:事务提交失败 问题3:节点被驱逐 7.2 数据恢复场景 场景1:单节点数据损坏 场景2:多数节点宕机 八、性能优化 8.1 网络优化 8.2 流量控制 8.3 一致性级别选择 8.4 监控指标 九、最佳实践 9.1 生产部署建议 9.2 安全配置 9.3 与中间件配合 9.4 适用场景总结 9.5 不适用场景 附录:配置参数速查表 核心参数 性能参数)
- [9.4 适用场景总结](#文章目录 MySQL 8 组复制完全指南 目录 @[toc] 一、组复制概述 1.1 什么是组复制 1.2 核心特性 1.3 与传统复制对比 二、核心原理 2.1 Paxos 协议基础 2.2 事务处理流程 2.3 冲突检测机制 三、架构模式 3.1 单主模式(Single-Primary Mode) 3.2 多主模式(Multi-Primary Mode) 3.3 模式切换 四、环境要求 4.1 系统要求 4.2 必需配置参数 4.3 可选优化参数 五、配置实战 5.1 三节点集群部署 环境规划 步骤一:配置各节点 my.cnf 步骤二:创建复制用户 步骤三:启动组复制 步骤四:验证集群状态 5.2 测试复制功能 5.3 测试故障转移 六、运维管理 6.1 常用管理命令 6.2 添加新节点 6.3 移除节点 七、故障处理 7.1 常见问题诊断 问题1:节点无法加入组 问题2:事务提交失败 问题3:节点被驱逐 7.2 数据恢复场景 场景1:单节点数据损坏 场景2:多数节点宕机 八、性能优化 8.1 网络优化 8.2 流量控制 8.3 一致性级别选择 8.4 监控指标 九、最佳实践 9.1 生产部署建议 9.2 安全配置 9.3 与中间件配合 9.4 适用场景总结 9.5 不适用场景 附录:配置参数速查表 核心参数 性能参数)
- [9.5 不适用场景](#文章目录 MySQL 8 组复制完全指南 目录 @[toc] 一、组复制概述 1.1 什么是组复制 1.2 核心特性 1.3 与传统复制对比 二、核心原理 2.1 Paxos 协议基础 2.2 事务处理流程 2.3 冲突检测机制 三、架构模式 3.1 单主模式(Single-Primary Mode) 3.2 多主模式(Multi-Primary Mode) 3.3 模式切换 四、环境要求 4.1 系统要求 4.2 必需配置参数 4.3 可选优化参数 五、配置实战 5.1 三节点集群部署 环境规划 步骤一:配置各节点 my.cnf 步骤二:创建复制用户 步骤三:启动组复制 步骤四:验证集群状态 5.2 测试复制功能 5.3 测试故障转移 六、运维管理 6.1 常用管理命令 6.2 添加新节点 6.3 移除节点 七、故障处理 7.1 常见问题诊断 问题1:节点无法加入组 问题2:事务提交失败 问题3:节点被驱逐 7.2 数据恢复场景 场景1:单节点数据损坏 场景2:多数节点宕机 八、性能优化 8.1 网络优化 8.2 流量控制 8.3 一致性级别选择 8.4 监控指标 九、最佳实践 9.1 生产部署建议 9.2 安全配置 9.3 与中间件配合 9.4 适用场景总结 9.5 不适用场景 附录:配置参数速查表 核心参数 性能参数)
- [附录:配置参数速查表](#文章目录 MySQL 8 组复制完全指南 目录 @[toc] 一、组复制概述 1.1 什么是组复制 1.2 核心特性 1.3 与传统复制对比 二、核心原理 2.1 Paxos 协议基础 2.2 事务处理流程 2.3 冲突检测机制 三、架构模式 3.1 单主模式(Single-Primary Mode) 3.2 多主模式(Multi-Primary Mode) 3.3 模式切换 四、环境要求 4.1 系统要求 4.2 必需配置参数 4.3 可选优化参数 五、配置实战 5.1 三节点集群部署 环境规划 步骤一:配置各节点 my.cnf 步骤二:创建复制用户 步骤三:启动组复制 步骤四:验证集群状态 5.2 测试复制功能 5.3 测试故障转移 六、运维管理 6.1 常用管理命令 6.2 添加新节点 6.3 移除节点 七、故障处理 7.1 常见问题诊断 问题1:节点无法加入组 问题2:事务提交失败 问题3:节点被驱逐 7.2 数据恢复场景 场景1:单节点数据损坏 场景2:多数节点宕机 八、性能优化 8.1 网络优化 8.2 流量控制 8.3 一致性级别选择 8.4 监控指标 九、最佳实践 9.1 生产部署建议 9.2 安全配置 9.3 与中间件配合 9.4 适用场景总结 9.5 不适用场景 附录:配置参数速查表 核心参数 性能参数)
- [核心参数](#文章目录 MySQL 8 组复制完全指南 目录 @[toc] 一、组复制概述 1.1 什么是组复制 1.2 核心特性 1.3 与传统复制对比 二、核心原理 2.1 Paxos 协议基础 2.2 事务处理流程 2.3 冲突检测机制 三、架构模式 3.1 单主模式(Single-Primary Mode) 3.2 多主模式(Multi-Primary Mode) 3.3 模式切换 四、环境要求 4.1 系统要求 4.2 必需配置参数 4.3 可选优化参数 五、配置实战 5.1 三节点集群部署 环境规划 步骤一:配置各节点 my.cnf 步骤二:创建复制用户 步骤三:启动组复制 步骤四:验证集群状态 5.2 测试复制功能 5.3 测试故障转移 六、运维管理 6.1 常用管理命令 6.2 添加新节点 6.3 移除节点 七、故障处理 7.1 常见问题诊断 问题1:节点无法加入组 问题2:事务提交失败 问题3:节点被驱逐 7.2 数据恢复场景 场景1:单节点数据损坏 场景2:多数节点宕机 八、性能优化 8.1 网络优化 8.2 流量控制 8.3 一致性级别选择 8.4 监控指标 九、最佳实践 9.1 生产部署建议 9.2 安全配置 9.3 与中间件配合 9.4 适用场景总结 9.5 不适用场景 附录:配置参数速查表 核心参数 性能参数)
- [性能参数](#文章目录 MySQL 8 组复制完全指南 目录 @[toc] 一、组复制概述 1.1 什么是组复制 1.2 核心特性 1.3 与传统复制对比 二、核心原理 2.1 Paxos 协议基础 2.2 事务处理流程 2.3 冲突检测机制 三、架构模式 3.1 单主模式(Single-Primary Mode) 3.2 多主模式(Multi-Primary Mode) 3.3 模式切换 四、环境要求 4.1 系统要求 4.2 必需配置参数 4.3 可选优化参数 五、配置实战 5.1 三节点集群部署 环境规划 步骤一:配置各节点 my.cnf 步骤二:创建复制用户 步骤三:启动组复制 步骤四:验证集群状态 5.2 测试复制功能 5.3 测试故障转移 六、运维管理 6.1 常用管理命令 6.2 添加新节点 6.3 移除节点 七、故障处理 7.1 常见问题诊断 问题1:节点无法加入组 问题2:事务提交失败 问题3:节点被驱逐 7.2 数据恢复场景 场景1:单节点数据损坏 场景2:多数节点宕机 八、性能优化 8.1 网络优化 8.2 流量控制 8.3 一致性级别选择 8.4 监控指标 九、最佳实践 9.1 生产部署建议 9.2 安全配置 9.3 与中间件配合 9.4 适用场景总结 9.5 不适用场景 附录:配置参数速查表 核心参数 性能参数)
一、组复制概述
1.1 什么是组复制
MySQL Group Replication(MGR)是 MySQL 5.7.17 引入、MySQL 8.0 持续增强的一种高可用、高可靠的数据复制技术 。它基于 Paxos 分布式一致性协议,允许多个 MySQL 实例组成一个复制组,每个成员都维护完整的数据副本,同时保证数据在组内的强一致性与容错能力。
1.2 核心特性
| 特性 | 说明 |
|---|---|
| 强一致性 | 基于 Paxos 协议,所有事务提交前必须经过多数派认证 |
| 自动故障转移 | 主节点故障时自动选举新主,无需人工干预 |
| 弹性扩展 | 支持动态添加/移除节点,集群最多支持 9 个节点 |
| 双模式支持 | 单主模式(Single-Primary)和多主模式(Multi-Primary) |
| 无脑裂风险 | 只有获得多数派同意的节点才能继续提供服务 |
| 冲突检测 | 多主模式下自动检测并解决事务冲突 |
1.3 与传统复制对比
| 复制模式 | 事务提交方式 | 数据一致性 | 故障转移 | 适用场景 |
|---|---|---|---|---|
| 异步复制 | 提交后不等待从库 | 低,可能数据丢失 | 手动 | 读写分离、数据备份 |
| 半同步复制 | 至少等待一个从库确认 | 中等,减少数据丢失 | 手动 | 高可用主从架构 |
| 组复制 | 多数派达成共识后提交 | 高,无数据丢失 | 自动 | 金融、电商、核心业务 |
二、核心原理
2.1 Paxos 协议基础
组复制底层基于 XCom(Paxos 变种) 实现分布式共识:
┌─────────────────────────────────────────────────────────────┐
│ Group Replication │
├─────────────────────────────────────────────────────────────┤
│ │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ Member 1 │◄──►│ Member 2 │◄──►│ Member 3 │ │
│ │ (Primary)│ │(Secondary)│ │(Secondary)│ │
│ └────┬─────┘ └────┬─────┘ └────┬─────┘ │
│ │ │ │ │
│ └───────────────┴───────────────┘ │
│ │ │
│ ┌─────────▼─────────┐ │
│ │ XCom (Paxos) │ │
│ │ 分布式共识引擎 │ │
│ └───────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────┘
2.2 事务处理流程
当客户端提交一个读写事务时,处理流程如下:
┌──────────────────────────────────────────────────────────────────────┐
│ 事务处理完整流程 │
├──────────────────────────────────────────────────────────────────────┤
│ │
│ 1. 客户端提交事务 │
│ │ │
│ ▼ │
│ 2. 本地执行事务,生成 Write Set(写集) │
│ │ │
│ ▼ │
│ 3. 原子广播到组内所有成员 │
│ │ │
│ ▼ │
│ 4. 全局排序(建立全局事务顺序) │
│ │ │
│ ▼ │
│ 5. 冲突检测(Certification) │
│ │ │
│ ├────── 有冲突 ──────► 事务回滚 │
│ │ │
│ ▼ │
│ 6. 多数派确认(N/2 + 1 同意) │
│ │ │
│ ▼ │
│ 7. 所有节点提交事务 │
│ │
└──────────────────────────────────────────────────────────────────────┘
2.3 冲突检测机制
组复制通过 Write Set(写集) 进行行级冲突检测:
sql
-- 写集生成原理
-- 每个修改的行生成唯一标识:主键值 + 数据库ID + 表ID
-- 示例:两个并发事务修改同一行
-- 事务 T1(节点A):UPDATE users SET balance=100 WHERE id=1
-- 事务 T2(节点B):UPDATE users SET balance=200 WHERE id=1
-- 冲突检测结果:
-- 1. T1 和 T2 的写集都包含 (users.id=1)
-- 2. 全局排序后,先提交的事务胜出
-- 3. 后提交的事务被回滚
冲突解决规则:
- First-Commit-Wins:全局排序靠前的事务提交,靠后的事务回滚
- 行级粒度检测,仅当修改相同行时才冲突
- 只读事务无需协调,直接执行
三、架构模式
3.1 单主模式(Single-Primary Mode)
默认模式,整个集群只有一个主节点可写,其他节点只读。
┌─────────────────────────────────────────────────────────────┐
│ 单主模式架构 │
├─────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────┐ │
│ │ Client │ │
│ └────┬────┘ │
│ │ │
│ ┌────────────┼────────────┐ │
│ │ │ │ │
│ ▼ ▼ ▼ │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ Member 1 │ │ Member 2 │ │ Member 3 │ │
│ │ PRIMARY │ │SECONDARY │ │SECONDARY │ │
│ │ 读/写 │ │ 只读 │ │ 只读 │ │
│ └──────────┘ └──────────┘ └──────────┘ │
│ ▲ │
│ │ │
│ 自动故障转移 │
│ (主节点宕机时自动选举) │
│ │
└─────────────────────────────────────────────────────────────┘
配置参数:
ini
# 启用单主模式(默认)
group_replication_single_primary_mode = ON
# 关闭多主一致性检查(单主模式必须关闭)
group_replication_enforce_update_everywhere_checks = OFF
主节点选举算法:
选举优先级从高到低:
- MySQL 版本:最低版本的成员优先
- 成员权重 :
group_replication_member_weight值高的优先(默认50,范围0-100) - server_uuid:字典序最小的优先(作为兜底规则)
ini
# 设置成员权重(可选)
group_replication_member_weight = 70 # 该节点更可能被选为主
查询当前主节点:
sql
-- 方法1:查看成员角色
SELECT MEMBER_HOST, MEMBER_ROLE
FROM performance_schema.replication_group_members;
-- 方法2:查看主节点 UUID
SHOW STATUS LIKE 'group_replication_primary_member';
-- 结果示例
+----------------------------------------+
| MEMBER_HOST | MEMBER_ROLE |
+----------------------------------------+
| 192.168.100.175 | PRIMARY |
| 192.168.160.131 | SECONDARY |
| 192.168.160.133 | SECONDARY |
+----------------------------------------+
3.2 多主模式(Multi-Primary Mode)
所有节点都可以执行读写操作,适合写入分散的场景。
┌─────────────────────────────────────────────────────────────┐
│ 多主模式架构 │
├─────────────────────────────────────────────────────────────┤
│ │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ Member 1 │ │ Member 2 │ │ Member 3 │ │
│ │ PRIMARY │ │ PRIMARY │ │ PRIMARY │ │
│ │ 读/写 │ │ 读/写 │ │ 读/写 │ │
│ └────┬─────┘ └────┬─────┘ └────┬─────┘ │
│ │ │ │ │
│ └────────────┴────────────┘ │
│ │ │
│ 冲突检测与解决 │
│ (通过写集进行行级冲突检测) │
│ │
│ 适用场景:写入分散、冲突较少的业务 │
│ │
└─────────────────────────────────────────────────────────────┘
配置参数:
ini
# 启用多主模式
group_replication_single_primary_mode = OFF
# 开启多主一致性检查(多主模式建议开启)
group_replication_enforce_update_everywhere_checks = ON
多主模式限制:
sql
-- 1. 不支持 SERIALIZABLE 隔离级别
SET SESSION TRANSACTION ISOLATION LEVEL SERIALIZABLE;
-- 执行写操作会失败
-- 2. 不支持级联外键约束
CREATE TABLE orders (
id INT PRIMARY KEY,
user_id INT,
FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE
);
-- 在多主模式下可能导致检测不到的冲突
-- 3. DDL 和 DML 必须在同一节点执行
-- 错误示例:
-- 节点A执行:ALTER TABLE users ADD COLUMN age INT;
-- 节点B同时执行:INSERT INTO users(name) VALUES('test');
-- 可能导致数据不一致
3.3 模式切换
MySQL 8.0.13+ 支持在线模式切换,无需重启集群:
sql
-- 从单主切换到多主
SELECT group_replication_switch_to_multi_primary_mode();
-- 从多主切换到单主(自动选举新主)
SELECT group_replication_switch_to_single_primary_mode();
-- 从多主切换到单主(指定主节点)
SELECT group_replication_switch_to_single_primary_mode('节点UUID');
四、环境要求
4.1 系统要求
| 要求项 | 说明 |
|---|---|
| MySQL 版本 | 5.7.17+(推荐 8.0.17+) |
| 存储引擎 | 必须使用 InnoDB |
| 网络要求 | 节点间网络稳定,延迟 < 10ms 为佳 |
| 端口要求 | 开放 3306(客户端)和 33061(内部通信) |
4.2 必需配置参数
ini
[mysqld]
# ========== 基础配置 ==========
# 唯一服务器ID(每个节点不同)
server_id = 1
# 禁用其他存储引擎
disabled_storage_engines = "MyISAM,BLACKHOLE,FEDERATED,ARCHIVE,MEMORY"
# ========== 复制框架配置 ==========
# 启用二进制日志
log_bin = binlog
# 启用 GTID
gtid_mode = ON
enforce_gtid_consistency = ON
# 行格式日志(组复制必须)
binlog_format = ROW
# 记录从库更新
log_slave_updates = ON
# 主从信息存储方式
master_info_repository = TABLE
relay_log_info_repository = TABLE
# ========== 组复制核心配置 ==========
# 写集提取方式(冲突检测必需)
transaction_write_set_extraction = XXHASH64
# 加载组复制插件
plugin_load_add = 'group_replication.so'
# 组名(必须是合法的UUID,所有节点一致)
group_replication_group_name = "aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa"
# 启动时不自动启动组复制
group_replication_start_on_boot = OFF
# 本地通信地址(每个节点不同)
group_replication_local_address = "192.168.100.175:33061"
# 种子节点列表(所有节点一致)
group_replication_group_seeds = "192.168.100.175:33061,192.168.160.131:33061,192.168.160.133:33061"
# 是否引导组(仅第一个启动节点设置为ON)
group_replication_bootstrap_group = OFF
4.3 可选优化参数
ini
[mysqld]
# ========== 性能优化 ==========
# 多线程应用器
slave_parallel_workers = 4
slave_parallel_type = LOGICAL_CLOCK
slave_preserve_commit_order = ON
# 流量控制
group_replication_flow_control_mode = QUOTA
# 一致性级别(MySQL 8.0.14+)
group_replication_consistency = BEFORE_ON_PRIMARY_FAILOVER
# ========== 容错配置 ==========
# 成员驱逐超时(秒)
group_replication_member_expel_timeout = 5
# 自动重新加入
group_replication_autorejoin_tries = 3
五、配置实战
5.1 三节点集群部署
环境规划
| 节点 | IP 地址 | Server ID | 角色 |
|---|---|---|---|
| node1 | 192.168.160.130 | 1 | 主节点(Primary) |
| node2 | 192.168.160.131 | 2 | 从节点(Secondary) |
| node3 | 192.168.160.133 | 3 | 从节点(Secondary) |
设置主机名及hosts解析
apl
hostnamectl set-hostname node1
192.168.100.177 node1
192.168.100.176 node2
192.168.100.175 node3
步骤一:配置各节点 my.cnf
node1 配置:
ini
[mysqld]
server_id = 1
authentication_policy=mysql_native_password
log_bin = binlog
gtid_mode = ON
enforce_gtid_consistency = ON
binlog_format = ROW
log_slave_updates = ON
master_info_repository = TABLE
relay_log_info_repository = TABLE
transaction_write_set_extraction = XXHASH64
disabled_storage_engines = "MyISAM,BLACKHOLE,FEDERATED,ARCHIVE,MEMORY"
plugin_load_add = 'group_replication.so'
group_replication_group_name = "aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa"
group_replication_start_on_boot = OFF
group_replication_local_address = "192.168.100.177:33061"
group_replication_group_seeds = "192.168.100.177:33061,192.168.100.176:33061,192.168.100.175:33061"
group_replication_bootstrap_group = OFF
group_replication_single_primary_mode = ON
group_replication_enforce_update_everywhere_checks = OFF
配置文件注释
apl
# 服务器唯一ID,集群内每个节点必须不同(节点1=1,节点2=2,节点3=3)
server_id = 1
# 开启二进制日志,日志文件前缀命名为 binlog(用于数据同步、主从复制)
log_bin = binlog
# 开启 GTID 模式(全局事务ID,MGR 必须依赖 GTID 实现事务唯一标识)
gtid_mode = ON
# 强制 GTID 一致性,禁止执行会破坏 GTID 机制的语句(MGR 强制要求)
enforce_gtid_consistency = ON
# 二进制日志格式设置为 ROW 行模式(MGR 仅支持 ROW 格式,记录行级数据变更)
binlog_format = ROW
# 从库接收主库日志后,也写入自身的二进制日志(级联复制/MGR 必需)
log_slave_updates = ON
# 将主库连接信息(master.info)存储到系统表,替代文件(更安全、支持崩溃恢复)
master_info_repository = TABLE
# 将中继日志应用信息(relay-log.info)存储到系统表,替代文件
relay_log_info_repository = TABLE
# 事务写集提取算法,使用 XXHASH64(MGR 用于检测事务冲突,提高并发性能)
transaction_write_set_extraction = XXHASH64
# 禁用非事务存储引擎,仅保留 InnoDB(MGR 仅支持 InnoDB 事务引擎)
disabled_storage_engines = "MyISAM,BLACKHOLE,FEDERATED,ARCHIVE,MEMORY"
# 加载组复制插件(MGR 核心插件,必须加载才能启动组复制)
plugin_load_add = 'group_replication.so'
# 组复制集群唯一名称(UUID格式,整个集群所有节点必须完全一致)
group_replication_group_name = "aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa"
# 服务器启动时不自动启动组复制(手动初始化/加入集群,避免异常自动启动)
group_replication_start_on_boot = OFF
# 当前节点用于组复制通信的地址(IP:端口,端口≠数据库端口,集群内节点唯一)
group_replication_local_address = "192.168.100.175:33061"
# 集群种子节点列表(所有节点的通信地址,新节点通过它加入集群)
group_replication_group_seeds = "192.168.100.175:33061,192.168.160.131:33061,192.168.160.133:33061"
# 关闭自动引导集群(仅**第一个节点**初始化集群时临时设为 ON,其他节点永久 OFF)
group_replication_bootstrap_group = OFF
# 开启单主模式(集群仅一个主节点可写,其他节点只读,最常用模式)
group_replication_single_primary_mode = ON
# 关闭多主写入检查(配合单主模式使用,多主模式需设为 ON)
group_replication_enforce_update_everywhere_checks = OFF
node2 配置(修改 server_id 和 local_address):
ini
[mysqld]
server_id = 2
# ... 其他参数同 node1 ...
group_replication_local_address = "192.168.160.131:33061"
# group_replication_group_seeds 保持一致
node3 配置(修改 server_id 和 local_address):
ini
[mysqld]
server_id = 3
# ... 其他参数同 node1 ...
group_replication_local_address = "192.168.160.133:33061"
步骤二:创建复制用户
在所有节点执行:
sql
-- 连接 MySQL
mysql -u root -p
-- 创建复制用户
SET SQL_LOG_BIN = 0;
CREATE USER rpl_user@'%' IDENTIFIED BY 'YourStrongPassword123!';
GRANT REPLICATION SLAVE ON *.* TO rpl_user@'%';
GRANT CONNECTION_ADMIN ON *.* TO rpl_user@'%';
GRANT BACKUP_ADMIN ON *.* TO rpl_user@'%';
GRANT GROUP_REPLICATION_STREAM ON *.* TO rpl_user@'%';
FLUSH PRIVILEGES;
SET SQL_LOG_BIN = 1;
-- 配置复制通道
CHANGE REPLICATION SOURCE TO
SOURCE_USER = 'rpl_user',
SOURCE_PASSWORD = 'YourStrongPassword123!'
FOR CHANNEL 'group_replication_recovery';
配置注释
apl
-- ##############################
-- MySQL 组复制(MGR)专用:创建复制恢复用户 + 配置复制通道
-- 作用:集群节点之间用于数据同步、故障恢复的专用账号
-- ##############################
-- 临时关闭二进制日志记录
-- 原因:创建用户的操作不写入 binlog,避免在其他节点重复执行
SET SQL_LOG_BIN = 0;
-- 创建 MGR 专用复制用户
-- rpl_user:用户名(可自定义)
-- @'%':允许所有IP连接(集群内节点互通)
-- IDENTIFIED BY:设置强密码(所有节点必须使用相同账号密码)
CREATE USER rpl_user@'%' IDENTIFIED BY 'YourStrongPassword123!';
-- 授予【复制从库】权限
-- 核心权限:用于节点之间同步数据、传输事务日志
GRANT REPLICATION SLAVE ON *.* TO rpl_user@'%';
-- 授予【连接管理员】权限
-- MGR 必需:允许用户管理集群内部连接、心跳检测
GRANT CONNECTION_ADMIN ON *.* TO rpl_user@'%';
-- 授予【备份管理员】权限
-- MGR 必需:支持集群恢复、分布式备份
GRANT BACKUP_ADMIN ON *.* TO rpl_user@'%';
-- 授予【组复制流】权限
-- MySQL 8.0 新增:MGR 专用权限,用于节点间事务流传输
GRANT GROUP_REPLICATION_STREAM ON *.* TO rpl_user@'%';
-- 刷新权限,使授权立即生效
FLUSH PRIVILEGES;
-- 重新开启二进制日志记录
-- 恢复正常的日志写入状态
SET SQL_LOG_BIN = 1;
-- ##############################
-- 配置 MGR 专用复制恢复通道
-- 作用:告诉集群:使用哪个用户密码进行节点间数据恢复
-- ##############################
-- 配置复制源(仅用于 MGR 内部恢复通道)
CHANGE REPLICATION SOURCE TO
SOURCE_USER = 'rpl_user', -- 复制用户(上面创建的账号)
SOURCE_PASSWORD = 'YourStrongPassword123!' -- 复制密码
FOR CHANNEL 'group_replication_recovery'; -- 固定通道名:MGR 专用恢复通道
步骤三:启动组复制
在 node1(引导节点)执行:
sql
-- 安装插件(如果未自动加载)
INSTALL PLUGIN group_replication SONAME 'group_replication.so';
-- 设置引导模式
SET GLOBAL group_replication_bootstrap_group = ON;
-- 启动组复制
START GROUP_REPLICATION USER='rpl_user', PASSWORD='YourStrongPassword123!';
-- 关闭引导模式
SET GLOBAL group_replication_bootstrap_group = OFF;
-- 检查状态
SELECT * FROM performance_schema.replication_group_members;
在 node2 和 node3 执行:
sql
-- 安装插件(如果未自动加载)
INSTALL PLUGIN group_replication SONAME 'group_replication.so';
-- 启动组复制(加入已有组)
START GROUP_REPLICATION USER='rpl_user', PASSWORD='YourStrongPassword123!';
-- 检查状态
SELECT * FROM performance_schema.replication_group_members;
步骤四:验证集群状态
sql
-- 查看组成员
SELECT MEMBER_ID, MEMBER_HOST, MEMBER_PORT, MEMBER_STATE, MEMBER_ROLE
FROM performance_schema.replication_group_members;
-- 预期输出
+--------------------------------------+--------------+-------------+-------------+-------------+
| MEMBER_ID | MEMBER_HOST | MEMBER_PORT | MEMBER_STATE| MEMBER_ROLE |
+--------------------------------------+--------------+-------------+-------------+-------------+
| a1b2c3d4-e5f6-7890-abcd-ef1234567890 | 192.168.100.175| 3306 | ONLINE | PRIMARY |
| b2c3d4e5-f6a7-8901-bcde-f12345678901 | 192.168.160.131| 3306 | ONLINE | SECONDARY |
| c3d4e5f6-a7b8-9012-cdef-123456789012 | 192.168.160.133| 3306 | ONLINE | SECONDARY |
+--------------------------------------+--------------+-------------+-------------+-------------+
5.2 测试复制功能
sql
-- 在主节点(node1)创建测试数据
CREATE DATABASE test_mgr;
USE test_mgr;
CREATE TABLE users (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(50),
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
INSERT INTO users(name) VALUES('Alice'),('Bob'),('Charlie');
-- 在从节点(node2/node3)验证数据同步
SELECT * FROM test_mgr.users;
-- 结果应一致
+----+--------+---------------------+
| id | name | created_at |
+----+--------+---------------------+
| 1 | Alice | 2026-04-08 16:00:00 |
| 2 | Bob | 2026-04-08 16:00:00 |
| 3 | Charlie| 2026-04-08 16:00:00 |
+----+--------+---------------------+
5.3 测试故障转移
bash
# 在 node1 模拟主节点宕机
systemctl stop mysqld
# 在 node2 或 node3 查看新主节点
mysql -e "SELECT MEMBER_HOST, MEMBER_ROLE FROM performance_schema.replication_group_members"
##若故障节点修复成功后,加入到集群中,执行以下命令即可
START GROUP_REPLICATION;
预期结果:node2 或 node3 自动被选举为新主节点,角色变为 PRIMARY。
六、运维管理
6.1 常用管理命令
sql
-- 启动组复制
START GROUP_REPLICATION;
-- 带用户认证启动
START GROUP_REPLICATION USER='rpl_user', PASSWORD='password';
-- 停止组复制
STOP GROUP_REPLICATION;
-- 查看组成员状态
SELECT * FROM performance_schema.replication_group_members;
-- 查看组复制状态
SHOW STATUS LIKE 'group_replication%';
-- 查看当前主节点
SELECT MEMBER_HOST FROM performance_schema.replication_group_members
WHERE MEMBER_ROLE = 'PRIMARY';
-- 手动指定主节点
SELECT group_replication_set_as_primary('member_uuid');
6.2 添加新节点
sql
-- 1. 配置新节点的 my.cnf(server_id 和 local_address 不同)
-- 2. 创建复制用户
SET SQL_LOG_BIN = 0;
CREATE USER rpl_user@'%' IDENTIFIED BY 'password';
GRANT REPLICATION SLAVE, CONNECTION_ADMIN, BACKUP_ADMIN, GROUP_REPLICATION_STREAM ON *.* TO rpl_user@'%';
FLUSH PRIVILEGES;
SET SQL_LOG_BIN = 1;
-- 3. 配置复制通道
CHANGE REPLICATION SOURCE TO
SOURCE_USER = 'rpl_user',
SOURCE_PASSWORD = 'password'
FOR CHANNEL 'group_replication_recovery';
-- 4. 启动组复制
START GROUP_REPLICATION USER='rpl_user', PASSWORD='password';
6.3 移除节点
sql
-- 在要移除的节点上执行
STOP GROUP_REPLICATION;
-- 如果节点已离线,在其他节点强制移除
-- 先获取成员 ID
SELECT MEMBER_ID FROM performance_schema.replication_group_members
WHERE MEMBER_HOST = '节点IP';
-- 使用 UDF 移除
SELECT group_replication_remove_member('member_uuid');
七、故障处理
7.1 常见问题诊断
问题1:节点无法加入组
症状:
sql
SELECT * FROM performance_schema.replication_group_members;
-- MEMBER_STATE 显示 RECOVERING 或 ERROR
诊断步骤:
sql
-- 1. 检查错误日志
SHOW VARIABLES LIKE 'log_error';
-- 查看 /var/log/mysql/error.log
-- 2. 检查网络连通性
-- 在新节点上测试与种子节点的连接
telnet 192.168.100.175 33061
-- 3. 检查配置是否正确
SHOW VARIABLES LIKE 'group_replication_group_name';
SHOW VARIABLES LIKE 'group_replication_local_address';
SHOW VARIABLES LIKE 'group_replication_group_seeds';
-- 4. 检查复制用户权限
SHOW GRANTS FOR rpl_user@'%';
常见原因与解决方案:
| 原因 | 解决方案 |
|---|---|
| group_name 不一致 | 确保所有节点使用相同 UUID |
| local_address 不可达 | 使用真实 IP,不能用 127.0.0.1 |
| 防火墙阻止 | 开放 33061 端口 |
| 复制用户权限不足 | 添加必要权限 |
| GTID 有冲突 | 重新初始化数据 |
问题2:事务提交失败
错误信息:
ERROR 3092 (HY000): The server is not configured properly to be an active member of the group.
原因:单主模式下未正确配置一致性检查参数。
解决方案:
sql
-- 检查并修正配置
SHOW VARIABLES LIKE 'group_replication_single_primary_mode';
SHOW VARIABLES LIKE 'group_replication_enforce_update_everywhere_checks';
-- 单主模式必须配置为
SET GLOBAL group_replication_single_primary_mode = ON;
SET GLOBAL group_replication_enforce_update_everywhere_checks = OFF;
问题3:节点被驱逐
症状:节点状态变为 UNREACHABLE 后被移出组。
解决方案:
sql
-- 1. 检查网络连接
-- 2. 调整驱逐超时时间
SET GLOBAL group_replication_member_expel_timeout = 10;
-- 3. 配置自动重新加入(MySQL 8.0.16+)
SET GLOBAL group_replication_autorejoin_tries = 3;
-- 4. 重新启动组复制
STOP GROUP_REPLICATION;
START GROUP_REPLICATION USER='rpl_user', PASSWORD='password';
7.2 数据恢复场景
场景1:单节点数据损坏
sql
-- 1. 停止损坏节点的组复制
STOP GROUP_REPLICATION;
-- 2. 备份主节点数据
mysqldump -h 主节点IP -u root -p --all-databases --master-data=2 > backup.sql
-- 3. 恢复到损坏节点
mysql -u root -p < backup.sql
-- 4. 重新加入组
START GROUP_REPLICATION USER='rpl_user', PASSWORD='password';
场景2:多数节点宕机
3 节点集群宕机 2 个节点后的处理:
1. 剩余的 1 个节点会自动变为只读
2. 必须重启至少 2 个节点才能恢复写入能力
3. 如果无法恢复,需要强制启动新组
强制启动新组(最后手段):
sql
-- 在可用的节点上执行
SET GLOBAL group_replication_bootstrap_group = ON;
START GROUP_REPLICATION;
SET GLOBAL group_replication_bootstrap_group = OFF;
-- 其他节点重新加入
STOP GROUP_REPLICATION;
START GROUP_REPLICATION USER='rpl_user', PASSWORD='password';
八、性能优化
8.1 网络优化
ini
[mysqld]
# 减少网络往返
group_replication_communication_max_message_size = 10485760
# 调整心跳间隔(毫秒)
group_replication_poll_spin_loops = 0
8.2 流量控制
sql
-- 启用流量控制
SET GLOBAL group_replication_flow_control_mode = 'QUOTA';
-- 设置流量控制阈值
SET GLOBAL group_replication_flow_control_certifier_threshold = 25000;
SET GLOBAL group_replication_flow_control_applier_threshold = 25000;
8.3 一致性级别选择
MySQL 8.0.14+ 支持不同的一致性级别:
sql
-- 1. EVENTUAL(默认):最终一致性,性能最好
SET GLOBAL group_replication_consistency = 'EVENTUAL';
-- 2. BEFORE_ON_PRIMARY_FAILOVER:故障转移时保证一致性
SET GLOBAL group_replication_consistency = 'BEFORE_ON_PRIMARY_FAILOVER';
-- 3. BEFORE:强一致性,所有读操作等待同步
SET GLOBAL group_replication_consistency = 'BEFORE';
-- 4. AFTER:写操作等待所有节点确认
SET GLOBAL group_replication_consistency = 'AFTER';
-- 5. BEFORE_AND_AFTER:最强一致性,性能影响最大
SET GLOBAL group_replication_consistency = 'BEFORE_AND_AFTER';
8.4 监控指标
sql
-- 查看事务认证队列大小
SELECT COUNT(*) FROM performance_schema.replication_group_member_stats;
-- 查看网络流量
SHOW STATUS LIKE 'group_replication_received%';
SHOW STATUS LIKE 'group_replication_sent%';
-- 查看冲突统计
SHOW STATUS LIKE 'group_replication_transactions_conflict%';
九、最佳实践
9.1 生产部署建议
| 项目 | 建议 |
|---|---|
| 节点数量 | 推荐 3 或 5 节点(奇数),5节点可容忍2节点故障 |
| 网络要求 | 同机房部署,延迟 < 5ms;跨机房需评估性能影响 |
| 硬件配置 | 所有节点配置一致,SSD 存储 |
| 版本要求 | 所有节点 MySQL 版本一致,推荐 8.0.17+ |
| 监控告警 | 监控节点状态、复制延迟、冲突率 |
9.2 安全配置
ini
[mysqld]
# 启用 SSL 加密通信
group_replication_ssl_mode = REQUIRED
# 配置 SSL 证书
ssl_ca = /path/to/ca.pem
ssl_cert = /path/to/server-cert.pem
ssl_key = /path/to/server-key.pem
sql
-- 创建 SSL 用户
CREATE USER rpl_user@'%' IDENTIFIED BY 'password' REQUIRE SSL;
9.3 与中间件配合
MySQL Router 配置示例:
ini
# /etc/mysqlrouter/mysqlrouter.conf
[routing:primary]
bind_address = 0.0.0.0
bind_port = 6446
destinations = 192.168.100.175:3306,192.168.160.131:3306,192.168.160.133:3306
routing_strategy = first-available
protocol = classic
[routing:secondary]
bind_address = 0.0.0.0
bind_port = 6447
destinations = 192.168.160.131:3306,192.168.160.133:3306,192.168.100.175:3306
routing_strategy = round-robin
protocol = classic
ProxySQL 配置示例:
sql
-- 添加服务器
INSERT INTO mysql_servers (hostgroup_id, hostname, port) VALUES
(10, '192.168.100.175', 3306),
(10, '192.168.160.131', 3306),
(10, '192.168.160.133', 3306);
-- 配置主机组
-- hostgroup 10: 写操作
-- hostgroup 20: 读操作
9.4 适用场景总结
| 场景 | 推荐模式 | 说明 |
|---|---|---|
| 金融/支付系统 | 单主 | 数据一致性要求最高 |
| 电商核心交易 | 单主 | 高可用 + 强一致性 |
| 游戏用户数据 | 单主或多主 | 根据冲突情况选择 |
| 多地域部署 | 多主 | 减少跨地域延迟 |
| 读写分离 | 单主 + 代理 | 配合 ProxySQL/Router |
9.5 不适用场景
- 高写入压力的 OLTP 系统(延迟较高)
- 大量写冲突的业务(多主模式性能差)
- 跨大洲部署(网络延迟不可接受)
- 需要 100% 可用的系统(仍可能短暂中断)
附录:配置参数速查表
核心参数
| 参数名 | 默认值 | 说明 |
|---|---|---|
| group_replication_group_name | 无 | 组名(UUID格式),必须配置 |
| group_replication_local_address | 无 | 本地通信地址,必须配置 |
| group_replication_group_seeds | 无 | 种子节点列表,必须配置 |
| group_replication_start_on_boot | OFF | 是否开机自动启动 |
| group_replication_bootstrap_group | OFF | 是否引导组 |
| group_replication_single_primary_mode | ON | 单主/多主模式 |
| group_replication_enforce_update_everywhere_checks | ON | 多主一致性检查 |
性能参数
| 参数名 | 默认值 | 说明 |
|---|---|---|
| transaction_write_set_extraction | OFF | 写集提取方式 |
| group_replication_flow_control_mode | QUOTA | 流量控制模式 |
| group_replication_consistency | EVENTUAL | 一致性级别 |
| group_replication_member_expel_timeout | 0 | 驱逐超时时间 |
| group_replication_autorejoin_tries | 0 | 自动重连次数 |