问题背景:

在我们磁盘空间维护策略中,BINLOG的默认保留期限为7天,但当磁盘空间不足时,会根据磁盘空间使用率自动清理超过一定数量的BINLOG。

问题原因:

某服务器上报磁盘空间不足,登录服务器发现BINLOG占用空间过多导致磁盘空间使用率较高,而自动清理BINLOG作业运行正常,但BINLOG没有被及时清理。

手动执行PURGE MASTER LOGS操作,发现执行速度很快,但存在WARNING:

+---------+------+-----------------------------------------------------------------------------------------------------------------+
| Level | Code | Message |
+---------+------+-----------------------------------------------------------------------------------------------------------------+
| Warning | 1867 | file ./mysql-bin.011530 was not purged because it was being read by 1 thread(s), purged only 0 out of 51 files. |
+---------+------+-----------------------------------------------------------------------------------------------------------------+

官网有如下解释:

 If you have an active slave that currently is reading one of the log files you are trying to delete, this statement does not delete the log file that is in use or any log files later than that one, but it deletes any earlier log files. A warning message is issued in this situation. However, if a slave is not connected and you happen to purge one of the log files it has yet to read, the slave will be unable to replicate after it reconnects.

在使用PURGE MASTER LOGS清理BINLOG时,如果还有活跃从库需要访问这些BINLOG,那么PURGE会失效。

通过SHOW PROCESSLIST可以发现:

*************************** 11. row ***************************
Id: 6629525
User: magpie
Host: xxx.xxx.xxx.xxx:62054
db: NULL
Command: Binlog Dump
Time: 283180
State: Sending to client
Info: NULL

而283180/60/60=3.27,即该进程处于“Sending to client”已经3天,查看最早BINLOG也是3天前的,因此可以断定由该进程引起,手动KILL该进程并再次运行PURGE MASTER LOGS,发现BINLOG被正常清理。

MySQL Binlog--PURGE MASTER LOGS失败的更多相关文章

  1. mysql binlog相关

    1.清除的binlog   删除所有binlog日志,新日志编号从头开始 RESET MASTER;   删除mysql-bin.XXXX之前所有日志 PURGE MASTER LOGS TO 'my ...

  2. 【转载】mysql binlog日志自动清理及手动删除

    说明:当开启mysql数据库主从时,会产生大量如mysql-bin.00000* log的文件,这会大量耗费您的硬盘空间.mysql-bin.000001mysql-bin.000002mysql-b ...

  3. mysql binlog日志自动清理及手动删除

    说明:当开启mysql数据库主从时,会产生大量如mysql-bin.00000* log的文件,这会大量耗费您的硬盘空间.mysql-bin.000001mysql-bin.000002mysql-b ...

  4. Mysql binlog 安全删除

    简介: 如果你的 Mysql 搭建了主从同步 , 或者数据库开启了 log-bin 日志 , 那么随着时间的推移 , 你的数据库 data 目录下会产生大量的日志文件 shell > ll /u ...

  5. MySQL bin-log 日志清理方式

    MySQL bin-log 作用   1.数据恢复:如果你的数据库出问题了,而你之前有过备份,那么可以看日志文件,找出是哪个命令导致你的数据库出问题了,想办法挽回损失. 2.主从服务器之间同步数据:主 ...

  6. 自动清理MySQL binlog日志

    开启MySQL binlog日志的服务器,如果不设置自动清理日志,默认binlog日志一直保留着,时间一长,服务器磁盘空间被binlog日志占满,导致MySQL数据库出错. 使用下面方法可以安全清理b ...

  7. MySQL Binlog解析

    https://yq.aliyun.com/articles/238364?spm=5176.8067842.tagmain.52.73PjU3 摘要: 概述 MySQL的安装可以参考:Linux(C ...

  8. 删除MySQL binlog日志的方法

    对于比较繁忙的OLTP(在线事务处理)系统,由于每天生成日志量大,这些日志如果长时间不清除,将会对磁盘空间带来很大的浪费.因此,定期删除日志是DBA维护MySQL数据库的一个重要工作内容.下面跟大家分 ...

  9. MySQL Binlog 介绍

    Binlog 简介 MySQL中一般有以下几种日志: 日志类型 写入日志的信息 错误日志 记录在启动,运行或停止mysqld时遇到的问题 通用查询日志 记录建立的客户端连接和执行的语句 二进制日志 记 ...

随机推荐

  1. chartjs

    chartjs是一个图表控件集合,使用html5的canvas进行绘制. 官网:http://www.chartjs.org/ 文档:https://www.chartjs.org/docs/late ...

  2. 转 Shell判断字符串包含关系的几种方法

    https://blog.csdn.net/rznice/article/details/71086839 Shell中判断字符串包含关系的方法: 1.通过grep来判断:12str1="a ...

  3. [LeetCode] 117. Populating Next Right Pointers in Each Node II 每个节点的右向指针 II

    Follow up for problem "Populating Next Right Pointers in Each Node". What if the given tre ...

  4. [LeetCode] 341. Flatten Nested List Iterator 压平嵌套链表迭代器

    Given a nested list of integers, implement an iterator to flatten it. Each element is either an inte ...

  5. 自定义电脑IP地址

    一台电脑有了ip地址才能上网,ip就是电脑的标识,在互联网中就是其中的一份子. 默认情况下电脑会自动获取IP地址,当无法自动获取或与网络IP地址相冲突时,就要自行设置电脑静态IP地址. 如下图步骤:

  6. 淡sqlserver对like '%关键词%' 处理时的索引利用问题

    说法一:百分号%通配符前置会让SQL查询不走索引,改走全表扫描.这种说法很流行 结论是错误的 事实上这种说法不太准确 通配符%前置会让SQL查找索引时效率极速下降,但在大多数情况下还是会走索引(不需要 ...

  7. Linux系统权限设置 - 运用指南

    下面对linux系统下的有关权限操作命令进行了梳理总结,并配合简单实例进行说明.linux中除了常见的读(r).写(w).执行(x)权限以外,还有其他的一些特殊或隐藏权限,熟练掌握这些权限知识的使用, ...

  8. lay-verify

    lay-verify:是表单验证的关键字 required (必填项) phone(手机号) email(邮箱) url(网址) number(数字) date(日期) identity(身份证) 自 ...

  9. bootstrap.min.css.map作用

    我先说一下什么是source map文件. source map文件是js文件压缩后,文件的变量名替换对应.变量所在位置等元信息数据文件,一般这种文件和min.js主文件放在同一个目录下. 比如压缩后 ...

  10. Java开发笔记(一百一十一)POST方式的HTTP调用

    前面介绍了GET方式的HTTP调用,该方式主要用于向服务器索取数据,不管是字符串形式的应答报文,还是二进制形式的网络文件,都属于服务器提供的信息.当然调用方也可以向服务地址传送请求参数,除了通过连接对 ...