|
|
51CTO旗下网站
|
|
移动端

记一次生产数据库因磁盘空间满而引起的死锁故障及解决过程

今天主要介绍一次因磁盘空间满导致的事故及解决方法。下面,我们一起来看。

作者:波波说运维来源:今日头条|2019-12-27 10:43

今天主要介绍一次因磁盘空间满导致的事故及解决方法。

磁盘空间满

1. 查看死锁

最近业务反馈无法登陆系统,需要我这边配合检查下,这里之所以先看死锁是因为这系统一般出问题都是这原因..

  1. select * from information_schema.INNODB_LOCKS;show processlist; 

记一次生产数据库因磁盘空间满而引起的死锁故障及解决过程

2. 查看阻塞锁

看一下这里面是被什么语句所阻塞了

  1. --查看哪个线程被哪个堵塞,waiting_thread_id代表等待线程,blocking_thread_id代表堵塞线程SELECTr.trx_id waiting_trx_id,r.trx_mysql_thread_id waiting_thread_id,r.trx_query waiting_query,b.trx_id blocking_trx_id,b.trx_mysql_thread_id blocking_thread_id,b.trx_query blocking_query,now( ) - r.TRX_STARTED blocking_time FROMinformation_schema.innodb_lock_waits wINNER JOIN information_schema.innodb_trx b ON b.trx_id = w.blocking_trx_idINNER JOIN information_schema.innodb_trx r ON r.trx_id = w.requesting_trx_id; --查看源头sqlSELECTa.sql_text,c.id,d.trx_started,b.processlist_user,b.processlist_host FROMPERFORMANCE_SCHEMA.events_statements_current aJOIN PERFORMANCE_SCHEMA.threads b ON a.thread_id = b.thread_idJOIN information_schema.PROCESSLIST c ON b.processlist_id = c.idJOIN information_schema.innodb_trx d ON c.id = d.trx_mysql_thread_id WHEREc.id = 73921 ORDER BYd.trx_started; 

记一次生产数据库因磁盘空间满而引起的死锁故障及解决过程

3. 查看死锁日志

因为我配置文件是加了参数:

  1. #打印deadlock日志innodb_print_all_deadlocks=1 

所以这里直接看mysqld.log情况

记一次生产数据库因磁盘空间满而引起的死锁故障及解决过程

可以发现日志提示磁盘满了...

4. 检查磁盘空间

检查后发现果然是满了,事后发现是备份策略每天备份一次,14天清理,但数据越来越大导致空间不够用了,清理后调整备份策略即可。

记一次生产数据库因磁盘空间满而引起的死锁故障及解决过程

5. 解决方案

(1)调整备份策略

修改为每两天一次全备,14天自动清理

(2)清理数据库

清理数据库无用表及无用对象

(3)数据库日志表清理

建立归档库,定期挪走相关日志表,隔7天后drop掉

(4)建立监控告警体系

zabbix覆盖监控,钉钉预警。

【编辑推荐】

  1. 详解Oracle数据库LRU算法:LRU链、脏块与脏LRU链
  2. 一文搞懂各种数据库SQL执行计划:MySQL、Oracle等
  3. 一文总结MySQL数据库事件--定时任务实现方式
  4. MySQL数据库小项目日志表定期删除实现方案
  5. 关于数据库设计的总结
【责任编辑:赵宁宁 TEL:(010)68476606】

点赞 0
分享:
大家都在看
猜你喜欢

订阅专栏+更多

一步到位玩儿透Ansible

一步到位玩儿透Ansible

Ansible
共17章 | 骏马金龙1

52人订阅学习

云架构师修炼手册

云架构师修炼手册

云架构师的必备技能
共3章 | Allen在路上

24人订阅学习

Devops之监控神器Prometheus

Devops之监控神器Prometheus

监控主流
共22章 | 小罗ge11

172人订阅学习

读 书 +更多

Ubuntu Linux入门到精通

本书全面介绍了Ubuntu Linux的相关知识,内容详实,论述清晰。主要内容包括Ubuntu介绍、文件系统管理、进程管理、压缩与查询系统、Shel...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊

51CTO服务号

51CTO官微