使用orchestrator搭建mysql8.0三节点集群的参数配置,记网络连接失效导致的一次故障

orchestrator高可用复制管理工具的安装部署 Orchestrator是一款开源,对MySQL复制提供高可用、拓扑的可视化管理工具,采用go语言编写,它能够主动发现当前拓扑结构和主从复制状态,支持MySQL主从复制拓扑关系的调整、支持MySQL主库故障自动切换(failover)、手动主从切换(switchover)等功能。 阅读详情

记使用orchestrator搭建mysql8.0三节点集群,网络连接失效导致的一次故障及修复

mysql半同步配置

mysql集群是一主双从的三节点集群,使用orchestrator管理该集群。

使用半同步方式配置集群,主节点写需要等到一个从节点接收到relay-log并返回成功ack,才能成功完成写操作。

配置用户

create user repl@'%' identified with mysql_native_password by '123';
grant replication slave on *.* to repl@'%';

repl用户专门用来做数据复制。

配置主从

从节点上执行:

stop slave;
CHANGE MASTER TO MASTER_HOST='MasterIP', MASTER_USER='repl', MASTER_PORT=3306,master_auto_position=1,MASTER_RETRY_COUNT=86400;
start slave;

配置插件

主节点执行:
mysql>INSTALL PLUGIN rpl_semi_sync_master SONAME 'semisync_master.so';
[要保证/usr/local/mysql/lib/plugin/目录下有semisync_master.so文件 (默认编译安装后就有)]

如果要卸载(前提是要关闭半同步复制功能),就执行
mysql> UNINSTALL PLUGIN rpl_semi_sync_master;

从节点执行:
mysql> INSTALL PLUGIN rpl_semi_sync_slave SONAME 'semisync_slave.so';
[要保证/usr/local/mysql/lib/plugin/目录下有semisync_slave.so文件 (默认编译安装后就有)]

如果要卸载(前提是要关闭半同步复制功能),就执行
mysql> UNINSTALL PLUGIN rpl_semi_sync_slave;

配置参数

主节点关键参数:
 rpl_semi_sync_master_enabled=1
 rpl_semi_sync_master_wait_for_slave_count=1
 rpl_semi_sync_master_wait_no_slave=1
 rpl_semi_sync_master_timeout=60
 rpl_semi_sync_slave_enabled=0(这个在主节点上是0是1好像没什么关系T_T)

说明:rpl_semi_sync_master_enabled要设置为1,代表这是主节点的角色
 		   rpl_semi_sync_master_wait_for_slave_count设置为1,代表一个节点同步,一个节点异步,这样符合半同步实例的含义;

主节点、从节点可以观察的一些关键参数:
mysql>show global variables like "%sync%"; show global status like "%sync%";
+-------------------------------------------+------------+
| Variable_name                             | Value      |
+-------------------------------------------+------------+
| rpl_semi_sync_master_enabled              | ON         |
| rpl_semi_sync_master_timeout              | 60000      |
| rpl_semi_sync_master_wait_for_slave_count | 3          |
| rpl_semi_sync_master_wait_no_slave        | ON         |
| rpl_semi_sync_master_wait_point           | AFTER_SYNC |
| rpl_semi_sync_slave_enabled               | ON         |
+-------------------------------------------+------------+
18 rows in set (0.00 sec)

+--------------------------------------------+----------+
| Variable_name                              | Value    |
+--------------------------------------------+----------+
| Rpl_semi_sync_master_clients               | 1        |
| Rpl_semi_sync_master_status                | ON       |
| Rpl_semi_sync_slave_status                 | OFF      |
+--------------------------------------------+----------+
19 rows in set (0.00 sec)

【Rpl_semi_sync_master_clients】:当前能够给与反馈的从库数量

【Rpl_semi_sync_master_status】:on为半同步复制,off为异步复制

【Rpl_semi_sync_slave_status】:动态调整rpl_semi_sync_slave_enabled=on,restart slave io thread才能让slave的Rpl_semi_sync_slave_status动态变化,进而让主库的Rpl_semi_sync_master_clients动态增减;

