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

【MySQL Shell】8.9.1 在 InnoDB ClusterSet 中隔离集群

在发生紧急故障切换后,如果 ClusterSet 的各个部分之间存在事务集不同的风险,则必须保护集群不受写入流量或所有流量的影响。

如果发生网络分区,则有可能出现脑裂的情况,即实例失去同步,无法正确通信以定义同步状态。当 DBA 决定强制选择一个副本集群成为主集群时,产生多于一个主集群,可能会出现脑裂,从而导致脑裂问题。

在这种情况下,DBA 可以选择隔离原始主集群:

  • 写入流向。
  • 所有流量。

有三种隔离操作:
-<Cluster>.fenceWrites() : 停止对 ClusterSet 的主集群的写入流量。副本集群不接受写入,因此此操作对它们没有影响。
从 8.0.31 起,可以在 INVALIDATED 副本集群上使用。此外,如果在禁用 super_read_only 的副本集群上运行,它将启用它。

  • <Cluster>.unfenceWrites() : 恢复写入流量。此操作可以在以前使用 <Cluster>.fenceWrites() 操作阻止写入流量的集群上运行。
    无法在副本集群上使用 cluster.unfenceWrites()
  • <Cluster>.fenceAllTraffic() : 将集群与所有流量隔离。如果您使用 <Cluster>.fenceAllTraffic() 保护了一个集群免受所有流量的影响,则必须使用 MySQL Shell 命令 dba.rebootClusterFromCompleteOutage() 重新启动集群。

有关 dba.rebootClusterFromCompleteOutage() 的更多信息,请参阅 第 7.8.3 节 “从重大停机事故中重新启动集群” 。

fenceWrites()
在副本集群上执行 .fenceWrites() 返回报错:

ERROR: Unable to fence Cluster from write traffic: 
operation not permitted on REPLICA Clusters
Cluster.fenceWrites: The Cluster '<Cluster>' is a REPLICA Cluster 
of the ClusterSet '<ClusterSet>' (MYSQLSH 51616)

