【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() 命令警告您,如果 InnoDB 集群的 GTID 集与 InnoDB ClusterSet 中主集群上的 GTID 集不一致。与 InnoDB ClusterSet 中的其他集群相比,处于此状态的集群具有额外的事务,并且具有全局状态 OK_NOT_CONSISTENT 。…...
logstash毫秒时间戳转日期以及使用业务日志时间戳替换原始@timestamp
文章目录问题解决方式参考问题 在使用Kibana观察日志排查问题时发现存在很多组的timestamp 数据一样,如下所示 详细观察内部数据发现其中日志数据有一个timestamp字段保存的是业务日志的毫秒级时间戳,经过和timestamp数据对比发现二者的时间不匹配。经…...
【C语言】qsort——回调函数
目录 1.回调函数 2.qsort函数 //整形数组排序 //结构体排序 3.模拟实现qsort //整型数组排序 //结构体排序 1.回调函数 回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来…...
8年软件测试工程师经验感悟
不知不觉在软件测试行业,野蛮生长了8年之久。这一路上拥有了非常多的感受。有迷茫,有踩过坑,有付出有收获, 有坚持! 我一直都在软件测试行业奋战, 毕业时一起入职的好友已经公司内部转岗,去选择…...
腾讯云安全组配置参考版
官方文档参考: 云服务器 安全组应用案例-操作指南-文档中心-腾讯云 新建安全组时,您可以选择腾讯云为您提供的两种安全组模板: 放通全部端口模板:将会放通所有出入站流量。放通常用端口模板:将会放通 TCP 22端口(Lin…...
代码覆盖率工具OpenCppCoverage在Windows上的使用
OpenCppCoverage是用在Windows C上的开源的代码覆盖率工具,源码地址为https://github.com/OpenCppCoverage/OpenCppCoverage ,最新发布版本为0.9.9.0,License为GPL-3.0。 从https://github.com/OpenCppCoverage/OpenCppCoverage/releases 下载…...
代码随想录算法训练营第24天25天|● 77. 组合● 216.组合总和III ● 17.电话号码的字母组合
77组合 看完题后的思路 void f(数组,startIndex)递归终止 if(startIndex数组长度||path.sizek){ if(path.sizek){ 加入} }递归 for(;startIndex<num.size;startIndex࿰…...
Python_pytorch
python_pytorch 小土堆pytotch学习视频链接 from的是一个个的包(package) import 的是一个个的py文件(file.py) 所使用的一般是文件中的类(.class) 第一步实例化所使用的类,然后调用类中的方法(def) Dataset 数据集处理 import os from PIL impo…...
【Java|golang】2335. 装满杯子需要的最短总时长
现有一台饮水机,可以制备冷水、温水和热水。每秒钟,可以装满 2 杯 不同 类型的水或者 1 杯任意类型的水。 给你一个下标从 0 开始、长度为 3 的整数数组 amount ,其中 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是一种流编辑器,它是文本处理中非常有用的工具,能够完美的配合正则表达式使用&…...
安全寒假作业nginx反向代理+负载均衡上传webshell重难点+apache漏洞
1.应用场景 负载均衡作为现今解决web应用承载大流量访问问题的一种方案,在真实环境中得到广泛的部署。实现负载均衡的方式有很多种,比如 DNS 方式、HTTP 重定向方式、IP 负载均衡方式、反向代理方式等等。 比如基于dns的负载均衡: 当然还有…...
day35|01背包问题、416. 分割等和子集
01背包问题 有n件物品和一个最多能背重量为w的背包。第i件物品的重量是weight[i],得到的价值是value[i] 。每件物品只能用一次,求解将哪些物品装入背包里物品价值总和最大。 例:背包最大重量为4。 物品为: 重量价值物品0115物品…...
Linux内核启动(3,0.11版本)内核启动完成与进入内核main函数
这一部分是在讲解head.s代码,这个代码与bootsect.s和setup.s在同一目录下,但是head.s程序在被编译生成目标文件后会与内核其他程序一起被链接成system模块,位于system模块的最前面开始部分。system模块将被放置在磁盘上setup模块之后开始的扇…...
【2023】Prometheus-Alertmanager高可用集群
本次实验准备了三个节点,分别为laert-01~03 目录1.安装Alertmanager2.配置启动文件3.验证集群4.关于集群的配置项1.安装Alertmanager 这部分内容在三个节点上都要执行 下载安装包,将安装包解压至/data目录下 wget https://github.com/prometheus/aler…...
2023-2-11 刷题情况
最短路计数 题目描述 给出一个 NNN 个顶点 MMM 条边的无向无权图,顶点编号为 1∼N1\sim N1∼N。问从顶点 111 开始,到其他每个点的最短路有几条。 输入格式 第一行包含 222 个正整数 N,MN,MN,M,为图的顶点数与边数。 接下来 MMM 行&…...
2019_41 考研408
2019年(单链表)41.(13分)设线性表采用带头结点的单链表保存,链表中的结点定义如下:typedef struct node {int data;struct node* next;}NODE;请设计一个空间复杂度为O(1)且时间上尽可能高效的算法,重新排列L中的各结点,得到线性表L(q,a,,a,an…...
Linux账号与用户组
目录 用户标识符:UID与GID 用户账号 /etc/passwd文件结构 1、账号名称 2、密码 3、UID 4、GID 5、用户信息说明栏 6、家目录 7、shell /etc/shadow文件结构 1、账号名称 2、密码 3、最近修改密码的日期 4、密码不可被修改的天数(与第三字…...
有趣的Hack-A-Sat黑掉卫星挑战赛——定位卫星Jackson
国家太空安全是国家安全在空间领域的表现。随着太空技术在政治、经济、军事、文化等各个领域的应用不断增加,太空已经成为国家赖以生存与发展的命脉之一,凝聚着巨大的国家利益,太空安全的重要性日益凸显[1]。而在信息化时代,太空安…...
JAVA集合专题3 —— vector + LinkedList + Set
目录vector的特点LinkedList底层结构模拟双向链表比较ArrayList和LinkedListSet接口基本介绍Set接口的遍历方式Set接口实现类对象的特点Set接口实现类HashSet模拟HashSet/HashMap的底层结构vector的特点 Vector底层是一个对象数组Vector是线程同步的,即线程安全的&…...
Scout:一款功能强大的轻量级URL模糊测试与爬取工具
关于Scout Scout是一款功能强大的轻量级URL模糊测试与爬取工具,可以帮助广大研究人员进行URL模糊测试,并爬取目标Web服务器中难以扫描发现的VHSOT、文件和目录等资源。 项目中包含了一个完整的字典文件,并尽可能地提供了更多的便携性&#…...
国防科技大学计算机基础课程笔记02信息编码
1.机内码和国标码 国标码就是我们非常熟悉的这个GB2312,但是因为都是16进制,因此这个了16进制的数据既可以翻译成为这个机器码,也可以翻译成为这个国标码,所以这个时候很容易会出现这个歧义的情况; 因此,我们的这个国…...
rknn优化教程(二)
文章目录 1. 前述2. 三方库的封装2.1 xrepo中的库2.2 xrepo之外的库2.2.1 opencv2.2.2 rknnrt2.2.3 spdlog 3. rknn_engine库 1. 前述 OK,开始写第二篇的内容了。这篇博客主要能写一下: 如何给一些三方库按照xmake方式进行封装,供调用如何按…...
Golang dig框架与GraphQL的完美结合
将 Go 的 Dig 依赖注入框架与 GraphQL 结合使用,可以显著提升应用程序的可维护性、可测试性以及灵活性。 Dig 是一个强大的依赖注入容器,能够帮助开发者更好地管理复杂的依赖关系,而 GraphQL 则是一种用于 API 的查询语言,能够提…...
ServerTrust 并非唯一
NSURLAuthenticationMethodServerTrust 只是 authenticationMethod 的冰山一角 要理解 NSURLAuthenticationMethodServerTrust, 首先要明白它只是 authenticationMethod 的选项之一, 并非唯一 1 先厘清概念 点说明authenticationMethodURLAuthenticationChallenge.protectionS…...
新能源汽车智慧充电桩管理方案:新能源充电桩散热问题及消防安全监管方案
随着新能源汽车的快速普及,充电桩作为核心配套设施,其安全性与可靠性备受关注。然而,在高温、高负荷运行环境下,充电桩的散热问题与消防安全隐患日益凸显,成为制约行业发展的关键瓶颈。 如何通过智慧化管理手段优化散…...
LLM基础1_语言模型如何处理文本
基于GitHub项目:https://github.com/datawhalechina/llms-from-scratch-cn 工具介绍 tiktoken:OpenAI开发的专业"分词器" torch:Facebook开发的强力计算引擎,相当于超级计算器 理解词嵌入:给词语画"…...
UR 协作机器人「三剑客」:精密轻量担当(UR7e)、全能协作主力(UR12e)、重型任务专家(UR15)
UR协作机器人正以其卓越性能在现代制造业自动化中扮演重要角色。UR7e、UR12e和UR15通过创新技术和精准设计满足了不同行业的多样化需求。其中,UR15以其速度、精度及人工智能准备能力成为自动化领域的重要突破。UR7e和UR12e则在负载规格和市场定位上不断优化…...
springboot整合VUE之在线教育管理系统简介
可以学习到的技能 学会常用技术栈的使用 独立开发项目 学会前端的开发流程 学会后端的开发流程 学会数据库的设计 学会前后端接口调用方式 学会多模块之间的关联 学会数据的处理 适用人群 在校学生,小白用户,想学习知识的 有点基础,想要通过项…...
安全突围:重塑内生安全体系:齐向东在2025年BCS大会的演讲
文章目录 前言第一部分:体系力量是突围之钥第一重困境是体系思想落地不畅。第二重困境是大小体系融合瓶颈。第三重困境是“小体系”运营梗阻。 第二部分:体系矛盾是突围之障一是数据孤岛的障碍。二是投入不足的障碍。三是新旧兼容难的障碍。 第三部分&am…...
FFmpeg:Windows系统小白安装及其使用
一、安装 1.访问官网 Download FFmpeg 2.点击版本目录 3.选择版本点击安装 注意这里选择的是【release buids】,注意左上角标题 例如我安装在目录 F:\FFmpeg 4.解压 5.添加环境变量 把你解压后的bin目录(即exe所在文件夹)加入系统变量…...
