>  기사  >  데이터 베이스  >  mysql删除binlog日志及日志恢复数据

mysql删除binlog日志及日志恢复数据

WBOY
WBOY원래의
2016-06-07 16:39:351041검색

基本上大家装mysql,都会开启binlog功能,开启这个功能的好处是,日后方便恢复数据,而坏处是日志文件增长速度快,很快占会占满磁盘空间。 所以我们要定期或手工来删除过大的日志文件。 删除日志文件的方法大概有如下几中: 一、 设置日志保留时长 expire_lo

基本上大家装mysql,都会开启binlog功能,开启这个功能的好处是,日后方便恢复数据,而坏处是日志文件增长速度快,很快占会占满磁盘空间。
所以我们要定期或手工来删除过大的日志文件。
删除日志文件的方法大概有如下几中:

一、设置日志保留时长expire_logs_days自动删除

#查看当前日志保存天数:show?variables?like?’%expire_logs_days’;;#这个默认是0,也就是logs不过期,可通过设置全局的参数,使他临时生效:set?global expire_logs_days=7;#设置了只保留7BINLOG, 下次重启mysql这个参数默认会失败,所以需在my.cnf中设置expire_logs_days?=7

二、手动删除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-2213:00:00′;

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

#查看当前日志文件列表:show?binary?logs;

使用binlog日志的目的是为了方便恢复数据,所以我们不光要会删除,还要会用日志来恢复数据。

使用binlog恢复数据:

使用mysqlbinlog命令恢复日志

mysqlbinlog?-d?test?/root/mysql/mysql-bin.000001|mysql-uroot?-ppassword

※附录

#1、关于mysqlbinlogmysql?5.0上的使用方法,可以参考:官方资料#2、如果不知道log-bin存放的文件位置,可以使用下面的命令查看:mysql-uroot?-ppassword?-e?’SHOW?BINLOG?EVENTS?\G’#3、当只是需要恢复部分记录的时候,你可以使用时间点或位置点来定位,例如:mysqlbinlog?–start-date=”2005-04-20?9:01:00″–stop-date=”2005-04-20?10:00:01″/var/log/mysql/bin.123456|mysql-uroot?-ppassword

#意思是恢复420日早上9点到10点这一段时间的数据。mysqlbinlog?–start-position=”368301″–stop-position=”368312″/var/log/mysql/bin.123456|mysql-uroot?-pmypwd

#意思是重做368301368312位置点之间的操作。(位置点可以就是用mysqlbinlog看到的at?xxx节点)mysqlbinlog?–start-date=”2005-04-20?9:55:00″–stop-date=”2005-04-20?10:05:00″/var/log/mysql/bin.123456?>/tmp/mysql_restore.sql

#同样的,如果我们只是想查看某段时间的操作,直接把它导到一个文件即可。

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.