不知道你有没有为mysql的binlog占用大量磁盘感到无奈,my.cnf里binlog的size可以设置多大做分割,但没有看到删除的配置,在mysql里show了一下variables,
mysql> show variables like '%log%';
查到了
| expire_logs_days | 0
|
这个默认是0,也就是logs不过期,这个是一个global的参数,所以需要执行
set global expire_logs_days=10;
这个值可以参考你的相邻两个binlog文件的日期。
这样10天前的log就会被删除了,如果有恢复的需要,请做好备份工作,但这样重启mysql配置又恢复默认了,所以需在my.cnf中设置

expire_logs_days
= 10

另外还有一种手动的删除binlog的方法,转自http://www.ourmysql.com/archives/293
想要恢愎数据库以前的资料,执行:show
binlog
events;
由于数据量很多,查看起来很麻烦,光打开个文件就要闪半天,所以应该适当删除部分可不用的日志。
并且如果使用的时间足够长的话,会把我的硬盘空间都给吃掉
1.登录系统,/usr/bin/mysql
使用mysql查看日志
mysql>
show binary logs;
+—————-+———–+
| Log_name | File_size
|
+—————-+———–+
| ablelee.000001 | 150462942 |
| ablelee.000002 |
120332942 |
| ablelee.000003 | 141462942
|
+—————-+———–+
2.删除bin-log(删除ablelee.000003之前的而没有包含ablelee.000003)
mysql>
purge binary logs to ‘ablelee.000003′;
Query OK, 0 rows affected (0.16
sec)
3. 查询结果(现在只有一条记录了.)
mysql> show binlog
events\G
*************************** 1. row
***************************
Log_name: ablelee.000003
Pos: 4
Event_type:
Format_desc
Server_id: 1
End_log_pos: 106
Info: Server ver:
5.1.26-rc-log, Binlog ver: 4
1 row in set (0.01
sec)
(ablelee.000001和ablelee.000002已被删除)
mysql> show binary
logs;
+—————-+———–+
| Log_name | File_size |
+—————-+———–+
|
ablelee.000003 | 106 |
+—————-+———–+
1 row in set (0.00 sec)

(删除的其它格式运用!)
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′;
清除3天前的 binlog
PURGE MASTER LOGS BEFORE DATE_SUB( NOW( ),
INTERVAL 3 DAY);
  BEFORE变量的date自变量可以为’YYYY-MM-DD
hh:mm:ss’格式。MASTER和BINARY是同义词。
  如果您有一个活性的从属服务器,该服务器当前正在读取您正在试图删除的日志之一,则本语句不会起作用,
而是会失败,并伴随一个错误。不过,如果从属服务器是休止的,并且您碰巧清理了其想要读取的日志之一,则从
属服务器启动后不能复制。当从属服务器正在复制时,本语句可以安全运行。您不需要停止它们。
  要清理日志,需按照以下步骤:
  1.
在每个从属服务器上,使用SHOW SLAVE STATUS来检查它正在读取哪个日志。
  2. 使用SHOW MASTER
LOGS获得主服务器上的一系列日志。
  3.
在所有的从属服务器中判定最早的日志。这个是目标日志。如果所有的从属服务器是更新的,这是清单上的
最后一个日志。
  4.
制作您将要删除的所有日志的备份。(这个步骤是自选的,但是建议采用。)
  5.
清理所有的日志,但是不包括目标日志。

下面讲一下怎么从二进制文件恢复数据, 假如不小心执行了drop table xxx_db,
假如你保留了完整的二进制日志的话, 先不要冒汗, 这是可以恢复的.
先看看日志
>mysqlbinlog
/diskb/bin-logs/xxx_db-bin.000001

找到执行create table xxx_db之后和drop table
xxx_db之前的position, 假如是20, 1000.
>mysqlbinlog --start-position="4"
--stop-position="1000" /diskb/bin-logs/xxx_db-bin.000001 | mysql -u
root

伴随着一大堆的ERROR 1062 (23000) at line 12355: Duplicate entry '139' for
key 1, 数据库就这样恢复了, 不过--start-position="20"是不行的, 必须从--start-position="4"开始,
为什么要强制从4开始, 这个问题我也暂时没有搞清楚.+
还有一种办法是根据日期来恢复
>mysqlbinlog
--start-datetime="2009-09-14 0:20:00" --stop-datetim="2009-09-15 01:25:00"
/diskb/bin-logs/xxx_db-bin.000001 | mysql -u root

