DBLOG
» WTF
Toggle navigation
DBLOG
主页
OCM
1、概览
2、数据导入导出
3、GaussDB(DWS)数据库管理
4、数据库调优与开发实践
5、湖仓一体
6、开发应用
7、集群管理
8、巡检和维运维
About Me
归档
标签
4、业务应急
无
2025-05-22 15:09:09
0
0
0
admin
# 常见故障场景和应急手段 | 故障场景 | 应急手段 | |--------------|-------------------------------------------------------------------------| | 整体性能慢 | 通过应急“三板斧”,快速恢复集群性能 | | CPU 使用率高 | 找到 CPU 占用高的语句,对相关业务进行应急查杀或资源限制,事后进行 SQL 优化 | | IO 使用率高 | 找到 IO 占用高的语句,对相关业务进行应急查杀,事后进行 SQL 优化 | | 内存报错 | 找到内存占用高的语句,对相关业务进行应急查杀或资源限制 | | 锁冲突报错 | 找到持锁语句,应急查杀并将锁冲突业务错峰执行 | | 集群只读 | 找到空间占用高的表或语句,清理空间 | --- ## 整体性能慢 数据库系统的性能管理在整个业务系统中起着重要作用。集群性能管理不当或在硬件、OS等故障后,容易出现集群性能降级,需要及时介入处理以避免对业务造成长期影响。 - **问题现象**:集群整体出现卡慢,业务常规查询、建表等语句劣化,性能探针出现劣化。 - **问题影响**:集群整体性能降级,造成跑批延迟,影响业务时效性。 - **处理套路**: 1. 确认问题现象,根据等待视图确认是否慢在 DWS 侧。 2. 查杀执行时间长和并发高的可疑语句。 3. 如果某用户持续下发语句,则应急锁定用户。 4. 上述手段均无效果,考虑应急 kill cn 或重启集群快速恢复。 详细步骤参考华为云社区案例:[性能问题处理案例](https://bbs.huaweicloud.com/blogs/297384) --- ## CPU 使用率高 CPU 指标表示当前集群计算资源的使用情况,一般建议 CPU 使用率维持在 60% 以下,防止在主备切换后出现 CPU 瓶颈。 - **问题现象**:集群 CPU 使用率突增,或 CPU 水位长期维持在 80%以上,出现 CPU 过载。 - **问题影响**:集群整体性能降级,造成跑批延迟,影响业务时效性。 - **处理套路**: 1. 根据告警和监控确认 CPU 存在异常冲高现象。 2. 部署 cpuwatcher 脚本。 3. 查杀执行时间长和 CPU 占用高的语句。 4. 通过资源池限制用户 CPU 使用率,若无资源池,则应急锁定用户。 5. 上述手段均无效果,考虑应急 kill cn 或重启集群快速恢复。 详细步骤参考华为云社区案例:[CPU使用率高处理案例](https://bbs.huaweicloud.com/blogs/419012) --- ## IO 使用率高 IO 指标表示当前集群读写性能,尤其关注机械硬盘。当机械盘 IO 使用率超过 90% 后,可能会出现大量 wait IO。 - **问题现象**:集群 IO 使用率突增,或 IO 使用率长期在 90%以上,出现 IO 过载。 - **问题影响**:集群整体性能降级,造成跑批延迟,影响业务时效性。 - **处理套路**: 1. 根据告警和监控确认 IO 异常冲高现象。 2. 部署 iowatcher 脚本。 3. 查杀执行时间长和 IO 占用高的语句,优化下盘量大或下盘频繁的语句。 4. 如果某用户持续下发语句,则应急锁定用户。 5. 同步排查硬件故障情况,考虑隔离故障节点。 6. 上述手段均无效果,考虑应急 kill cn 或重启集群快速恢复。 详细步骤参考华为云社区案例:[IO使用率高处理案例](https://bbs.huaweicloud.com/blogs/436912) --- ## 内存报错 当 SQL 执行过程中,中间结果集过大或当前并发过高时,可能导致集群动态可用内存不足,出现 memory is temporarily unavailable 报错。 - **问题现象**:集群动态内存使用率突增,出现动态内存不足告警,部分业务出现内存不足报错。 - **问题影响**:部分业务报错。 - **处理套路**: 1. 根据告警和业务日志确认存在内存报错现象。 2. 查看报错日志,找到内存占用高的线程及相关语句。 3. 根据 topsql 和实例内存视图找到当前内存占用高的语句。 4. 查杀内存占用高的语句,若语句持续下发,考虑锁定用户或加入黑名单。 5. 上述手段均无效果,考虑应急 kill cn 或重启集群快速恢复。 详细步骤参考华为云社区案例:[内存报错处理案例](https://bbs.huaweicloud.com/blogs/419011) --- ## 锁冲突报错 当对表进行查询、DDL、DML 等操作时,数据库会对表进行加锁,常规锁按照粒度可分为多个等级,当互相冲突的语句执行时,会导致语句被阻塞。 - **问题现象**:表相关的业务阻塞,执行慢或出现锁等待超时报错。 - **问题影响**:部分业务报错或该表相关的业务被阻塞。 - **处理套路**: 1. 根据日志确认锁冲突情况,杀掉持锁语句即可恢复。 2. 若持锁时间未达到报错阈值,可通过锁等待视图找到持锁语句。 3. 查杀持锁语句即可恢复。 4. 若语句无法被查杀,应急 kill 对应实例。 详细步骤参考华为云社区案例:[锁冲突处理案例](https://bbs.huaweicloud.com/blogs/233114) --- ## 集群只读 当集群某个磁盘完全写满时,进程无法进行数据写入,可能导致集群不可用。为了防止不可用,当磁盘使用率达到 90% 时,会触发集群只读保护。 - **问题现象**:集群进入只读模式,写入相关的业务出现 read only 报错。 - **问题影响**:增删改业务报错。 - **处理套路**: 1. 根据告警和监控确认存在磁盘使用率高的现象。 2. 确定占用空间异常的实例与最小级别目录。 3. 确认目录后按照对应场景处理。 4. 找到相关语句或表后,查杀语句或清理数据。 5. 如果业务影响紧急,可临时调大只读阈值到 95%,同时,联系业务侧清理部分数据释放空间。 详细步骤参考华为云社区案例:[集群只读处理案例](https://bbs.huaweicloud.com/blogs/174806)
上一篇:
4、SQL调优开发实践
下一篇:
4、分区表
0
赞
1 人读过
新浪微博
微信
腾讯微博
QQ空间
人人网