mgr未同步 mysql_技术分享 | MySQL 组复制数据的一致性管理解析

本文深入解析MySQL组复制中的数据一致性管理,通过EVENTUAL、BEFORE和AFTER三个参数值的示例,阐述其含义和使用场景。讲解了如何保证集群内的数据一致性和可能的性能影响。
摘要由CSDN通过智能技术生成

作者:杨涛涛

资深数据库专家,专研 MySQL 十余年。擅长 MySQL、PostgreSQL、MongoDB 等开源数据库相关的备份恢复、SQL 调优、监控运维、高可用架构设计等。目前任职于爱可生,为各大运营商及银行金融企业提供 MySQL 相关技术支持、MySQL 相关课程培训等工作。

本文来源:原创投稿

*爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。


来源于客户的一个问题。客户对组复制的数据一致性保障机制非常困惑,一直不太明白,其实就是对组复制参数 group_replication_consistency 几个值的含义不太清楚。这里我举了几个简单的例子,来说明这个参数包含的几个选项的真实含义。

一、概念

组复制的概念:组复制是 MySQL 基于传统的主从复制开发的一个插件。这个插件改善了原生主从复制的一些重大功能缺陷,诸如数据一致性监测管理、自动冲突监测、自动故障监测、自动收缩扩容节点、自动数据回补等等。

组复制功能自 MySQL 5.7 发布到现在最新版 MySQL 8.0.20,经历了各种缺陷修复、功能升级,目前已经比较完善。

参数 group_replication_consistency 共 5 个值可选:

1. EVENTUAL:确保最终一致性,并不能保证数据实时同步。(MySQL 8.0.14 之前只有这一个选项)

2. BEFORE:确保本地强一致性,并不保证其他节点数据实时同步。

3. AFTER:确保全局强一致性,可以保证所有节点数据实时同步。

4. BEFORE_AND_AFTER:最高级别,确保本地强一致性,全局强一致性。结合 BEOFRE 和 AFTER 的特性。

5. BEFORE_ON_PRIMARY_FAILOVER:确保从节点晋升为主节点后的本地一致性。

接下来,在组复制的默认模式下讨论 EVENTUAL,BEFORE,AFTER 这三类值的含义以及使用场景。

二、环境准备

  • debian-ytt1:3306(写节点,简称节点 1)

  • debian-ytt2:3306(读节点,简称节点 2)

  • debian-ytt3:3306(读节点,简称节点 3)

以下为集群 ytt_mgr 的状态,节点 1 为主,节点 2 和节点 3 为从。

MySQL debian-ytt1:3306 ssl ytt Py > c1 = dba.get_cluster('ytt_mgr');

MySQL debian-ytt1:3306 ssl ytt Py > c1.status();

{

"clusterName": "ytt_mgr",

"defaultReplicaSet": {

"name": "default",

"primary": "debian-ytt1:3306",

"ssl": "REQUIRED",

"status": "OK",

"statusText": "Cluster is ONLINE and can tolerate up to ONE failure.",

"topology": {

"debian-ytt1:3306": {

"address": "debian-ytt1:3306",

"mode": "R/W",

"readReplicas": {},

"replicationLag": null,

"role": "HA",

"status": "ONLINE",

"version": "8.0.20"

},

"debian-ytt2:3306": {

"address": "debian-ytt2:3306"

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值