当前位置: 首页 > news >正文

【MySQL Shell】8.9.2 InnoDB ClusterSet 集群中的不一致事务集(GTID集)

AdminAPI 的 clusterSet.status() 命令警告您,如果 InnoDB 集群的 GTID 集与 InnoDB ClusterSet 中主集群上的 GTID 集不一致。与 InnoDB ClusterSet 中的其他集群相比,处于此状态的集群具有额外的事务,并且具有全局状态 OK_NOT_CONSISTENT 。 集群在 InnoDB ClusterSet 中继续运行,状态为该状态,如果其 GTID 集是可用副本集群中最新的,则可以对其执行紧急故障切换。但是,它不符合受控切换的条件,因为事务的差异可能会导致客户端访问不正确的数据。如果集群离线,它也不能用额外的事务重新加入 InnoDB ClusterSet 。

InnoDB ClusterSet 中的副本集群是只读的,因此如果它一直是副本集群,那么它不应该包含额外的事务,除非在不使用 AdminAPI 命令的情况下对集群进行了更改。如果需要在组复制停止时对实例执行管理事务,请在执行管理语句之前始终将 sql_log_bin 系统变量的值设置为 OFF , 然后再设置为 on:

SET SQL_LOG_BIN=0; 
<administrator action> 
SET SQL_LOG_BIN=1;

将此系统变量设置为 OFF 意味着从该点开始直到将其设置回 ON 为止发生的事务不会写入二进制日志,也不会为其分配 GTID 。

当主集群变得不可访问并且使用了紧急故障切换过程时,可能会在没有外部更改的情况下创建一组分散的事务。如果主集群在故障切换后保持在线,它可以继续通过仍然连接到它的任何 MySQL 路由器实例接受来自客户端的事务,并将这些事务传递给仍然连接到其的任何副本集群,显著的复制延迟可能会导致选择作为替换主集群的副本集群丢失来自主集群的一些事务。在这种情况下,当旧的主集群最初作为无效的副本集群重新联机时,从未传输到副本的事务将被标识为额外事务。

clusterSet.status() 命令的扩展输出标识具有额外事务的任何集群,并为它们分配 OK_NOT_CONSISTENT 全局状态。例如:

