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

一次业务误导数据库异常方向的问题处理过程

IT那活儿 2024-03-04
761

点击上方“IT那活儿”公众号--专注于企业全栈运维技术分享,不管IT什么活儿,干就完了!!!   




故障背景



笔者某天清晨在客户维护现场,刚坐到工位正准备开展一天的工作时,突然被其他部门客户电话铃声打乱,一阵无寒暄的表达,言语中带着急促、焦急、但诉求非常明确的表达“数据库有锁,业务受到影响,立刻马上杀锁,恢复业务”。

笔者随即将情况反馈至直管客户,在得直管客户授权同意后,进行分析、处理,根据客户提供的IP初步检查:
1)这是一套MySQL5.7主从数据库环境,但数据库并未移交笔者所属部门;
2)该套数据库为生产环境,非核心业务系统(客户内部使用);

3)直管客户本着优先处理问题的原则,安排优先处理该客户反映的问题。




处理过程



2.1 查锁

登陆主库检查确实存数据库锁的情况:
>select * from information_schema.innodb_locks;
>select * from information_schema.innodb_lock_waits;

2.2 杀锁
>select concat('KILL ',id,';') from information_schema.processlist where user='DBuser' and DB='app_dc';
>select * from information_schema.processlist where user='DBuser' and DB='app_dc';

2.3 重启应用程序(业务)
本套库并未进行交维,不在运维范围,因此笔者当时并未太重视。在协助业务将数据库中锁杀掉后就直接反馈给客户结果,然后就去处理其他工作。
然而,客户不多时又电话反馈他在重启完应用程序,检查业务还是存在问题,不能完全正常使用
2.4 数据库日志分析
根据客户反应的情况,笔者再次找到登陆主库,分析数据库error log,发现数据库的数据目录/data磁盘使用率已达100%,没有可用空间。
初步定为到异常原因。
2.5 清理备份文件
经过文件大小检索筛查出是数据库备份文件目录最大,该套MySQL库数据库备份在主库设置的定时备份,备份文件存放在本地磁盘,数据库备份文件没有设置生命周期,因此导致磁盘使用只会不断增加,直至撑爆磁盘空间。
与客户沟通确认可清理30天前的数据库备份。
$find data/DBbackup -mtime +30 -name "app_DBname*" -exec ls -l {} \;
$find /data/DBbackup -mtime +30 -name "app_DBname*" -exec rm -rf {} \;

2.6 清理大表
进一步对数据库进行分析,发现存在大表情况,与客户沟通建议对大表进行清理。
1)查询数据
#备库查询,1.3亿数据:
>select table_rows,table_name,table_schema from information_schema.TABLES where table_name='XXX_COMMAND';
2)修改表
#主库
>use app_dc;
>create table XXX_COMMAND_new like XXX_COMMAND;
>rename table XXX_COMMAND to XXX_COMMAND_bak;
>rename table XXX_COMMAND_new to XXX_COMMAND;
>select count(1) from XXX_COMMAND;

3)备份表归档

#与客户沟通确认归档方式,离线备份。




原因及总结



3.1 问题原因

数据库的数据目录没有可用空间,导致数据不能落盘写入,业务系统因此出现部分功能异常的情况。

3.2 后续改进措施和建议

1)建议客户(其他部门)将数据库主机及时纳入监控系统;
2)调整数据库备份策略,设置在备库进行备份,设置备份文件生命周期;
3)大表改造,定期归档处理;
4)建议数据库运维交给专业的运维团队。
3.3 经验总结
不可以仅凭业务口头陈述来判断问题处理的方向,业务再着急、再明确、再要求,也只是“病症”,而不能作为“病因”方向,因此诊断“病因”且有效处理“病症”,还是要靠专业人士的自身的信息采集分析和经验判断,才能及时高效的处理问题。
问题的分析和处理需要“病人”(业务)和“医生”(专业工程师)双向配合,才可以有效的解决问题。

END


本文作者:程继贵(上海新炬中北团队)

本文来源:“IT那活儿”公众号

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

评论