对于比较繁忙的OLTP(在线事务处理)系统,由于每天生成日志量大,这些日志如果长时间不清除,将会对磁盘空间带来很大的浪费。因此,定期删除日志是DBA维护MySQL数据库的一个重要工作内容。下面跟大家分享几种删除MySQL binlog的方法。出自《深入浅出MySQL》第二版,如果你在虚拟机做实验导致binlog过大使得磁盘空间不多,下面的方法清理最合适不了过了

注意事项:

1.MySQL binlog日志是数据库灾难后恢复的关键,删除前一定要做好备份

2.如果做了MySQL主从,从服务器,会读取主服上的binlog,所以删除前要注意

3.个人建议,若真要删除binlog腾出硬盘空间,那先清理几个月前的binlog

方法一:

执行“RESET MASTER;”命令,该命令将删除所有BINLOG日志,新日志编号从“000001”开始。下例删除当前所有日志

mysql> system ls -ltr /data/mysql/
总用量
drwx------. mysql root 12月 : test
drwx------. mysql mysql 12月 : performance_schema
drwx------. mysql root 12月 : mysql
-rw-rw----. mysql mysql 12月 : mysql-bin.
-rw-rw----. mysql mysql 12月 : mysql-bin.
-rw-rw----. mysql mysql 12月 : ib_logfile1
-rw-rw----. mysql mysql 12月 : mysql-bin.
-rw-rw----. mysql mysql 12月 : mysql-bin.index
-rw-rw---- mysql mysql 12月 : localhost.localdomain.pid
-rw-r-----. mysql root 12月 : localhost.localdomain.err
drwx------ mysql mysql 12月 : testdb
-rw-rw----. mysql mysql 12月 : ibdata1
-rw-rw----. mysql mysql 12月 : ib_logfile0
drwx------ mysql mysql 12月 : database
-rw-rw---- mysql mysql 12月 : mysql-bin.

查看结果:

mysql> reset master;
Query OK, rows affected (0.12 sec) mysql> system ls -ltr /data/mysql/
总用量
drwx------. mysql root 12月 : test
drwx------. mysql mysql 12月 : performance_schema
drwx------. mysql root 12月 : mysql
-rw-rw----. mysql mysql 12月 : ib_logfile1
-rw-rw---- mysql mysql 12月 : localhost.localdomain.pid
-rw-r-----. mysql root 12月 : localhost.localdomain.err
drwx------ mysql mysql 12月 : testdb
-rw-rw----. mysql mysql 12月 : ibdata1
-rw-rw----. mysql mysql 12月 : ib_logfile0
drwx------ mysql mysql 12月 : database
-rw-rw---- mysql mysql 12月 : mysql-bin.
-rw-rw---- mysql mysql 12月 : mysql-bin.index
mysql>

第二种方法:
执行“PURGE MASTER LOGS TO 'mysql-bin.*******'”命令。该命令将删除“******”编号之前的所有日志。下例删除了“mysql-bin.000004”编号之前的所有日志:

mysql> system ls -ltr /data/mysql
总用量
drwx------. mysql root 12月 : test
drwx------. mysql mysql 12月 : performance_schema
drwx------. mysql root 12月 : mysql
-rw-rw----. mysql mysql 12月 : mysql-bin.
-rw-rw----. mysql mysql 12月 : mysql-bin.
-rw-rw----. mysql mysql 12月 : ib_logfile1
-rw-rw----. mysql mysql 12月 : mysql-bin.
-rw-rw----. mysql mysql 12月 : mysql-bin.index
-rw-rw---- mysql mysql 12月 : localhost.localdomain.pid
-rw-r-----. mysql root 12月 : localhost.localdomain.err
drwx------ mysql mysql 12月 : testdb
-rw-rw----. mysql mysql 12月 : ibdata1
-rw-rw----. mysql mysql 12月 : ib_logfile0
drwx------ mysql mysql 12月 : database
-rw-rw---- mysql mysql 12月 : mysql-bin.

执行命令后的结果如下:

mysql> purge master logs to 'mysql-bin.000004';
Query OK, rows affected (0.08 sec) mysql> system ls -ltr /data/mysql
总用量
drwx------. mysql root 12月 : test
drwx------. mysql mysql 12月 : performance_schema
drwx------. mysql root 12月 : mysql
-rw-rw----. mysql mysql 12月 : ib_logfile1
-rw-rw---- mysql mysql 12月 : localhost.localdomain.pid
-rw-r-----. mysql root 12月 : localhost.localdomain.err
drwx------ mysql mysql 12月 : testdb
-rw-rw----. mysql mysql 12月 : ibdata1
-rw-rw----. mysql mysql 12月 : ib_logfile0
drwx------ mysql mysql 12月 : database
-rw-rw---- mysql mysql 12月 : mysql-bin.
-rw-rw----. mysql mysql 12月 : mysql-bin.index

第三种方法以:

执行“PURGE MASTER LOGS BEFORE 'yyyy-mm-dd hh24:mi:ss'”  命令,该命令将删除日期为“hh24:mi:ss”之前产生的所有日志。下例中删除了日期在“2013-12-08 13:00:00”之前的所有日志:

mysql> system ls -ltr /data/mysql
总用量
drwx------. mysql root 12月 : test
drwx------. mysql mysql 12月 : performance_schema
drwx------. mysql root 12月 : mysql
-rw-rw----. mysql mysql 12月 : mysql-bin.
-rw-rw----. mysql mysql 12月 : mysql-bin.
-rw-rw----. mysql mysql 12月 : ib_logfile1
-rw-rw----. mysql mysql 12月 : mysql-bin.
-rw-rw----. mysql mysql 12月 : mysql-bin.index
-rw-rw---- mysql mysql 12月 : localhost.localdomain.pid
-rw-r-----. mysql root 12月 : localhost.localdomain.err
drwx------ mysql mysql 12月 : testdb
-rw-rw----. mysql mysql 12月 : ibdata1
-rw-rw----. mysql mysql 12月 : ib_logfile0
drwx------ mysql mysql 12月 : database
-rw-rw---- mysql mysql 12月 : mysql-bin.