mysql-js> myclusterset.status({extended: 1})                                                                                                                                                                        
{                                                                                                                                                                                                                                      "clusters": {                                                                                                                                                                                                                      "clusterone": {                                                                                                                                                                                                                       "clusterErrors": [                                                                                                                                                                                                         "ERROR: Errant transactions detected"                                                                                                                                                                                  ],                                                                                                                                                                                                                         "clusterRole": "REPLICA",                                                                                                                                                                                                  "clusterSetReplication": {                                                                                                                                                                                                 "applierStatus": "APPLIED_ALL",                                                                                                                                                                                        "applierThreadState": "Waiting for an event from Coordinator",                                                                                                                                                         "applierWorkerThreads": 4,                                                                                                                                                                                             "receiver": "127.0.0.1:3310",                                                                                                                                                                                          "receiverStatus": "ON",                                                                                                                                                                                                "receiverThreadState": "Waiting for source to send event",                                                                                                                                                             "source": "127.0.0.1:4410"                                                                                                                                                                                             },                                                                                                                                                                                                                         "clusterSetReplicationStatus": "OK",                                                                                                                                                                                       "globalStatus": "OK_NOT_CONSISTENT",                                                                                                                                                                                       "status": "OK",                                                                                                                                                                                                            "statusText": "Cluster is ONLINE and can tolerate up to ONE failure.",                                                                                                                                                     "topology": {                                                                                                                                                                                                              "127.0.0.1:3310": {                                                                                                                                                                                                    "address": "127.0.0.1:3310",                                                                                                                                                                                       "memberRole": "PRIMARY",                                                                                                                                                                                           "mode": "R/O",                                                                                                                                                                                                     "replicationLagFromImmediateSource": "","replicationLagFromOriginalSource": "","status": "ONLINE","version": "8.0.27"},"127.0.0.1:3320": {"address": "127.0.0.1:3320","memberRole": "SECONDARY","mode": "R/O","replicationLagFromImmediateSource": "","replicationLagFromOriginalSource": "","status": "ONLINE","version": "8.0.27"},"127.0.0.1:3330": {"address": "127.0.0.1:3330","memberRole": "SECONDARY","mode": "R/O","replicationLagFromImmediateSource": "","replicationLagFromOriginalSource": "","status": "ONLINE","version": "8.0.27"}},"transactionSet": "54ff337b-2ccf-11ec-95da-3c6aa7197deb:1-131,54ff3ed7-2ccf-11ec-95da-3c6aa7197deb:1-5,c06527d6-2ce3-11ec-a55e-3c6aa7197deb:1,c0653492-2ce3-11ec-a55e-3c6aa7197deb:1-5","transactionSetConsistencyStatus": "INCONSISTENT","transactionSetConsistencyStatusText": "There are 1 transactions that were executed in this instance that did not originate from the PRIMARY.","transactionSetErrantGtidSet": "c06527d6-2ce3-11ec-a55e-3c6aa7197deb:1","transactionSetMissingGtidSet": ""},"clustertwo": {"clusterRole": "PRIMARY","globalStatus": "OK","primary": "127.0.0.1:4410","status": "OK","statusText": "Cluster is ONLINE and can tolerate up to ONE failure.","topology": {"127.0.0.1:4410": {"address": "127.0.0.1:4410","memberRole": "PRIMARY","mode": "R/W","status": "ONLINE","version": "8.0.27"},"127.0.0.1:4420": {"address": "127.0.0.1:4420","memberRole": "SECONDARY","mode": "R/O","replicationLagFromImmediateSource": "","replicationLagFromOriginalSource": "","status": "ONLINE","version": "8.0.27"},"127.0.0.1:4430": {"address": "127.0.0.1:4430","memberRole": "SECONDARY","mode": "R/O","replicationLagFromImmediateSource": "","replicationLagFromOriginalSource": "","status": "ONLINE","version": "8.0.27"}},"transactionSet": "54ff337b-2ccf-11ec-95da-3c6aa7197deb:1-131,54ff3ed7-2ccf-11ec-95da-3c6aa7197deb:1-5"}},"domainName": "testclusterset","globalPrimaryInstance": "127.0.0.1:4410","metadataServer": "127.0.0.1:4410","primaryCluster": "clustertwo","status": "AVAILABLE","statusText": "Primary Cluster available, there are issues with a Replica cluster."
}

将单个服务器的数据与 InnoDB 集群的其他数据进行协调的最安全方法是在 InnoDB ClusterSet 部署中确定具有最佳数据的服务器(最多的事务、最近的事务或最重要的事务),并使用 MySQL 的克隆功能将内容从该服务器传输到受影响的服务器。有关执行此操作的说明,请参阅 克隆远程数据 。然后使用 cluster.rejoinInstance() 命令让实例重新加入 InnoDB 集群。有关此操作的详细信息,请参见 第 7.8.1 节 “将实例重新加入到集群” 。

如果整个 InnoDB 集群受到影响,请按照 8.9.4 从 InnoDB ClusterSet 中移除集群 中的步骤,从 InnoDB 集集群部署中删除受影响的集群,并在其位置设置一个新的 InnoDB 集群。作为设置过程的一部分,新 InnoDB 集群中的服务器实例将接收正确的事务集。

如果您想保留额外的事务,可以按照 8.8 InnoDB ClusterSet 的紧急故障切换 中的步骤,执行紧急故障切换,以使具有这些事务的 InnoDB Cluster 成为主集群。

如果您能够处理问题事务,请使用 clusterSet.rejoinCluster() 操作将 InnoDB 集群重新连接到 InnoDB clusterSet 部署。有关此操作的说明,请参阅 8.9.5 将集群重新加入到 InnoDB ClusterSet 。

相关文章:

【MySQL Shell】8.9.2 InnoDB ClusterSet 集群中的不一致事务集(GTID集)

