概述
故障治理就得对症下药,所以治理的第一步就是明确常见的数据库故障有哪些,今天就 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, 导致未走最优索引宿主机磁盘异常。
最后
以上就是高贵口红为你收集整理的常见的数据库故障有哪些?的全部内容,希望文章能够帮你解决常见的数据库故障有哪些?所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复