【rpl_semi_sync_master_wait_for_slave_count】:
  1.master提交后所需的应答数量!如果slave clients数量大于等于这个值,那么master会一路畅行无阻;如果低于这个值,master可能会在事务提交阶段发生一次超时等待,当等待超过参数(rpl_semi_sync_master_timeout)设定时,master就转为异步模式(原理见下一个参数)。
  2.master将这个参数值作为标杆,用来和Rpl_semi_sync_master_clients参数做比较。
  
【rpl_semi_sync_master_wait_no_slave】:

1.为OFF时,只要master发现Rpl_semi_sync_master_clients小于rpl_semi_sync_master_wait_for_slave_count,则master立即转为异步模式。

2.为ON时,空闲时间(无事务提交)里,即使master发现Rpl_semi_sync_master_clients小于rpl_semi_sync_master_wait_for_slave_count,也不会做任何调整。只要保证在事务超时之前,master收到大于等于rpl_semi_sync_master_wait_for_slave_count值的ACK应答数量,master就一直保持在半同步模式;如果在事务提交阶段(master等待ACK)超时,master才会转为异步模式。

故障发生

我们的配置是一主两从,半同步复制,rpl_semi_sync_master_wait_for_slave_count=1。
rpl_semi_sync_master_timeout=100000000000000(让主节点一直等,考虑到数据安全的问题)

使用ifdown关闭从节点rpl_semi_sync_slave_enabled=on的网卡,主节点写会一直卡住。

(这里说明一下,如果不是关网卡,而是关mysql服务,并不会出现这种情况,orchestrator会检测到该节点的mysql服务挂掉了,然后将另外一个节点的rpl_semi_sync_slave_enabled置为on,这样就不必等待rpl_semi_sync_master_timeout时间让主从复制退化成异步复制了。我们的初衷是一直保持半同步,这样数据至少存在两个点上,数据安全性比较高。)

故障原因

目前想到的是由于网卡关闭,该节点上的orchestrator并不能够将自己检测到的结果同步到其他点上,因此另外一个从节点也就接收不到修改rpl_semi_sync_slave_enabled这个参数的命令,所以就会一直等待下去。

MySQL高可用——Orchestrator架构、配置文件详细介绍和单机搭建部署 orchestrator可以选择执行自动恢复(或允许用户选择手动恢复的类型)。orchestrator了解复制规则。即使遇到故障,也可以为MySQL环境的拓扑提供流畅的可视化效果,包括复制问题。同时需要注意的是,Orchestrator的server端需要和对外提供服务的MySQL放在一起的,Orchestrator的专属后端可以放到远程服务器上,这点在配置文件中也有体现。在对外提供服务的MySQL服务器上创建用户,使orchestrator可以检测到该MySQL,从而绘制拓补图。 阅读详情

相关推荐

Ubuntu部署远程MySQL提升网站性能实战指南

远程数据库是Web系统架构中实现应用与数据解耦的基础技术概念,其核心原理在于通过网络隔离资源争抢、释放应用服务器内存与IO压力。该方案的技术价值体现在显著降低TTFB、稳定CPU负载、提升QPS吞吐,广泛应用于WordPress、电商后台、CMS等PHP/Python/Node.js中型Web项目。实际落地需兼顾MySQL服务端调优与客户端连接池配置,尤其在Ubuntu系统上可依托其优化的网络栈、及时的APT官方源及丰富的排障生态,高效构建安全、可控、可量化的生产级remote database服务。

dengwan3818的博客 357

orchestrator数据库高可用组件搭建

orchestrator数据库高可用组件搭建

ApexPredator的博客 501

美团运维安全岗笔试复盘:从Linux到K8s的考点全解析

在运维与安全融合的趋势下,基础架构的稳定性与防护能力已成为企业的核心诉求。从Linux进程管理、网络排障到数据库调优,再到Kubernetes容器编排与CI/CD流水线,每个环节都要求工程师既懂原理又会排障。Web安全、加密算法与日志分析等技能,则保障了系统在真实攻击下的可追溯性与可恢复性。本文以一场真实的运维安全岗笔试为切入点,系统复盘了从Linux、MySQL、Redis到K8s、容器安全及AIOps的考点,并给出了面向生产环境的备考思路。

