故障的机器修好后重启,狂拉主库binlog,导致网络问题,造成一定影响

本文涉及的产品
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
简介:

本文主要记录一次简单的、典型的故障,发生问题的原因很简单,这个问题发生也很简单,各位同学一定要注意,一不留神就会对主库造成影响。 


欢迎转载,请注明作者、出处。

作者:张正
blog:http://space.itpub.net/26355921 
QQ:176036317
如有疑问,欢迎联系。

问题简述:
一周前,有一台mysql服务器发生硬件故障,停机了。我们给专门负责这块的同学提交了申请,他们负责去报修这台服务器。今天这台服务器修好后,他们将其开机启动。服务器上的4个mysql实例在开机后自动启动,开始拉主库的binlog。由于这台服务器停机时间比较久,日志丢的比较多,狂拉主库的binlog,导致主库网络出现问题。

现象:
首先,我们完全没有意识到是因为一台坏掉的服务器重启拉主库binlog导致的,因为我们压根不知道 这台服务器什么情况,只知道1周前,我们报修了1台服务器。具体什么情况,有没有修好,有没有开机,我们完全不知道。
在这样的情况下,忽然听到网络的同学说mysql有一台机器网络流量过大,导致业务感觉很慢,总共持续了17分钟。其实这样,是没有多大头绪的。
排查:
查看processlist、全日志、慢日志都没有发现有什么问题。
查看监控,发现那段时间的服务器的读IO骤然升高。
通过查看processlist的历史记录,发现有一段时间,主从复制的用户 状态是 waiting for net,通过其IP发现该服务器是1周前坏掉的一个slave服务器。
结论:
这台服务器上有4个实例,服务器启动后,mysql实例自动启动,开始向主库上拉binlog,每个主库每天的binlog量大概6G,4个实例1个星期大概160多G的binlog。
问题:
1、坏掉的服务器什么时候修好,什么时候开机,我们不可控,也不知道,也没有关注
2、这种案例其实是 很简单、很典型的可能造成影响或故障的case,我们提前没有对这个现象有警觉,虽然知道这是个很容易出现的问题,但是在我们的case中,完全没有这方面的意识。因此导致该事件发生
3、对于网络流量这块,缺乏有效监控
解决方法:
1、所有服务器,取消开机自动启动mysql,服务器开机后,人为启动实例,停slave。(这样,如果服务器很多,可能过于麻烦,暂且先这样记录下来,总比造成影响强)
2、意识到该问题,将该问题纳入避免问题的 常识库工作手册中去。
本文转自ITPUB博客84223932的博客,原文链接:故障的机器修好后重启,狂拉主库binlog,导致网络问题,造成一定影响,如需转载请自行联系原博主。
相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
5月前
|
C++
基于Reactor模型的高性能网络库之地址篇
这段代码定义了一个 InetAddress 类,是 C++ 网络编程中用于封装 IPv4 地址和端口的常见做法。该类的主要作用是方便地表示和操作一个网络地址(IP + 端口)
320 58
|
5月前
|
网络协议 算法 Java
基于Reactor模型的高性能网络库之Tcpserver组件-上层调度器
TcpServer 是一个用于管理 TCP 连接的类,包含成员变量如事件循环(EventLoop)、连接池(ConnectionMap)和回调函数等。其主要功能包括监听新连接、设置线程池、启动服务器及处理连接事件。通过 Acceptor 接收新连接,并使用轮询算法将连接分配给子事件循环(subloop)进行读写操作。调用链从 start() 开始,经由线程池启动和 Acceptor 监听,最终由 TcpConnection 管理具体连接的事件处理。
230 2
|
5月前
基于Reactor模型的高性能网络库之Tcpconnection组件
TcpConnection 由 subLoop 管理 connfd,负责处理具体连接。它封装了连接套接字,通过 Channel 监听可读、可写、关闭、错误等
175 1
|
5月前
|
负载均衡 算法 安全
基于Reactor模式的高性能网络库之线程池组件设计篇
EventLoopThreadPool 是 Reactor 模式中实现“一个主线程 + 多个工作线程”的关键组件,用于高效管理多个 EventLoop 并在多核 CPU 上分担高并发 I/O 压力。通过封装 Thread 类和 EventLoopThread,实现线程创建、管理和事件循环的调度,形成线程池结构。每个 EventLoopThread 管理一个子线程与对应的 EventLoop(subloop),主线程(base loop)通过负载均衡算法将任务派发至各 subloop,从而提升系统性能与并发处理能力。
321 3
|
5月前
|
JSON 监控 网络协议
干货分享“对接的 API 总是不稳定,网络分层模型” 看电商 API 故障的本质
本文从 OSI 七层网络模型出发,深入剖析电商 API 不稳定的根本原因,涵盖物理层到应用层的典型故障与解决方案,结合阿里、京东等大厂架构,详解如何构建高稳定性的电商 API 通信体系。
|
5月前
基于Reactor模式的高性能网络库github地址
https://github.com/zyi30/reactor-net.git
148 0
|
5月前
基于Reactor模型的高性能网络库之Poller(EpollPoller)组件
封装底层 I/O 多路复用机制(如 epoll)的抽象类 Poller,提供统一接口支持多种实现。Poller 是一个抽象基类,定义了 Channel 管理、事件收集等核心功能,并与 EventLoop 绑定。其子类 EPollPoller 实现了基于 epoll 的具体操作,包括事件等待、Channel 更新和删除等。通过工厂方法可创建默认的 Poller 实例,实现多态调用。
328 60
|
5月前
基于Reactor模型的高性能网络库之Channel组件篇
Channel 是事件通道,它绑定某个文件描述符 fd,注册感兴趣的事件(如读/写),并在事件发生时分发给对应的回调函数。
284 60
|
5月前
|
安全 调度
基于Reactor模型的高性能网络库之核心调度器:EventLoop组件
它负责:监听事件(如 I/O 可读写、定时器)、分发事件、执行回调、管理事件源 Channel 等。
337 57
|
5月前
基于Reactor模型的高性能网络库之时间篇
是一个用于表示时间戳(精确到微秒)**的简单封装类
222 57