mysql 备库 hang住,Mysql binlog目录满导致mysql hang住处理

Mysql binlog目录满导致mysql hang住处理

Mysql binlog目录满导致mysql hang住处理

Mysql binlog目录满导致mysql hang住处理

背景介绍:

某系统是非交易型做考核统计,使用mysql 5.7 两个物理机做HA数据库放共享存储上面,binlog日志保留7天。

相关目录大小如下:

/data 1.8T

/binlog 148G

架构如下:

49309ceebc6957eee24a19830f1ce608.png

binlog目录使用率100%:

上线一段时间后,某天系统管理员反应说mysql binlog目录满了,系统没有前端系统没有响应了。

处理过程:

登录系统

df -h

/binlog 使用率达到了100%。原因是系统最近临时跑批处理了一个月的批处理,导致binlog目录使用率迅速增长。

通过mysql 高权登录到数据库中,想通过purge命令清除binlog日志。

执行

show master logs;

没有响应…

想通过purge命令清理不行,此时数据库已经hang住。

因为已经接入nbu备份每天全量备份数据库,同时相关的binlog也备份。

通过mysql 命令清除日志不行,尝试通过系统命令先把几个binlog 日志mv 到/tmp目录下面。

cd /binlog

ls -lrt

将现有最早的几个日志

mv mysql-bin.0000108 /tmp

mv mysql-bin.0000109 /tmp

mv mysql-bin.0000110 /tmp

df -h

发现/binlog 释放了1.5G空间

此时再登录到数据库

执行

show master logs;

瞬间结果就出来

Log_name File_size

mysql-bin.0000… …

此时已经可以执行mysql 命令,保留最近10个binlog日志,其余全部删除。

PURGE BINARY LOGS TO ‘mysql-bin.0000***’;

此时再df -h,/binlog日志目录已经释放。

注意事项:

请用mysql purge清理日志,因为通过purge清理了binlog日志文件同时也更新了binlog索引文件mysql-bin.index,如果

用系统命令清理binlog但不会更新mysql-bin.index,所以遇到上述情况可先使用系统命令,释放部分空间

然后务必再使用mysql purge命令清除日志,清除的范围包括使用系统命令移除的日志。

后续处理:

先扩容,后续经讨论将binlog 日志保留天数调整为3天。

Mysql binlog目录满导致mysql hang住处理相关教程

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值