AdminAPI 的 clusterSet.status() 命令警告您&#xff0c;如果 InnoDB 集群的 GTID 集与 InnoDB ClusterSet 中主集群上的 GTID 集不一致。与 InnoDB ClusterSet 中的其他集群相比&#xff0c;处于此状态的集群具有额外的事务&#xff0c;并且具有全局状态 OK_NOT_CONSISTENT 。…...

logstash毫秒时间戳转日期以及使用业务日志时间戳替换原始@timestamp

文章目录问题解决方式参考问题 在使用Kibana观察日志排查问题时发现存在很多组的timestamp 数据一样&#xff0c;如下所示 详细观察内部数据发现其中日志数据有一个timestamp字段保存的是业务日志的毫秒级时间戳&#xff0c;经过和timestamp数据对比发现二者的时间不匹配。经…...

【C语言】qsort——回调函数

目录 1.回调函数 2.qsort函数 //整形数组排序 //结构体排序 3.模拟实现qsort //整型数组排序 //结构体排序 1.回调函数 回调函数就是一个通过函数指针调用的函数。如果你把函数的指针&#xff08;地址&#xff09;作为参数传递给另一个函数&#xff0c;当这个指针被用来…...

8年软件测试工程师经验感悟

不知不觉在软件测试行业&#xff0c;野蛮生长了8年之久。这一路上拥有了非常多的感受。有迷茫&#xff0c;有踩过坑&#xff0c;有付出有收获&#xff0c; 有坚持&#xff01; 我一直都在软件测试行业奋战&#xff0c; 毕业时一起入职的好友已经公司内部转岗&#xff0c;去选择…...

腾讯云安全组配置参考版

官方文档参考: 云服务器 安全组应用案例-操作指南-文档中心-腾讯云 新建安全组时&#xff0c;您可以选择腾讯云为您提供的两种安全组模板&#xff1a; 放通全部端口模板&#xff1a;将会放通所有出入站流量。放通常用端口模板&#xff1a;将会放通 TCP 22端口&#xff08;Lin…...

代码覆盖率工具OpenCppCoverage在Windows上的使用

OpenCppCoverage是用在Windows C上的开源的代码覆盖率工具&#xff0c;源码地址为https://github.com/OpenCppCoverage/OpenCppCoverage &#xff0c;最新发布版本为0.9.9.0&#xff0c;License为GPL-3.0。 从https://github.com/OpenCppCoverage/OpenCppCoverage/releases 下载…...

代码随想录算法训练营第24天25天|● 77. 组合● 216.组合总和III ● 17.电话号码的字母组合

77组合 看完题后的思路 void f&#xff08;数组&#xff0c;startIndex&#xff09;递归终止 if&#xff08;startIndex数组长度||path.sizek&#xff09;{ if(path.sizek){ 加入} }递归 for&#xff08;&#xff1b;startIndex<num.size&#xff1b;startIndex&#xff0…...

Python_pytorch

python_pytorch 小土堆pytotch学习视频链接 from的是一个个的包&#xff08;package) import 的是一个个的py文件(file.py) 所使用的一般是文件中的类(.class) 第一步实例化所使用的类,然后调用类中的方法&#xff08;def) Dataset 数据集处理 import os from PIL impo…...

【Java|golang】2335. 装满杯子需要的最短总时长

现有一台饮水机&#xff0c;可以制备冷水、温水和热水。每秒钟&#xff0c;可以装满 2 杯 不同 类型的水或者 1 杯任意类型的水。 给你一个下标从 0 开始、长度为 3 的整数数组 amount &#xff0c;其中 amount[0]、amount[1] 和 amount[2] 分别表示需要装满冷水、温水和热水的…...

shell编程之sed

文章目录八、shell编程之sed8.1 工作原理8.2 sed基本语法8.3 模式空间中的编辑操作8.3.1 地址定界8.3.2 常用编辑命令8.4 sed扩展八、shell编程之sed 8.1 工作原理 sed是一种流编辑器&#xff0c;它是文本处理中非常有用的工具&#xff0c;能够完美的配合正则表达式使用&…...

安全寒假作业nginx反向代理+负载均衡上传webshell重难点+apache漏洞

