我是靠谱客的博主 高贵口红,最近开发中收集的这篇文章主要介绍常见的数据库故障有哪些?,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

故障治理就得对症下药,所以治理的第一步就是明确常见的数据库故障有哪些,今天就 MySQL、缓存两个大方向来跟大家一起梳理一下。  

1、MySQL

作为在互联网公司广泛使用的传统意义上的数据库,MySQL 的故障可以分为以下几种: 1.1 实例不可用 数据库作为一种特殊的应用,在其生命周期内无法保证 100% 可用。数据库实例不可用的原因一般有:

  • 硬件故障:硬件故障是生产环境中无法避免问题。常见的硬件故障包含了 CPU、内存、磁盘、主板等。
  • 系统故障:系统故障包含操作系统 bug 和数据库 bug。
  • 网络故障:网络故障包含网络设备故障和专线故障。
  • 其他:如资源分配不合理导致的 OOM。

1.2 数据延迟


数据延迟包含数据库的主从延迟和依赖 binlog 的数据订阅服务的延迟。 1.2.1 主从复制延迟 主从复制延迟是线上经常出现的问题之一,对于读写分离的业务来说,从库延迟的影响可能是致命的。导致主从延迟的原因一般有:

  • 主库执行了一个非常大的数据变更事务;
  • 主库变更频率过快,导致从库跟不上;
  • 使用原生的表结构变更语句进行大表的 DDL ;
  • 从库配置参数较低、硬件性能较差;
  • 从库负载过高,导致性能变差 ;
  • 从库 MDL 锁 ;
  • 主从之间网络问题 ;
  • 主从复制 Bug (多线程复制 bug 最为常见)。

1.2.2 数据订阅服务的延迟 binlog 的消费是数据订阅服务中的核心功能之一,对很多依赖 binlog 消费的业务来说,订阅服务的延迟将导致线上业务的不可用,导致订阅服务延迟的原因一般有:

  • 上游从库延迟
  • Kafka 性能瓶颈
  • canal 类组件性能瓶颈

1.3 数据损坏 数据损坏随时可能发生在任何人身上,没有任何办法可保证它不会发生。导致数据损坏的原因如下:

  • 未开启双一参数,在宕机场景下丢失;
  • 未使用半同步复制,在宕机场景下丢失;
  • 使用三方工具进行 DDL 的某些特殊场景下可能会丢, 比如 pt-osc、gh-ost;
  • 误操作、误删除数据或者蓄意删除,也就是常说的运维人员删库跑路。

1.4 性能下降 数据库的性能下降一般有以下几种表现慢查询增多、性能抖动、压力过载。 1.4.1 慢查询增多 慢查询也是我们经常会遇到的场景,严重情况下会导致数据库雪崩, 一般导致慢查询增多有如下原因:

  • 新业务上线 SQL 效率较差或者没有合适的索引;
  • 业务场景发生改变,边缘场景被触发;
  • 数据倾斜,导致未走合适的索引;
  • Innodb buffer pool 命中率低,触发大量物理读;
  • 优化器 bug, 导致未走最优索引宿主机磁盘异常。

最后

以上就是高贵口红为你收集整理的常见的数据库故障有哪些?的全部内容,希望文章能够帮你解决常见的数据库故障有哪些?所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(51)

评论列表共有 0 条评论

立即
投稿
返回
顶部