对于mysql 故障的定位和排查

故障表现

  • 他的执行时间超过规定的限制(比如1000ms)
  • CPU使用率高
  • 大量业务失败,数据连接异常
  • 执行sql越来越慢,失败越来越多

解决方案

定位 + 应急 + 故障恢复

定位

  • 查询慢sql的日志
  • 查看mysql 的performance schena(里面有锁和各种状态)和show processList
  • 是否请求出现请求积压,是否数据库执行时间是否快速增加,出现超时
  • 获取故障日志,查看异常的原因(是too many connection,还是超时)
  • 查看连接池申请的连接数据量,并且定时查看。看是否连接数暴增,是否有连接数泄露的问题。还有是否有服务异常的使用了过多的连接数。
  • 假如有缓存的话,是否出现缓存穿透、缓存雪崩等故障
  • 如果存在主从多个节点的话,定位是否是单个节点出现故障/性能问题而导致异常,是否有某个节点登录不上
  • 查看对应服务的日志量是否大量增加,请求的qps是否爆发性增长(由于用户压测、节假日高峰期、活动导致的qps瞬间增加)
  • 是否有运维故意的写错sql、删库或者其他行为,导致数据库本身出现问题
  • 是否有节点状态异常、重启、切换等(mysql添加心跳检测)。当节点挂的多的情况下,可能会导致其他节点受到太多的业务压力,从而导致节点异常连环崩溃

应急:

  • show processlist,持续的杀掉慢查询的语句
  • 对慢查询的sql进行溯源,定位调用方IP,然后直接封禁掉对应IP的地址
  • 查询数据库节点对应的cpu占用 + 内存占用 + 磁盘占用
  • 对数据库进行切流
  • 扩容数据库副本数(这个没做过)

故障恢复

  • 是否对高峰期的sql进行限流(需要改动代码)、熔断、降级
  • 在可能的高峰期估算可能的qps,并申请设备、留足余量
  • 优化sql + 索引,替换慢查询的语法
  • 对数据进行反范式编程,允许一定的冗余以适应查询时间
  • 对过期数据进行清理,或者将历史数据更换到其他数据库
  • 备份binlog日志,然后对binlog进行解析,看sql占用时间
  • 添加普罗米修斯等监控,保证数据库的成功率
  • 对核心数据丢失进行人工补救

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/36520.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

flask-socket的实践

1.长连接和短连接的由来 1)TCP在真正的读写操作之前,server与client之间必须建立一个连接, 当读写操作完成后,双方不再需要这个连接时它们可以释放这个连接, 连接的建立通过三次握手,释放则需要四次握手…

用Roofline模型去分析pytorch和Triton算子

用Roofline模型去分析pytorch和Triton算子 1.参考链接2.测试环境3.安装相关依赖4.锁频5.获取理论算力6.创建测试脚本7.运行测试程序生成Roofline图8.NVIDIA Nsight Compute生成Roofline9.效果图A.nn.LinearB.Triton实现 本文演示了如何用Roofline模型去分析pytorch和Triton算子…

如何快速判断IP被墙

IP被墙是指IP部分地区或者运营商无法被正常进行访问的一个情况。 被墙的原因有很多种不一一列举,由于被墙的时间短的为按周按月计算,时间长的则为按年计算,所以一般这种情况下只能选择更换IP。 检查办法: 第一,确认IP…

【银河麒麟】unzip程序卡住,处理机制详解,附代码

1.服务器环境以及配置 【机型】 处理器: HUAWEI,Kunpeng 920 内存: 400G 【内核版本】 4.19.90-23.18.v2101.ky10.aarch64 【OS镜像版本】 银河麒麟高级服务器操作系统V10-SP1-0711-arm 【第三方软件】 docker 2.问题现象描述 一台k8s服务器…

netconf_h3c_ac

# -*- coding:utf-8 -*- import xmltodict from ncclient import managerip=ACip地址, m=manager.connect(host=ip,port=830,username=账号,password=密码,hostkey_verify=False,device_params={name: h3c},allow_agent=False,look_for_keys=False,timeout=30)data_xml = <…

el-dropdown问题

问题&#xff1a;用element组件中的el-dropdown组件之后&#xff0c;发现随便点击屏幕任何地方控制台都会报错&#xff0c;之前使用的element的级联查询 &#xff0c;在加入这个组件之后点击空白地方下拉面板没办法收回去。 element-ui.common.js?ccbf:2432 Uncaught TypeErr…

水上实用救生工具_救生拉杆_鼎跃安全

每年&#xff0c;由于水上事故而失去生命的人数不胜数&#xff0c;水上安全问题也成为公众关注的焦点。如何在关键时刻实施有效的救援&#xff0c;成为保障生命的重要课题。作为水上救援的重要工具&#xff0c;救生拉杆在紧急情况下发挥了无可替代的作用。 救生拉杆&#xff0c…

springboot 缓存框架Cache整合redis组成二级缓存

springboot 缓存框架Cache整合redis组成二级缓存 项目性能优化的解决方案除开硬件外的方案无非就是优化sql&#xff0c;减少sql 的执行时间&#xff0c;合理运用缓存让同样的请求和数据库之间的连接尽量减少&#xff0c;内存的处理速度肯定比直接查询数据库来的要快一些。今天就…

