Python毕设选题推荐:基于 Django 的学生二手物品交易换购系统 校园闲置资源共享与自主换购服务系统【附源码、mysql、文档、调试+代码讲解+全bao等】
2026/7/26 17:40:56
通过本节学习,你将掌握:
学完本节后,你将能够:
问题描述:某系统需要支持多个应用同时写入数据库,传统的单主架构无法满足需求。考虑使用MGR实现多主架构。
你的任务:如何评估MGR是否适合该场景?如何部署MGR集群?
问题描述:某MGR集群在运行过程中,一个节点突然故障,导致集群状态异常,部分写入请求失败。
你的任务:如何快速诊断和处理MGR集群故障?
MySQL Group Replication(MGR)是MySQL官方提供的高可用解决方案,基于组复制技术实现多主架构,提供自动故障检测和故障转移能力。作为新一代的MySQL高可用方案,MGR在数据一致性和系统可用性方面有着显著优势,但也存在一些局限性。本节将深入解析MGR的工作原理,对比其他高可用方案,并提供生产环境部署和运维的详细指导。
MGR基于Paxos协议实现多主复制,确保数据在集群节点间的一致性。
-- MGR确保事务在多数节点上提交-- 配置3节点集群,至少2节点确认-- 配置5节点集群,至少3节点确认-- 查看MGR状态SELECT*FROMperformance_schema.replication_group_members;-- 查看本地节点状态SELECT*FROMperformance_schema.replication_group_member_stats\G-- 查看组通信引擎状态SELECT*FROMperformance_schema.replication_connection_status\G# my.cnf - MGR基础配置 [mysqld] # 基础配置 server_id = 1 gtid_mode = ON enforce_gtid_consistency = ON binlog_checksum = NONE # Group Replication配置 transaction_write_set_extraction = XXHASH64 loose-group_replication_group_name = "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee" loose-group_replication_start_on_boot = OFF loose-group_replication_local_address = "192.168.1.101:33061" loose-group_replication_group_seeds = "192.168.1.101:33061,192.168.1.102:33061,192.168.1.103:33061" loose-group_replication_bootstrap_group = OFF loose-group_replication_paxos_single_leader = ON -- 单领导者模式(8.0.21+) # 多主模式配置 loose-group_replication_single_primary_mode = OFF loose-group_replication_enforce_update_everywhere_checks = ON-- 1. 配置复制用户SETSQL_LOG_BIN=0;CREATEUSER'repl'@'%'IDENTIFIEDBY'repl_password';GRANTREPLICATIONSLAVEON*.*TO'repl'@'%';GRANTBACKUP_ADMINON*.*TO'repl'@'%';SETSQL_LOG_BIN=1;-- 2. 启动首个节点SETGLOBALgroup_replication_bootstrap_group=ON;STARTGROUP_REPLICATION;SETGLOBALgroup_replication_bootstrap_group=OFF;-- 3. 其他节点加入STARTGROUP_REPLICATION;</