1.应用场景 负载均衡作为现今解决web应用承载大流量访问问题的一种方案&#xff0c;在真实环境中得到广泛的部署。实现负载均衡的方式有很多种&#xff0c;比如 DNS 方式、HTTP 重定向方式、IP 负载均衡方式、反向代理方式等等。 比如基于dns的负载均衡&#xff1a; 当然还有…...

day35|01背包问题、416. 分割等和子集

01背包问题 有n件物品和一个最多能背重量为w的背包。第i件物品的重量是weight[i]&#xff0c;得到的价值是value[i] 。每件物品只能用一次&#xff0c;求解将哪些物品装入背包里物品价值总和最大。 例&#xff1a;背包最大重量为4。 物品为&#xff1a; 重量价值物品0115物品…...

Linux内核启动(3,0.11版本)内核启动完成与进入内核main函数

这一部分是在讲解head.s代码&#xff0c;这个代码与bootsect.s和setup.s在同一目录下&#xff0c;但是head.s程序在被编译生成目标文件后会与内核其他程序一起被链接成system模块&#xff0c;位于system模块的最前面开始部分。system模块将被放置在磁盘上setup模块之后开始的扇…...

【2023】Prometheus-Alertmanager高可用集群

本次实验准备了三个节点&#xff0c;分别为laert-01~03 目录1.安装Alertmanager2.配置启动文件3.验证集群4.关于集群的配置项1.安装Alertmanager 这部分内容在三个节点上都要执行 下载安装包&#xff0c;将安装包解压至/data目录下 wget https://github.com/prometheus/aler…...

2023-2-11 刷题情况

最短路计数 题目描述 给出一个 NNN 个顶点 MMM 条边的无向无权图&#xff0c;顶点编号为 1∼N1\sim N1∼N。问从顶点 111 开始&#xff0c;到其他每个点的最短路有几条。 输入格式 第一行包含 222 个正整数 N,MN,MN,M&#xff0c;为图的顶点数与边数。 接下来 MMM 行&…...

2019_41 考研408

2019年(单链表)41.(13分)设线性表采用带头结点的单链表保存&#xff0c;链表中的结点定义如下:typedef struct node {int data;struct node* next;}NODE;请设计一个空间复杂度为O(1)且时间上尽可能高效的算法&#xff0c;重新排列L中的各结点&#xff0c;得到线性表L(q,a,,a,an…...

Linux账号与用户组

目录 用户标识符&#xff1a;UID与GID 用户账号 /etc/passwd文件结构 1、账号名称 2、密码 3、UID 4、GID 5、用户信息说明栏 6、家目录 7、shell /etc/shadow文件结构 1、账号名称 2、密码 3、最近修改密码的日期 4、密码不可被修改的天数&#xff08;与第三字…...

有趣的Hack-A-Sat黑掉卫星挑战赛——定位卫星Jackson

国家太空安全是国家安全在空间领域的表现。随着太空技术在政治、经济、军事、文化等各个领域的应用不断增加&#xff0c;太空已经成为国家赖以生存与发展的命脉之一&#xff0c;凝聚着巨大的国家利益&#xff0c;太空安全的重要性日益凸显[1]。而在信息化时代&#xff0c;太空安…...

JAVA集合专题3 —— vector + LinkedList + Set

目录vector的特点LinkedList底层结构模拟双向链表比较ArrayList和LinkedListSet接口基本介绍Set接口的遍历方式Set接口实现类对象的特点Set接口实现类HashSet模拟HashSet/HashMap的底层结构vector的特点 Vector底层是一个对象数组Vector是线程同步的&#xff0c;即线程安全的&…...

Scout:一款功能强大的轻量级URL模糊测试与爬取工具

关于Scout Scout是一款功能强大的轻量级URL模糊测试与爬取工具&#xff0c;可以帮助广大研究人员进行URL模糊测试&#xff0c;并爬取目标Web服务器中难以扫描发现的VHSOT、文件和目录等资源。 项目中包含了一个完整的字典文件&#xff0c;并尽可能地提供了更多的便携性&#…...

