今天主要介绍一次磁盘空间满导致的事故及解决方法。1.检查死锁。最近业务反馈无法登录系统。我需要配合检查。之所以看这里死锁,是因为这个系统一般都有问题..select*frominformation_schema.INNODB_LOCKS;showprocesslist;2。这里查看阻塞锁看是什么语句被阻塞了--查看哪个线程被哪个线程阻塞了,waiting_thread_id代表等待线程,blocking_thread_id代表阻塞线程trx_id=w.blocking_trx_idINNERJOINinformation_schema.innodb_trxrONr.trx_id=w.requesting_trx_id;--查看源头sqlSELECTa.sql_text,c.id,d.trx_started,b.processlist_user,b.processlist_hostFROMPERFORMANCE_SCHEMA.events_statements_currentaJOINPERFORMANCE_SCHEMA.threadsbONa.thread_id=b.thread_idJOINinformation_schema.PROCESSLISTcONb.processlist_id=c.idJOINinformation_schema.innodb_trxdONc.id=d.trx_mysql_thread_idWHEREc.id.id=7BYd.id=7BYdDER.id=73921OR查看死亡锁日志因为我配置文件是加参数:#Printdeadlockloginnodb_print_all_deadlocks=1所以直接看这里的mysqld.log可以发现日志提示磁盘已满...4.查看磁盘空间后发现已经满了.后来发现备份策略是每天备份一次,14天清理一次,但是数据越来越大,空间不够了。清理后调整备份策略即可。数据库无用表和无用对象(3)清理数据库日志表并建立归档库,定期清除相关日志表,7天后删除(4)建立监控告警系统zabbix覆盖监控,钉钉预警。
