暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

包拯断案 | 磁盘被打满,导致计算节点异常怎么破@还故障一个真相

万里数据库 2025-05-29
96


提问:作为DBA运维的你是否遇到过这些烦恼


1、数据迁移时突发数据库告警,不知是什么原因引起的?

2、数据库计算节点突然出现 ERROR,如何快速分析处理?



心中有章,遇事不慌



作为DBA的你,遇到问题无从下手,除了在问题面前徘徊,还能如何选择?如果你一次或多次遇到该问题还是无法解决,又很懊恼,该如何排忧呢?关注公众号,关注《包拯断案》专栏,让小编为你排忧解难~


#包拯秘籍#

一整套故障排错及应对策略送给你,让你像包拯一样断案如神:


 #首先

遇到此类问题后,我们要做到心中有章(章程),遇事不慌。一定要冷静,仔细了解故障现象(与研发/用户仔细沟通其反馈的问题,了解故障现象、操作流程、数据库架构等信息


#其次

我们要根据故障现象进行初步分析。心中要想:是什么原因导致计算节点出现异常?例如:是磁盘被打满了,还是相关参数值设置有问题?


#然后

针对上述思考,我们需要逐步验证并排除,确定问题排查方向。


#接着

确定了问题方向,进行具体分析。通过现象得出部分结论,通过部分结论继续排查并论证。


#最后

针对问题有了具体分析后,再进行线下复现,最终梳理故障报告。



真刀实战,我们能赢



说了这么多理论,想必实战更让你心动。那我们就拿一个真实案例进行分析——某运营商项目有一套并行环境,由于对某张大表同一时刻分批次进行全量数据稽核,导致GreatDB数据库集群的一个计算节点出现 ERROR,这种问题该如何快速分析处理?


01

故障发生场景

某项目现场,万里数据库DBA刚完成了一套并行环境部署,该环境用于业务系统开展业务验证工作。部署完毕后,DBA在使用数据迁移工具执行迁移任务时,数据库集群突然触发【节点状态异常】告警。见状,DBA 迅速启动排查机制,全力排查异常原因,以保障数据迁移及业务验证任务的顺利进行。


02

故障排查分析


2.1 检查集群状态

(1)根据告警信息,DBA立即登录这个计算节点,查看集群状态,通过查看发现,这个计算节点下所有的节点状态都是不正常的。


(2)于是,DBA马上登录另外2个计算节点查看,发现其余计算节点状态正常。因此可以判断,只有这一个计算节点异常,业务系统目前能正常使用其余的2个计算节点。


(3)查看数据节点状态

可以看到,同一台主机上的2个数据节点副本实例是ERROR状态。因此猜测:是这台主机的某些原因,导致部署在这台主机上的计算节点和数据节点出现异常。


2.2 查看错误日志信息

计算节点日志情况如下:


数据节点日志

从上面2个实例日志中可以看出,是主机磁盘空间满了导致计算节点和数据节点异常,退出集群。


2.3 检查磁盘容量

当前磁盘容量正常,数据库日志中显示错误时,磁盘可能确实已满,但在查看时磁盘空间已被释放;继续检查磁盘IO,查看是否有大量磁盘写入。


2.4 检查磁盘IO情况

可以看到此时磁盘IO是被打满的状态。


2.5 查看是哪个线程占用磁盘IO

pidstat -t -p 19506 -d -1

可以看到当前计算节点,53292线程正在大量进行读写操作。


2.6 查看哪个SQL语句导致磁盘IO飙升

根据上面的操作系统线程ID 53292,通过查看performance_schema.threads 表可以得知,由于这条SQL语句导致磁盘IO被打满,且SQL语句没有显示完整,继续通过 information_schema.processlist 表查看完整SQL。



2.7 查看此SQL的执行计划

这条SQL是在进行全量数据稽核时执行的,会对表进行全量查询,并按全部字段进行排序,因此会产生大量的临时磁盘文件。


03

故障处理

3.1 kill此SQL

GREATDB> kill 1585493;


3.2 检查磁盘IO情况

可以看到,kill掉这条SQL后,磁盘IO恢复正常。


3.3 恢复计算节点/数据节点

登录处于ERROR状态的节点,启动组复制,让节点自动加入集群。

GREATDB> start grouo_replication;



复盘总结



1.完善告警配置

需完善服务器监控告警配置,在磁盘IO负载过高时给予预警,以便DBA及时处理,避免因IO超载及磁盘空间不足时,影响集群的正常使用;


2.避免全表查询

在业务系统运行过程中,应避免出现对大表进行全表查询并产生临时文件的SQL,导致IO升高、磁盘空间不足等问题,影响其他业务正常进行。



包拯断案 | 数据库内存被打满怎么破@还故障一个真相

包拯断案 | 从库relay log损坏致主从同步报错 如何缉拿归案@还故障一个真相

包拯断案 | 当DDL与DML互相阻塞 如何缉拿归案@还故障一个真相


关于万里数据库


北京万里开源软件有限公司(简称“万里数据库”)成立于2000年,是专注于国产自主可控数据库产品研发的国家高新技术企业、国家级专精特新“小巨人”企业,拥有发明专利、软件著作权百余项。


万里数据库的技术底蕴源自对底层核心代码的掌控,产品始终坚持以“极致稳定、极致性能、极致易用”为目标,经过20余年的研发经验积累,产品在功能、性能、稳定、易用等方面均处于行业领先水平,广泛应用于金融、运营商、能源、政府、交通等行业重要业务系统中的超2000个业务场景,得到了用户和市场的认可与肯定。


2021年,公司创立GreatSQL开源社区,通过对MySQL技术的优化,目前已成长为国内活跃的自主开源数据库社区


极致稳定  极致性能  极致易用



“在看”点一下,万里早知道

文章转载自万里数据库,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论