MySQL 8组复制完全指南

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

主节点选举算法

选举优先级从高到低:

  1. MySQL 版本:最低版本的成员优先
  2. 成员权重group_replication_member_weight 值高的优先(默认50,范围0-100)
  3. 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 自动重连次数
相关推荐
运维行者_2 小时前
OpManager MSP NetFlow Analyzer集成解决方案,应对多客户端网络流量监控挑战
大数据·运维·服务器·网络·数据库·自动化·运维开发
sszdzq2 小时前
docker 安装 doris
运维·docker·容器
dashizhi20153 小时前
共享文件禁止拖动本地磁盘、共享文件禁止另存为、禁止打印共享文件、禁止复制共享文件的方法
运维·服务器·网络·安全·电脑
炸炸鱼.3 小时前
Python 操作 MySQL 数据库
android·数据库·python·adb
Linux技术芯3 小时前
Refault Distance算法详解
linux
0vvv03 小时前
linux-软件安装
linux
IMPYLH3 小时前
Linux 的 nproc 命令
linux·运维·服务器·bash
Ronaldinho Gaúch4 小时前
MySQL基础
数据库·mysql
不剪发的Tony老师4 小时前
Noir:一款键盘驱动的现代化数据库管理工具
数据库·sql