尽管您主要在属于 ClusterSet 的集群上使用隔离,但也可以使用 <Cluster>.fenceAllTraffic() 隔离独立集群。

  1. 要阻止主集群写入流量,请按如下方式使用 cluster.fenceWrites 命令:

    <Cluster>.fenceWrites()
    

    运行命令后:

    • 集群上禁用了自动 super_read_only 管理。
    • 在集群中的所有实例上都启用了 super_read_only
    • 所有应用程序都被阻止在集群上执行写入操作。
    cluster.fenceWrites()The Cluster 'primary' will be fenced from write traffic* Disabling automatic super_read_only management on the Cluster...* Enabling super_read_only on '127.0.0.1:3311'...* Enabling super_read_only on '127.0.0.1:3312'...* Enabling super_read_only on '127.0.0.1:3313'...NOTE: Applications will now be blocked from performing writes on Cluster 'primary'. Use <Cluster>.unfenceWrites() to resume writes if you are certain a split-brain is not in effect.Cluster successfully fenced from write traffic
    
  2. 要检查是否已将主集群与写入流量隔离,请使用 <cluster>.status 命令,如下所示:

          <Cluster>.clusterset.status()
    

    输出如下:

    clusterset.status(){"clusters": {"primary": {"clusterErrors": ["WARNING: Cluster is fenced from Write traffic. Use cluster.unfenceWrites() to unfence the Cluster."],"clusterRole": "PRIMARY","globalStatus": "OK_FENCED_WRITES","primary": null,"status": "FENCED_WRITES","statusText": "Cluster is fenced from Write Traffic."},"replica": {"clusterRole": "REPLICA","clusterSetReplicationStatus": "OK","globalStatus": "OK"}},"domainName": "primary","globalPrimaryInstance": null,"primaryCluster": "primary","status": "UNAVAILABLE","statusText": "Primary Cluster is fenced from write traffic."
    
  3. 要解除隔离集群并恢复到主集群的写入流量,请按如下方式使用 cluster.fenceWrites 命令:

    <Cluster>.unfenceWrites()
    

    主集群上的自动 super_read_only 管理已启用,主集群实例上的 super_read_only 状态已启用。

    cluster.unfenceWrites()The Cluster 'primary' will be unfenced from write traffic* Enabling automatic super_read_only management on the Cluster...* Disabling super_read_only on the primary '127.0.0.1:3311'...Cluster successfully unfenced from write traffic
    
  4. 要将集群与所有流量隔离,请使用 cluster.fenceAllTraffic 命令,如下所示:

    <Cluster>.fenceAllTraffic()
    

    super_read_only 状态在集群实例的主实例上启用。在集群中的所有实例上启用 offline_mode 之前:

    cluster.fenceAllTraffic()The Cluster 'primary' will be fenced from all traffic* Enabling super_read_only on the primary '127.0.0.1:3311'...* Enabling offline_mode on the primary '127.0.0.1:3311'...* Enabling offline_mode on '127.0.0.1:3312'...* Stopping Group Replication on '127.0.0.1:3312'...* Enabling offline_mode on '127.0.0.1:3313'...* Stopping Group Replication on '127.0.0.1:3313'...* Stopping Group Replication on the primary '127.0.0.1:3311'...Cluster successfully fenced from all traffic
    
  5. 要解除隔离集群的所有流量,请使用 MySQL Shell命令 dba.rebootClusterFromCompleteOut() 。恢复集群后,当被问及是否要将实例重新连接到集群时,可以通过选择 Y 来重新连接实例到集群:

    cluster = dba.rebootClusterFromCompleteOutage()Restoring the cluster 'primary' from complete outage...The instance '127.0.0.1:3312' was part of the cluster configuration.Would you like to rejoin it to the cluster? [y/N]: YThe instance '127.0.0.1:3313' was part of the cluster configuration.Would you like to rejoin it to the cluster? [y/N]: Y* Waiting for seed instance to become ONLINE...127.0.0.1:3311 was restored.Rejoining '127.0.0.1:3312' to the cluster.Rejoining instance '127.0.0.1:3312' to cluster 'primary'...The instance '127.0.0.1:3312' was successfully rejoined to the cluster.Rejoining '127.0.0.1:3313' to the cluster.Rejoining instance '127.0.0.1:3313' to cluster 'primary'...The instance '127.0.0.1:3313' was successfully rejoined to the cluster.The cluster was successfully rebooted.<Cluster:primary>
    

相关文章:

【MySQL Shell】8.9.1 在 InnoDB ClusterSet 中隔离集群

在发生紧急故障切换后&#xff0c;如果 ClusterSet 的各个部分之间存在事务集不同的风险&#xff0c;则必须保护集群不受写入流量或所有流量的影响。 如果发生网络分区&#xff0c;则有可能出现脑裂的情况&#xff0c;即实例失去同步&#xff0c;无法正确通信以定义同步状态。…...

Ubuntu20.04+cuda11.2+cudnn8.1+Anaconda3安装tensorflow-GPU环境,亲测可用

(1)安装nvidia显卡驱动注意Ubuntu20.04和Ubuntu16.04版本的安装方法不同,安装驱动前一定要更新软件列表和安装必要软件、依赖&#xff08;必须&#xff09;sudo apt-get update #更新软件列表sudo apt-get install gsudo apt-get install gccsudo apt-get install make查看GP…...

剑指Offer 第27天 JZ75 字符流中第一个不重复的字符

字符流中第一个不重复的字符_牛客题霸_牛客网 描述 请实现一个函数用来找出字符流中第一个只出现一次的字符。例如&#xff0c;当从字符流中只读出前两个字符 "go" 时&#xff0c;第一个只出现一次的字符是 "g" 。当从该字符流中读出前六个字符 “google&…...

科研试剂供应1476737-97-9,Bis-PEG2-endo-BCN可发生点击反应

●外观以及性质&#xff1a;Bis-PEG2-endo-BCN一般为白色固体&#xff0c;BCN其为点击试剂&#xff0c;点击化学&#xff08;Click chemistry&#xff09;&#xff0c;又译为“链接化学”、“动态组合化学” &#xff08;Dynamic Combinatorial Chemistry&#xff09;、“速配接…...

Zabbix 构建监控告警平台(一)--部署安装

监控对象监控收集信息方式Zabbix 部署 1.监控对象 源代码: *.html *.jsp *.php *.py 数据库&#xff1a; MySQL,MariaDB,Oracle,SQL Server,DB2 应用软件&#xff1a;Nginx,Apache,PHP,Tomcat agent 集群&#xff1a; LVS,Keepalived,HAproxy…...

【nodejs】nodejs入门核心知识(命令行使用、内置模块、node 模块化开发)

&#x1f4bb; nodejs入门核心知识(命令行使用、内置模块、node 模块化开发) &#x1f3e0;专栏&#xff1a;JavaScript &#x1f440;个人主页&#xff1a;繁星学编程&#x1f341; &#x1f9d1;个人简介&#xff1a;一个不断提高自我的平凡人&#x1f680; &#x1f50a;分享…...

5. Spring 事务

文章目录1. Spring 事务简介2. Spring 事务角色3. Spring 事务属性3.1 事务配置3.2 案例&#xff1a;转账业务追加日志3.3 事务传播行为1. Spring 事务简介 Spring 事务作用&#xff1a;在数据层或业务层保障一系列的数据库操作同成功、同失败。 数据层有事务我们可以理解&am…...

【堆】数据结构堆的实现(万字详解)

前言&#xff1a; 在上一期中我们讲到了树以及二叉树的基本的概念&#xff0c;有了之前的认识&#xff0c;今天我们将来具体实现一种二叉树的存储结构“堆”&#xff01;&#xff01;&#xff01; 目录1.二叉树顺序结构介绍2.堆的概念及结构3.调整算法3.1向上调整算法3.1.1算法…...

Docker进阶 - 9. docker network 之自定义网络

1. 运行两个tomcat实例&#xff0c;并进入容器内部 docker run -d -p 8081:8080 --name tomcat81 billygoo/tomcat8-jdk8 docker exec -it tomcat81 bashdocker run -d -p 8082:8080 --name tomcat82 billygoo/tomcat8-idk8 docker exec -it tomcat82 bash2. ping一下各自的ip…...

springcloud-工程创建(IDEA)

文章目录介绍springcloud 常用组件1.创建父工程2.删除父工程的src目录3.修改父工程的pom文件4 springcloud 版本依赖5.创建子模块6 子项目下创建启动类介绍 Spring Cloud 是一个基于 Spring Boot 实现的云应用开发工具&#xff0c;它为开发中的配置管理、服务发现、断路器、智…...

Blender——物体的随机分布

问题描述将正方体随机分布在平面上。问题解决点击编辑-->偏好设置。在【插件】中的【物体】类型中勾选【Object: Scatter Objects】。右下的活动工具与工作区设置中就会出现【物体散列】的模块&#xff0c;可以调节各参数。选中正方体&#xff0c;按着Shift&#xff0c;选中…...

一文教你玩转 Apache Doris 分区分桶新功能

数据分片&#xff08;Sharding&#xff09;是分布式数据库分而治之 (Divide And Conquer) 这一设计思想的体现。过去的单机数据库在大数据量下往往面临存储和 IO 的限制&#xff0c;而分布式数据库则通过数据划分的规则&#xff0c;将数据打散分布至不同的机器或节点上&#xf…...

Spring JdbcTemplate 和 事务

JdbcTemplate概述 JdbcTemplate是spring框架中提供的一个对象&#xff0c;是对原始繁琐的Jdbc API对象的简单封装。spring框架为我们提供了很多的操作模板类。例如&#xff1a;操作关系型数据的JdbcTemplate和&#xff0c;操作nosql数据库的RedisTemplate&#xff0c;操作消息…...

C/C++:程序环境和预处理/宏

程序的翻译环境和执行环境 在ANSI C的任何一种实现中&#xff0c;存在两个不同的环境。第1种是翻译环境&#xff0c;在这个环境中源代码被转换为可执行的机器指令。第2种是执行环境&#xff0c;它用于实际执行代码。 编译和链接 一份源代码(比如test.c)需要通过编译&#xf…...

什么是死锁?死锁产生的四个必要条件是啥?如何避免和预防死锁的产生?

点个关注&#xff0c;必回关 文章目录什么是死锁死锁产生的原因&#xff1a;1、系统资源的竞争2、进程运行推进顺序不当引起死锁产生死锁的四个必要条件&#xff1a;死锁的避免与预防什么是死锁 死锁是指两个或两个以上的线程在执行过程中&#xff0c;由于竞争资源或者由于彼此…...

工程管理系统源码-物料管理-工程项目管理系统-建筑施工管理软件

如今建筑行业竞争激烈&#xff0c;内卷严重&#xff0c;发展趋势呈现两极分化&#xff0c;中小微企业的生存空间被逐步压缩&#xff0c;利润逐年减少。事实证明&#xff0c;工地上粗放式的人管人管理模式已经落于时代&#xff0c;劳动力纠纷和物料浪费现象尤其普遍&#xff0c;…...

Roboguide与TIA V16通讯

软件需求:1. roboguide;2. TIA V16;3. KEPServer; 在之前的文章中介绍过KEPServer与TIA V16的通讯,此处不再介绍。接下来,介绍roboguide与KEPServer的仿真通讯。 创建一个roboguide项目。选择【外部设备】➡【添加外部设备】 选择【OPC Server】➡【OK】 OPC服务器名称命…...

利用PyTorch深度学习框架进行多元回归

目录前言数据加载数据转换模型定义模型训练模型评估模型保存与加载完整代码讨论参考文献前言 大多数数据科学家以往经常常是利用传统的机器学习框架sklearn搭建多元回归模型&#xff0c;随着深度学习和强化学习越来越普及&#xff0c;很多数据科学家尝试使用深度学习框架来进行…...

EBS常用接口开发

整理了一些工作中常用的Oracle EBS接口和API&#xff0c;最早是看着大神黄建华文档起来的&#xff0c;格式内容参考他的文档&#xff0c;加上一些自己开发的程序和经历而已。 PO PO接收、检验、入库、退货-InterfaceAPI_刘文钊1的博客-CSDN博客 基础数据 EBS物料、bom、工艺导入…...

【完整】UR机械臂逆运动学求解过程及c++代码实现

有任何问题请在评论区留言&#xff0c;我尽可能的回复大家 一. 逆运动学的求解需要以下数学运算 利用DH参数得到每个关节的变换矩阵&#xff1b;利用变换矩阵求出机械臂整个链的变换矩阵&#xff1b;求出末端位姿&#xff1b;利用已知末端位姿和整个链的变换矩阵&#xff0c;…...

el-switch文字内置

el-switch文字内置 效果 vue <div style"color:#ffffff;font-size:14px;float:left;margin-bottom:5px;margin-right:5px;">自动加载</div> <el-switch v-model"value" active-color"#3E99FB" inactive-color"#DCDFE6"…...

CocosCreator 之 JavaScript/TypeScript和Java的相互交互

引擎版本&#xff1a; 3.8.1 语言&#xff1a; JavaScript/TypeScript、C、Java 环境&#xff1a;Window 参考&#xff1a;Java原生反射机制 您好&#xff0c;我是鹤九日&#xff01; 回顾 在上篇文章中&#xff1a;CocosCreator Android项目接入UnityAds 广告SDK。 我们简单讲…...

从零开始打造 OpenSTLinux 6.6 Yocto 系统(基于STM32CubeMX)(九)

设备树移植 和uboot设备树修改的内容同步到kernel将设备树stm32mp157d-stm32mp157daa1-mx.dts复制到内核源码目录下 源码修改及编译 修改arch/arm/boot/dts/st/Makefile&#xff0c;新增设备树编译 stm32mp157f-ev1-m4-examples.dtb \stm32mp157d-stm32mp157daa1-mx.dtb修改…...

OpenLayers 分屏对比(地图联动)

注&#xff1a;当前使用的是 ol 5.3.0 版本&#xff0c;天地图使用的key请到天地图官网申请&#xff0c;并替换为自己的key 地图分屏对比在WebGIS开发中是很常见的功能&#xff0c;和卷帘图层不一样的是&#xff0c;分屏对比是在各个地图中添加相同或者不同的图层进行对比查看。…...

微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据

微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据 Power Query 具有大量专门帮助您清理和准备数据以供分析的功能。 您将了解如何简化复杂模型、更改数据类型、重命名对象和透视数据。 您还将了解如何分析列&#xff0c;以便知晓哪些列包含有价值的数据&#xff0c;…...

重启Eureka集群中的节点,对已经注册的服务有什么影响

先看答案&#xff0c;如果正确地操作&#xff0c;重启Eureka集群中的节点&#xff0c;对已经注册的服务影响非常小&#xff0c;甚至可以做到无感知。 但如果操作不当&#xff0c;可能会引发短暂的服务发现问题。 下面我们从Eureka的核心工作原理来详细分析这个问题。 Eureka的…...

Razor编程中@Html的方法使用大全

文章目录 1. 基础HTML辅助方法1.1 Html.ActionLink()1.2 Html.RouteLink()1.3 Html.Display() / Html.DisplayFor()1.4 Html.Editor() / Html.EditorFor()1.5 Html.Label() / Html.LabelFor()1.6 Html.TextBox() / Html.TextBoxFor() 2. 表单相关辅助方法2.1 Html.BeginForm() …...

前端中slice和splic的区别

1. slice slice 用于从数组中提取一部分元素&#xff0c;返回一个新的数组。 特点&#xff1a; 不修改原数组&#xff1a;slice 不会改变原数组&#xff0c;而是返回一个新的数组。提取数组的部分&#xff1a;slice 会根据指定的开始索引和结束索引提取数组的一部分。不包含…...

第八部分:阶段项目 6:构建 React 前端应用

现在&#xff0c;是时候将你学到的 React 基础知识付诸实践&#xff0c;构建一个简单的前端应用来模拟与后端 API 的交互了。在这个阶段&#xff0c;你可以先使用模拟数据&#xff0c;或者如果你的后端 API&#xff08;阶段项目 5&#xff09;已经搭建好&#xff0c;可以直接连…...

前端调试HTTP状态码

1xx&#xff08;信息类状态码&#xff09; 这类状态码表示临时响应&#xff0c;需要客户端继续处理请求。 100 Continue 服务器已收到请求的初始部分&#xff0c;客户端应继续发送剩余部分。 2xx&#xff08;成功类状态码&#xff09; 表示请求已成功被服务器接收、理解并处…...