weixin_30780649的博客 432

Orchestrator部署

一、Orchestrator简介 Orchestrator是一款开源(go编写)的MySQL复制拓扑管理工具,支持MySQL主从复制拓扑关系的调整、主库故障自动切换(包括备库升级为主库和vip切换)、手动主从切换等功能。 提供Web界面展示MySQL集群的拓扑关系及状态,可以更改MySQL实例的部分配置信息,也提供命令行和api接口。 是一款与MHA类似的mysql主从管理工具,相比于MHA,orchestrator有web界面展示主从复制拓扑图,而且MHA 管理节点的单点问题,orchestrat

Du.的博客 3569

Agent Runtime 正在成为AI时代的操作系统层

Agent runtime 是指支撑大模型智能体(Agent)长期、可靠、可审计执行的底层运行时环境,其核心在于状态管理、沙箱隔离与事件驱动架构。随着 Claude Managed Agents、AWS AgentCore 等产品将 session-as-event-log、harness-as-executor、sandbox-as-cattle 三大范式标准化,runtime 层正从框架私有实现演进为通用基础设施。它解决了模型 context 窗口物理限制导致的状态丢失、凭证泄露风险、不可追溯性等生产级

weixin_33857679的博客 456

MySQL高可用方案orchestrator简介

官方地址https://github.com/github/orchestrator 介绍 Orchestrator是MySQL高可用性和复制管理工具,可作为服务运行,并提供命令行访问,HTTP API和Web界面 1 发现 Discovery orch可以自动发现MySQL复制拓扑,提供可视化,可以在web页面展示,orch本身具有高可用。 2 重构Refactoring orch可以重构MySQL复制关系,可以在web进行拖图来进行复制关系变更 3恢复Recovery ...

DBA之路的博客 2514

Linux面试题

通过VRRP协议实现主备切换,虚拟IP(VIP)在主节点故障时漂移到备用节点。:磁盘空间不足,如何快速定位大文件?:如何临时修改系统最大打开文件数?访问日志中每个IP的访问次数?仅允许特定IP访问22端口?:如何分析系统负载高的原因?:如何优化TCP连接回收?观察内存使用趋势,结合。:如何检测内存泄漏?

wanglolaini的博客 711

【信息科学与工程学】计算机科学与自动化——第八十一篇 Java分布式软件高并发/高可用算法01

4. 消息队列(如Kafka的Topic分区,本质是范围)。3. 若是ACCEPT事件,bossGroup线程接受连接,创建SocketChannel,并将其注册到workerGroup的一个EventLoop的Selector上,关注READ事件。1. 分布式缓存分片(如Redis Cluster)。4. 分布式文件存储(如Ceph CRUSH)。6. 调用栈的模拟(如协程)。3. 服务网格(如Istio)的基础。2. 本地缓存与集中式缓存(如Redis)的一致性维护。3. 静态数据(如配置)缓存。

weixin_49199313的博客 1224

工作中使用到的单词(软件开发)

1.エイリアス   alias 别名 powershell使用 get-help 命令时,会得到与此命令 相关(别名)的命令 2.プロキシ proxy 代 理 3.プロモート   promote 促进,提升   开发的系统新功能上线发布,有时会使用到这个词,比如 STプロモート 还有使用リリース这个词的。比如STリリース。个人认为两者含义相同。 4.見逃し み................................................................

sun0322 6万+

【信息科学与工程学】【数据中心】 第七篇 智算中心CLOS组网整体设计

区域主要功能网络要求技术选型安全等级可用性要求训练区​大规模AI模型训练,分布式计算超高带宽(100G+),超低延迟(<1ms),无损网络RoCEv2,PFC,DCQCN,多路径P4(最高)99.99%推理区​实时AI推理,模型服务低延迟(<10ms),高可用,弹性扩展智能负载均衡,服务网格,容器网络P3(高)99.999%公共服务区​统一认证,API网关,数据服务多租户隔离,安全防护,弹性带宽VXLAN,EVPN,微隔离P3(高)99.99%存储区​高性能存储,数据湖超高带宽,低延迟,高IOPSNVMe-

