当前位置:首页 > MySQL

mysql的binlog太大太多占用大量磁盘的解决

canca11年前 (2016-01-09)MySQL777

现象:网站访问越来越慢,最后无法访问了,经过检查发现磁盘满了。仔细查询下来确认是由于mysql的binlog太多太大占用了空间。

  分析过程及解决方案:通常出现这种问题都应该登录服务器检查磁盘、内存和进程使用的情况,通过top、df –h和free –m来检查,发现磁盘空间满了。再进一步通过du –sh对可以的目录进行检查,发现是mysql的binlog占用空间过大。清理binlog的方法如下:

  1) 设置日志保留时长expire_logs_days自动删除

  查看当前日志保存天数:

  show variables like '%expire_logs_days%';

  这个默认是0,也就是logs不过期,可通过设置全局的参数,使他临时生效:

  set global expire_logs_days=7;

  设置了只保留7天BINLOG, 下次重启mysql这个参数默认会失败,所以需在my.cnf中设置

  expire_logs_days = 7

  2) 手动删除BINLOG (purge binary logs)

  用于删除列于在指定的日志或日期之前的日志索引中的所有二进制日志。这些日志也会从记录在日志索引文件

  PURGE {MASTER | BINARY} LOGS TO 'log_name'

  PURGE {MASTER | BINARY} LOGS BEFORE 'date'

  例如:

  PURGE MASTER LOGS TO 'mysql-bin.010';

  PURGE MASTER LOGS BEFORE '2008-06-22 13:00:00';

  PURGE MASTER LOGS BEFORE DATE_SUB( NOW( ), INTERVAL 3 DAY);

扫描二维码推送至手机访问。

版权声明:本文由Ant.Master's Blog发布,如需转载请注明出处。

本文链接:https://iant.work/post/78.html

标签: MySQL
分享给朋友:

“mysql的binlog太大太多占用大量磁盘的解决” 的相关文章

mysql 配置命令大全

--auto-rehash       Enable automatic rehashing. One doesn't need to use             …

mysql 外鍵約束

1. 什么是参照完整性?——————–参照完整性(完整性约束)是数据库设计中的一个重要概念,当数据库中的一个表与一个或多个表进行关联时都会涉及到参照完整性。比如下面这个例子:文章分类表 -  categoriescategory_id ...…

MySQl字段类型

MySQL支持大量的列类型,它可以被分为3类:数字类型、日期和时间类型以及字符串(字符)类型。本节首先给出可用类型的一个概述,并且总结每个列类型的存储需求,然后提供每个类中的类型性质的更详细的描述。概述有意简化,…

Mysql 删除重复记录

1、 具体实现如下: Table Create Table ------------ -------------------------------------------------------- users_groups CREATE TABLE `users_groups` ( `id`…

MySQL数据库备份与还原

MySQL数据库备份与还原

       平时工作中常常会遇到数据库备份、还原等场景,但有些服务器上不允许装前台工具,只好用命令行来操作。并且更重要的一点是:如果数据量比较大的话,借助工具来操作会非常卡,而使用命令行则无压力...…

Mysql分页查询丢失数据

问题场景描述将一个sql的查询结果集导出为文件,由于一次查询结果集可能上百万条,在开发环境和测试环境均造成了内存溢出的问题。因此改为分页查询数据的方式,虽然慢点,但是规避了内存溢出的问题。但是,在这一百多万条导出的数据中,发现导出的文件中的数据与数据库直接查询出的数据不一致。偶发性的部分数据缺失,部…

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。