Chapter03-Authentication vulnerabilities

文章目录 1. 身份验证简介1.1 What is authentication1.2 difference between authentication and authorization1.3 身份验证机制失效的原因1.4 身份验证机制失效的影响 2. 基于登录功能的漏洞2.1 密码爆破2.2 用户名枚举2.3 有缺陷的暴力破解防护2.3.1 如果用户登录尝试失败次…...

3.3.1_1 检错编码(奇偶校验码)

从这节课开始&#xff0c;我们会探讨数据链路层的差错控制功能&#xff0c;差错控制功能的主要目标是要发现并且解决一个帧内部的位错误&#xff0c;我们需要使用特殊的编码技术去发现帧内部的位错误&#xff0c;当我们发现位错误之后&#xff0c;通常来说有两种解决方案。第一…...

蓝桥杯 2024 15届国赛 A组 儿童节快乐

P10576 [蓝桥杯 2024 国 A] 儿童节快乐 题目描述 五彩斑斓的气球在蓝天下悠然飘荡&#xff0c;轻快的音乐在耳边持续回荡&#xff0c;小朋友们手牵着手一同畅快欢笑。在这样一片安乐祥和的氛围下&#xff0c;六一来了。 今天是六一儿童节&#xff0c;小蓝老师为了让大家在节…...

JUC笔记(上)-复习 涉及死锁 volatile synchronized CAS 原子操作

一、上下文切换 即使单核CPU也可以进行多线程执行代码&#xff0c;CPU会给每个线程分配CPU时间片来实现这个机制。时间片非常短&#xff0c;所以CPU会不断地切换线程执行&#xff0c;从而让我们感觉多个线程是同时执行的。时间片一般是十几毫秒(ms)。通过时间片分配算法执行。…...

QT: `long long` 类型转换为 `QString` 2025.6.5

在 Qt 中&#xff0c;将 long long 类型转换为 QString 可以通过以下两种常用方法实现&#xff1a; 方法 1&#xff1a;使用 QString::number() 直接调用 QString 的静态方法 number()&#xff0c;将数值转换为字符串&#xff1a; long long value 1234567890123456789LL; …...

深度学习习题2

1.如果增加神经网络的宽度&#xff0c;精确度会增加到一个特定阈值后&#xff0c;便开始降低。造成这一现象的可能原因是什么&#xff1f; A、即使增加卷积核的数量&#xff0c;只有少部分的核会被用作预测 B、当卷积核数量增加时&#xff0c;神经网络的预测能力会降低 C、当卷…...

return this;返回的是谁

一个审批系统的示例来演示责任链模式的实现。假设公司需要处理不同金额的采购申请&#xff0c;不同级别的经理有不同的审批权限&#xff1a; // 抽象处理者&#xff1a;审批者 abstract class Approver {protected Approver successor; // 下一个处理者// 设置下一个处理者pub…...

GitFlow 工作模式(详解)

今天再学项目的过程中遇到使用gitflow模式管理代码&#xff0c;因此进行学习并且发布关于gitflow的一些思考 Git与GitFlow模式 我们在写代码的时候通常会进行网上保存&#xff0c;无论是github还是gittee&#xff0c;都是一种基于git去保存代码的形式&#xff0c;这样保存代码…...

深度学习之模型压缩三驾马车:模型剪枝、模型量化、知识蒸馏

一、引言 在深度学习中&#xff0c;我们训练出的神经网络往往非常庞大&#xff08;比如像 ResNet、YOLOv8、Vision Transformer&#xff09;&#xff0c;虽然精度很高&#xff0c;但“太重”了&#xff0c;运行起来很慢&#xff0c;占用内存大&#xff0c;不适合部署到手机、摄…...

API网关Kong的鉴权与限流:高并发场景下的核心实践

&#x1f525;「炎码工坊」技术弹药已装填&#xff01; 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 引言 在微服务架构中&#xff0c;API网关承担着流量调度、安全防护和协议转换的核心职责。作为云原生时代的代表性网关&#xff0c;Kong凭借其插件化架构…...