weixin_49199313的博客 1370

【信息科学与工程学】【运营科学】第二篇 C4信息与通信网络运营 (C4) ——数据中心网络运营01

这是运营的物理和逻辑对象。C4.11xx 传输资源:光纤、微波、卫星链路;频谱资源(Sub-6GHz, 毫米波)。C4.12xx 节点资源:核心路由器、交换机、基站(gNB)、数据中心服务器。C4.13xx 虚拟化资源:由NFV生成的虚拟网络功能(VNF)、容器、虚拟机和网络切片实例。这是实现智能、灵活运营的核心技术集。C4.21xx 软件定义与虚拟化:软件定义网络 (SDN):控制平面与数据平面分离,实现集中、可编程的网络控制。网络功能虚拟化 (NFV):将传统专用硬件设备的功能以软件形式运行在通用硬件上

weixin_49199313的博客 1450

QOwnNotes AppImage 安装指南:下载、便携模式与密钥环配置详解

QOwnNotes 是一款支持 Markdown 与 Nextcloud / ownCloud 同步的纯文本笔记与待办事项管理工具。本指南围绕官方 AppImage 发行版,系统讲解从下载、授权执行到便携模式(Portable Mode)与系统密钥环(Keychain)配置的完整实战流程。读完本文,你将掌握 AppImage 与普通安装包在数据存放路径上的本质差异,能够把 QOwnNotes 连同

gitblog_00065的博客 715

一生一芯——用RTL实现最简单的处理器NPC(南大数逻计组RV32ICPU) 代码及思考参考

本文介绍自己前期用Verilog编写的基于RV32I指令集的CPU,个人认为是最简单最易懂的版本(即没做什么优化,即代码很水,没有考虑一些奇怪的情况,只适用简单指令序列,即题目所示最简单的处理器),适合新手练手Verilog以及了解简单CPU的运行过程。本文基于一生一芯,利用Verilator进行仿真,并用gtkwave查看波形,不了解verilator和gtkwave的可以看前几篇文章。

long0_o的博客 3307

认识和学习orchestrator之基本使用篇

01介绍orchestrator目前GitHub上star 4.5k+,非常适用于有多个数据中心MySQL集群的管理。该工具使用起来很简单,但能用好却不容易,其配置参数将近200个,后端存储表47张,下面将介绍orchestrator以及它的使用方法。02orchestrator是什么2.1功能其是一个管理MySQL复制拓扑的高可用、管理、可视化的工具。会定时采集探测到...

HULK一线技术杂谈 6067

基于STM32F103与AD8232的便携式心电监测系统设计与实现

本文详细介绍基于STM32F103微控制器与AD8232心电传感器模块的便携式心电监测系统设计与实现。系统通过ADC采集心电信号,结合软件滤波算法处理基线漂移和工频干扰,并利用OLED屏幕实时显示波形,具有低成本、高实用性的特点,适用于健康监测与嵌入式学习。

m5n6o7的博客 737

MATLAB锂离子电池伪二维(P2D)模型实现

锂离子电池伪二维(P2D)模型的MATLAB实现。该模型基于Newman等人提出的经典电化学模型,考虑了固液相扩散、电荷守恒和电化学反应动力学。

hie98894的博客 1928

Mysql orchestrator高可用

Orchestrator是一款开源,对MySQL复制提供高可用、拓扑的可视化管理工具,采用go语言编写,它能够主动发现当前拓扑结构和主从复制状态,支持MySQL主从复制拓扑关系的调整、支持MySQL主库故障自动切换(failover)、手动主从切换(switchover)等功能。............

u010648194的博客 3327

来!简单了解一下计算机发展史!

​ 1936年,英国数学家阿兰・麦席森・图灵提出了一种抽象的计算模型——图灵机( Turing machine)。图灵机,又称图灵计算机,即将人们使用纸笔进行数学运算的过程进行抽象,由一个虚拟的机器替代人类进行数学运算。​ 图灵机是一个抽象的机器,它有一条无限长的纸带,纸带分成了一个一个的小方格,每个方格有不同的颜色。有一个机器头在纸带上移来移去。机器头有一组内部状态,还有一些固定的程序。