如果create table
xxx_db和drop table xxx_db之间的时间相距是一年, 或者在不同的二进制日志中, 且位置相距好远, 就等着失眠吧! 做好备份,
小心操作才是正路啊...
如果MySQL服务器上有多个要执行的二进制日志,安全的方法是在一个连接中处理它们。下面是一个说明什么是不安全的例子:
shell>
mysqlbinlog hostname-bin.000001 | mysql # DANGER!!shell> mysqlbinlog
hostname-bin.000002 | mysql # DANGER!!使用与服务器的不同连接来处理二进制日志时,如果第1个日志文件包含一个CREATE
TEMPORARY
TABLE语句,第2个日志包含一个使用该临时表的语句,则会造成问题。当第1个mysql进程结束时,服务器撤销临时表。当第2个mysql进程想使用该表时,服务器报告
“不知道该表”。
要想避免此类问题,使用一个连接来执行想要处理的所有二进制日志中的内容。下面提供了一种方法:
shell>
mysqlbinlog hostname-bin.000001 hostname-bin.000002 | mysql另一个方法是:
shell>
mysqlbinlog hostname-bin.000001 > /tmp/statements.sqlshell> mysqlbinlog
hostname-bin.000002 >> /tmp/statements.sqlshell> mysql -e "source
/tmp/statements.sql"

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

  1. mysql中删除binlog的方法?mysql中如何删除binlog?

    需求描述: 在mysql中如何删除binlog,因为随着数据库的运行,mysql中产生的binlog会越来越大,有可能把磁盘撑爆了,所以记录下删除 binlog的方法. 操作过程: 1.通过系统参数控 ...

  2. 几种php 删除数组元素方法

    几种php教程 删除数组元素方法在很多情况下我们的数组会出现重复情况,那我们删除数组中一些重复的内容怎么办,这些元素我必须保持他唯一,所以就想办法来删除它们,下面利用了遍历查询来删除重复数组元素的几种 ...

  3. oracle 快速删除大批量数据方法(全部删除,条件删除,删除大量重复记录)

    oracle 快速删除大批量数据方法(全部删除,条件删除,删除大量重复记录) 分类: ORACLE 数据库 2011-05-24 16:39 8427人阅读 评论(2) 收藏 举报 oracledel ...

  4. ArcEngine查询、添加、删除要素的方法

    原文 ArcEngine查询.添加.删除要素的方法 1.查找数据 1).利用FeaturCursor进行空间查询 //空间查询 ISpatialFilter spatialFilter = new S ...

  5. (转载)php数组添加、删除元素的方法

    (转载)http://www.phpgs.com/html/php/phpjichu/20120130440.html 带来一篇php 数组 添加元素.删除元素的方法的文章,有需要的php学习者参考下 ...

  6. kafka删除topic的方法及我在kafka上边的一些经验

    我在本地做kafka的producer调试,每隔一段时间后,所使用的topic管道就会堆积数据,而且我这边使用的是  kafka   bin 下的consumer命令单独消费的,每次都是  --fro ...

  7. dedecms后台添加新变量和删除变量的方法

    下面由做网站为大家来介绍dedecms后台添加新变量和删除变量的方法 添加新变量是做什么用的?答:可以在模板内调用的东东. 一.进入网站织梦(Dedecms)后台(以dede5.5为例),依次打开系统 ...

  8. internet信息服务(iis)无法删除的解决方法

    internet信息服务(iis)无法删除的解决方法: 1.进入控制面板: 2.然后点击添加删除程序: 3.接着点击“添加/删除windows组件”: 4.点击“internet信息服务(iis)”, ...

  9. php 删除cookie有效方法

      php 删除cookie有效方法关于删除cookie的说明开始----- bool setcookie ( string name [, string value [, int expire [, ...

随机推荐

  1. jquery easyUi 配置默认页码

    jquery easyUI用pagenation 属性如果修改其默认加载页面显示,配置该怎样写? 注意区分datagrid的pagenation分页的区别,代码如下. if ($.fn.paginat ...

  2. 世界上还有一个东西叫Virtual Pascal

    官网是:http://web.archive.org/web/20060312064321/http://www.vpascal.com/news.php?item.16 不过2005年就不再维护了. ...

  3. 【解惑】让人头疼的"相等"关系

    Java中判断相等关系一般有两种手段:(1) “==”关系操作符  (2) equals()方法. 显然,基本数据类型变量之间只能用"==".而对象之间两种手段都是合法的.但是有很 ...

  4. 270. Closest Binary Search Tree Value

    题目: Given a non-empty binary search tree and a target value, find the value in the BST that is close ...

  5. ColorDescriptor software v4.0 一个提取颜色特征描述子的软件包

    ColorDescriptor software v4.0 Created by Koen van de Sande, (c) University of Amsterdam Note: Any co ...

  6. json 得到时分秒为00:00:00,拿不到时分秒 解决办法

    数据库查询时间没有了时分秒的解决办法        问题出处,公司一个项目中使用动态sql方式查询Oracle数据库,在展示时Date类型字段只展示日期,无时分秒.        分析:        ...

  7. USACO Section 2.4: The Tamworth Two

    这题我是用蒙的方法来弄出最后的不能碰到的条件的(用1000试了下account跳出条件),结果竟然还过了,不过网上有精准的求出这个碰不到的条件,farm的状态为10*10*4 = 400,cow的状态 ...

  8. ubuntu 默认 进入 命令行

    图形模式下,首先进入终端:1. 运行 sudo vi/etc/default/grub2. 找到 GRUB_CMDLINE_LINUX_DEFAULT=”quiet splash”3.改为 GRUB_ ...

  9. R之批处理

    在linux下如何编写脚本调用R语言写的程序呢? R语言进行批处理有2种方式: R CMD BATCH --options scriptfile outputfile Rscript --option ...

  10. POJ-3669 Meteor Shower(bfs)

    http://poj.org/problem?id=3669 注意理解题意:有m颗行星将会落在方格中(第一象限),第i颗行星在ti时间会摧毁(xi,yi)这个点和四周相邻的点,一个人开始在原点,然后只 ...