CDP问卷的常见问题

CDP问卷的常见问题可以归纳如下&#xff1a; 哪些企业会收到CDP邀请&#xff1f; 企业会收到来自投资和/或采购机构的邀请&#xff0c;以填写CDP问卷并披露相应的环境管理信息。 未收到邀请的企业可否填报&#xff1f; 未收到邀请的企业可以选择自行填报。他们需发送申请自愿…

多线程(基础)

前言&#x1f440;~ 上一章我们介绍了什么是进程&#xff0c;对于进程就了解那么多即可&#xff0c;我们作为java程序员更关注线程&#xff0c;线程内容比较多&#xff0c;所以我们要分好几部分才能讲完 目录 进程的缺点 多线程&#xff08;重要&#xff09; 进程和线程的区…

鸿蒙开发Ability Kit(程序框架服务):【FA模型切换Stage模型指导】 module的切换

module的切换 从FA模型切换到Stage模型时&#xff0c;开发者需要将config.json文件module标签下的配置迁移到module.json5配置文件module标签下&#xff0c;具体差异见下列表格。 表1 FA模型module标签与Stage模型module标签差异对比 FA标签标签说明对应的Stage标签差异说明…

随想录 Day 72 拓扑排序、最短路径 朴素dijkstra

随想录 Day 72 拓扑排序、最短路径 朴素dijkstra 117. 软件构建 117. 软件构建 时间限制&#xff1a;1.000S 空间限制&#xff1a;256MB 题目描述 某个大型软件项目的构建系统拥有 N 个文件&#xff0c;文件编号从 0 到 N - 1&#xff0c;在这些文件中&#xff0c;某些文件依…

LeetCode刷题之HOT100之课程表

吃完普通的食堂饭菜&#xff0c;回到实验室&#xff0c;继续做一道题&#xff01; 1、题目描述 2、逻辑分析 这道题涉及到图相关知识&#xff0c;应用到了拓扑排序。 题意解释 一共有 n 门课要上&#xff0c;编号为 0 ~ n-1。先决条件 [1, 0]&#xff0c;意思是必须先上课 0…

触动心弦的成语之旅:《米小圈动画成语》带你走进中华智慧

成语&#xff0c;这些古老而典雅的语言精华&#xff0c;如同中华文化的晶莹明珠&#xff0c;闪耀着历史的光辉和智慧的火花。从古至今&#xff0c;它们在中国人的日常交流中扮演着重要角色&#xff0c;不仅传递着深刻的哲理和文化内涵&#xff0c;更是凝聚了世代智者的思想和智…

mindspore打卡第几天 DDPM 之Unet 网络解析markdown版本

mindspore打卡第几天 DDPM 之Unet 网络解析markdown版本 A: 为啥DDPM的unet网络的下采样这部分的channel是从20 32 64 128这样上升的&#xff1f;从U形结构看不应该是下降的 &#xff5b;Block1 --> block2 --> Res&#xff08;attn&#xff09;-- >dowmsample&#…

20240622服务器异常

异常表现 玩法无法登录服务器&#xff0c;远程XShell 无法连接到服务器,IT 后台查看服务器内存使用完毕。 异常处理 IT 直接重启服务器 后续异常 Docker 服务器无法启动 使用命令查看错误&#xff1a; sudo systemctl status docker.service docker.service - Docker Ap…

【Linux】线程id与互斥(线程三)

上一期我们进行了线程控制的了解与相关操作&#xff0c;但是扔就有一些问题没有解决 本章第一阶段就是解决tid的问题&#xff0c;第二阶段是进行模拟一个简易线程库&#xff08;为了加深对于C库封装linux原生线程的理解&#xff09;&#xff0c;第三阶段就是互斥。 目录 线程id…

链在一起怎么联机 链在一起远程同玩联机教程

steam中最近特别热门的多人跑酷冒险的游戏&#xff1a;《链在一起》&#xff0c;英文名称叫做Chained Together&#xff0c;在游戏中我们需要开始自己的旅程&#xff0c;在地狱的深处&#xff0c;与我们的同伴被链在一起。我们的任务是通过尽可能高的攀登逃离地狱。每一次跳跃都…

Python第三方库GDAL 安装

安装GDAL的方式多种&#xff0c;包括pip、Anaconda、OSGeo4W等。笔者在安装过程中&#xff0c;唯独使用pip安装遇到问题。最终通过轮子文件&#xff08;.whl&#xff09;成功安装。 本文主要介绍如何下载和安装较新版本的GDAL轮子文件。 一、GDAL轮子文件下载 打开Github网站…

Python学习打卡:day16

day16 笔记来源于&#xff1a;黑马程序员python教程&#xff0c;8天python从入门到精通&#xff0c;学python看这套就够了 目录 day16116、SQL 基础和 DDLSQL的概述SQL语言的分类SQL的语法特征DDL — 库管理DDL — 表管理 117、SQL — DMLDML概述数据插入 INSERT数据删除 DEL…