m0_57290404的博客 2903

MySQL高可用复制管理工具 —— Orchestrator使用

MySQL高可用复制管理工具 —— Orchestrator使用

小软的博客 2089

【SAP报错】BK128&K5112

在ECC中使用CO1F进行Progressive confirmation时,依次遇到了如下的报错。

weixin_45228526的博客 783

Unity接入Google登录:Credential Manager完整集成指南与避坑实践

在移动应用开发中,第三方登录是提升用户体验和降低注册门槛的关键技术。其核心原理是通过OAuth 2.0等授权协议,安全地获取用户在平台的身份凭证。对于面向海外市场的Unity应用,Google登录因其庞大的用户基数成为首选方案。然而,随着Android系统更新和隐私政策收紧,传统的WebView登录方式面临兼容性挑战。Credential Manager作为Google推出的现代化凭据管理API,通过系统级集成解决了这一问题,它统一了密码、通行密钥和第三方登录的调用接口,显著提升了登录成功率和原生体验。在U

weixin_28025327的博客 318

采用MyCat2 搭建MySQL8.0 读写分离

1.2.CentOS 7默认安装了Mariad,所以执行以下命令只是更新Mariadb数据库 1.3 安装mysql源 1.4 检查MySQL源是否安装成功 1.5 安装MySQL 1.6 修改MySQL配置文件 1.7 启动MySQL 1.8 登陆MySQL 修改默认密码 1.9 开启远程登陆 二、搭建MySQL主从复制 2. 搭建主从复制(主机:192.168.16.128 从机:192.169.16.129) 2.1 修改主机配置文件 2.2 修改从机配置文件

weixin_48701849的博客 811

Flutter 自适应布局一套代码适配手机和平板(12)

通过LayoutBuilder组件动态检测屏幕尺寸,根据宽度阈值(600px)选择不同布局方式。在小屏幕上显示单页联系人分组,大屏幕采用侧边栏+详情面板的并排布局。核心实现包括:1)使用LayoutBuilder获取父容器约束条件;2)定义大屏幕和小屏幕的布局断点;3)构建响应式界面组件,其中大屏幕布局采用Row横向排列固定宽度侧边栏和弹性宽度的详情区域。这种方案可确保应用在不同设备上都能提供最佳显示效果。

hello.reader 315

PXC8.0集群搭建遇见的坑

PXC8.0安装时SSL密钥证书引起的节点启动失败

weixin_43795172的博客 2043

开源免费!ReaLTaiizor如何用MIT许可证打造专业级WinForm UI?

摘要: ReaLTaiizor是一款开源UI控件库,为WinForm应用提供现代化界面解决方案。支持100+组件、多主题切换(浅色/深色/自定义)和.NET 4.8-8.0全版本兼容,MIT许可证允许免费商用。通过NuGet快速安装,3步改造传统界面:1)注入主题(如this.Theme = new Dark()),2)替换原生控件为高颜值组件(如ModernGrid替代DataGridView),3)集成高级功能(分页/动画提示)。典型场景包括登录界面美化(进度动画+通知控件)和数据表格Material风

墨夶的博客 1520

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

浅谈percona-xtradb-8.0集群搭建过程

一2 一、安装包下载 下载地址: percona-xtradb-cluster8.0:https://www.percona.com/downloads/Percona-XtraDB-Cluster-LATEST/ 安装中可能需要的依赖qpress:https://repo.percona.com/yum/release/7/RPMS/x86_64/qpress-11-1.el7.x86_64.rpm 若以yum方式安装,请自行配置percona的yum源,官方安装yum源的方法链接:https.

DWJRIVER的博客 2233

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

上一篇: pg能够提高可靠性的参数,pg_checksums
下一篇: 使用kubeadm部署k8s1.24.0版本,遇到的坑总结
code_feien
博客等级 码龄7年 71粉丝 85原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值