执行命令后的结果:

mysql> purge master logs  before "2013-12-08 13:00:00";
Query OK, rows affected (0.09 sec) mysql> system ls -ltr /data/mysql
总用量
drwx------. mysql root 12月 : test
drwx------. mysql mysql 12月 : performance_schema
drwx------. mysql root 12月 : mysql
-rw-rw----. mysql mysql 12月 : ib_logfile1
-rw-rw---- mysql mysql 12月 : localhost.localdomain.pid
-rw-r-----. mysql root 12月 : localhost.localdomain.err
drwx------ mysql mysql 12月 : testdb
-rw-rw----. mysql mysql 12月 : ibdata1
-rw-rw----. mysql mysql 12月 : ib_logfile0
drwx------ mysql mysql 12月 : database
-rw-rw---- mysql mysql 12月 : mysql-bin.
-rw-rw----. mysql mysql 12月 : mysql-bin.index

嘻嘻,如果想了解更多删除MySQL binlog的方法以,可以去参考官网或者书籍《深入浅出MySQL》第二版

作者:陆炫志

出处:xuanzhi的博客 http://www.cnblogs.com/xuanzhi201111

您的支持是对博主最大的鼓励,感谢您的认真阅读。本文版权归作者所有,欢迎转载,但请保留该声明。

删除MySQL binlog日志的方法的更多相关文章

  1. 删除mysql binlog日志

    查看:mysql> show binary logs; 删除 mysql-bin.000200 之前binlog日志:mysql> purge binary logs to 'mysql- ...

  2. 安全删除mysql binlog日志

    命令行下执行 show binary logs; purge binary logs to 'mysql-bin.000070';

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

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

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

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

  5. 自动清理MySQL binlog日志

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

  6. Mysql Binlog日志详解

    一.Mysql Binlog格式介绍       Mysql binlog日志有三种格式,分别为Statement,MiXED,以及ROW! 1.Statement:每一条会修改数据的sql都会记录在 ...

  7. 删除MySQL二进制日志

    服务器上的120G SSD硬盘空间用了92%,检查后发现,原来是 MySQL的二进制日志没有及时清除,占用了大量的空间, 于是直接用命令:reset master 一把删干净了. 1 reset ma ...

  8. 看数据库的文件大小 MySQL Binlog日志的生成和清理规则

    小结: 1.避免并行大大事务对磁盘.内存的消耗: MySQL数据文件导致实例空间满的解决办法_空间/内存_常见问题_云数据库 RDS 版-阿里云 https://help.aliyun.com/kno ...

  9. MySQL binlog日志操作详解

    MySQL的二进制日志可以说是MySQL最重要的日志了,它记录了所有的DDL和DML(除了数据查询语句)语句,以事件形式记录,还包含语句所执行的消耗的时间,MySQL的二进制日志是事务安全型的. bi ...

随机推荐

  1. ThreadLocal变量

    什么是ThreadLocal变量?ThreadLocal,很多地方叫做线程本地变量,也有些地方叫做线程本地存储,其实意思差不多.可能很多朋友都知道ThreadLocal为变量在每个线程中都创建了一个副 ...

  2. 以用户注册功能模块为例浅谈MVC架构下的JavaWeb开发流程

    JavaWeb应用开发,撇开分布式不谈,只讨论一个功能服务应用的开发,无论是使用原生的Servlet/JSP方案,还是时下的SSM架构,都有一套经过工程实践考验的最佳实践,这综合考虑了团队协作.项目管 ...

  3. SVN for Mac

    SVN for Mac https://www.wikihow.com/Install-Subversion-on-Mac-OS-X https://subversion.apache.org/pac ...

  4. java.util.concurrent BlockingQueue详解

    什么是阻塞队列? 阻塞队列(BlockingQueue)是一个支持两个附加操作的队列.这两个附加的操作是:在队列为空时,获取元素的线程会等待队列变为非空.当队列满时,存储元素的线程会等待队列可用.阻塞 ...

  5. BZOJ4520 CQOI2016K远点对(KD-Tree+堆)

    堆维护第k大,每个点KD-Tree上A*式查询较远点,跑得飞快,复杂度玄学. #include<iostream> #include<cstdio> #include<c ...

  6. c++11 强类型枚举

    c++11 强类型枚举 #define _CRT_SECURE_NO_WARNINGS #include <iostream> #include <string> #inclu ...

  7. 【题解】 Codeforces 662A Gambling Nim (线性基)

    662A,戳我戳我 Solution: 我们先取\(ans=a[1] \bigoplus a[2] \bigoplus ... \bigoplus a[n]\),然后我们定义\(c[i]=a[i] \ ...

  8. Java中public、private、protect对数据成员或成员函数的访问限制

    Java类中对数据成员.成员函数的访问限制修饰有:public.protect.private.friendly(包访问限制) public修饰的数据成员或成员函数是对所有用户开放的,所有用户可以直接 ...

  9. Vitrualbox 桥接网卡界面名称未指定、Filters currently installed on the system have reached the limit、不能为虚拟电脑 打开一个新任务

    1. 桥接网卡界面名称未指定 http://wenku.baidu.com/link?url=VFG0hknsDX3VPXQoX5f-g1wUX_LBl-lOj0ZqD222kM31iVCPJKVu3 ...

  10. Redis缓存与springboot集成

    注意点: