安全删除mysql的binlog日志

出于公司的业务原因,既不能保留固定天数的日志,又不能让磁盘空间站满,所以只能手动删除binlog

使用mysql自带的 PURGE命令

PURGE MASTER LOGS TO ‘mysql-bin.000002‘; 删除002之前(不包括002)的binlog日志,

[[email protected] data]# ls

DBmaster.test.err  ib_logfile0    localhost.pid     mysql-bin.000002  mysql-bin.000005  performance_schema  wine_test

DBmaster.test.pid  ib_logfile1    mysql             mysql-bin.000003  mysql-bin.000006  test

ibdata1            localhost.err  mysql-bin.000001  mysql-bin.000004  mysql-bin.index   wine_cn

mysql> PURGE MASTER LOGS TO ‘mysql-bin.000002‘;

[[email protected] data]# ls

DBmaster.test.err  ib_logfile0    localhost.pid     mysql-bin.000003  mysql-bin.000006    test

DBmaster.test.pid  ib_logfile1    mysql             mysql-bin.000004  mysql-bin.index     wine_cn

ibdata1            localhost.err  mysql-bin.000002  mysql-bin.000005  performance_schema  wine_test

PURGE MASTER LOGS TO ‘mysql-bin.000005‘;

[[email protected] data]# ls

DBmaster.test.err  ibdata1      ib_logfile1    localhost.pid  mysql-bin.000005  mysql-bin.index     test     wine_test

DBmaster.test.pid  ib_logfile0  localhost.err  mysql          mysql-bin.000006  performance_schema  wine_cn

[[email protected] data]#

#!/bin/bash

# Date: 2014-06-11

# Database delete  -ge 30day binlog feil

cd /DBdata/mysql

#logname=( `find  ./  -maxdepth 1  -type f -mtime +30 -name "mysql-bin.*" |sed  -n "1p;\$p"|awk -F ‘/‘ ‘{print $2}‘`)

logname=`find  ./  -maxdepth 1  -type f -mtime +30 -name "mysql-bin.*" |sed  -n ‘$p‘|awk -F ‘/‘ ‘{print $2}‘`

echo $logname

mysql -uroot -p123456 -e " PURGE MASTER LOGS TO ‘$logname‘;"

mysql> CREATE  USER  ‘binlog‘@‘localhost‘  IDENTIFIED  BY  ‘mypass123‘;

Query OK, 0 rows affected (0.05 sec)

mysql> GRANT  SUPER   ON *.*   TO  ‘binlog‘@‘localhost‘;

Query OK, 0 rows affected (0.00 sec)

时间: 2024-10-29 03:21:26

安全删除mysql的binlog日志的相关文章

mysql清理binlog日志

mysql的binlog日志过多过大,清理过程. 1.查看binlog日志 mysql> show binary logs; +------------------+-----------+ | Log_name | File_size | +------------------+-----------+ | mysql-bin.000001 | 13255920 | | mysql-bin.000002 | 143716 | | mysql-bin.000003 | 524288119 | |

06 : mysql 的 binlog 日志 和slow慢日志 详解

mysql 的 binlog 日志 和slow慢日志 详解 mysql一般常用的日志有三种:1:error错误日志2: binlog日志3:slow日志 下面将详细解释这三种日志: 1.错误日志记录MySQL启动或工作过程中,数据库状态信息,默认就是开启的,数据路径下$hostname.err.也可以指定错误路径:log_error=/var/log/mysql3306.log 2.二进制binlog日志(1)他记录了什么?记录了所有的数据库修改类的命令:DDLDCLDML (2)二进制日志记录

mysql通过binlog日志来恢复数据

简介 在生产的过程中有这么一个业务场景:比如我在2016-11-19 09:30:00 通过mysqldump的方式备份了数据库,但是在2016-11-19 10:30:00的时候数据库崩溃了,如果通过我们的备份文件来恢复,也只能恢复到 2016-11-19 09:30:00 这个时间点,而9.30分到10:30分这一个小时的数据恢复不了,这时候我们可以通过mysql的binlog日志来恢复没有备份到的这一小时的数据. 1.开启mysql的binlog日志(默认情况下没有开启) #vim /et

MySQL抑制binlog日志中的BINLOG部分

MySQL通过binlog来记录整个数据的变更过程,因此我们只要有MySQL的binlog日志即可完整的还原数据库.MySQL binlog日志记录有3种不同的方式,即:STATEMENT,MIXED,ROW.对于不同的日志模式,生成的binlog有不同的记录方式.对于MIXED(部分SQL语句)和ROW模式是以base-64方式记录,会以BINLOG开头,是一段伪SQL,我们可以用使用base64-output参数来抑制其显示.本文对此给出了描述及演示. 有关mysqlbinlog的用法,请参

mysql将bin-log日志文件转为sql文件

查看mysqlbinlog版本 mysqlbinlog -V [--version] 查看binlog日志开启状态 show variables like '%log_bin%'; mysql打开bin-log日志后,mysql数据库的非查询操作会将记录保存到bin-log文件中.一般bin-log日志文件不能打开查看的,需要用到mysql的工具进行.假设/mysql/data/目录中存放着二进制文件mysql-bin.000011.需要将日志文件mysql-bin.000011中关于数据库ti

mysql主从binlog日志自动清理及手动删除

问题反馈: mysql主从,在没有设置自动清理binlog日志的情况下,会产生庞大的同步日志文件,占用磁盘空间. 1 手动清理binlog日志,purge master logs 1.1 删除在"指定日期前"或"指定日志前"的所有二进制binlog日志文件   PURGE {MASTER | BINARY} LOGS TO 'log_name'     PURGE {MASTER | BINARY} LOGS BEFORE 'date' 实例: PURGE MAST

mysql开启binlog日志和慢查询日志

1)首先,为什么要开启binlog日志和慢查询日志呢? binlog日志会记录下数据库的所以增删改操作,当不小心删除.清空数据,或数据库系统出错,这时候就可以使用binlog日志来还原数据库,简单来说就是一个记录备份的东西 慢查询日志 slow_query_log,这个东西是用来记录查询比较慢的sql语句,通过查询日志来查找哪条sql语句比较慢,然后就可以进行数据库或sql语句或程序上的优化,简单来说就是一个优化辅助工具 PS:binlog日志应该一直开着(因为你不知道数据库哪一天会崩掉,或者哪

自动打包mysql下binlog日志

一.需求 线上一台机器做了rsync,从5台mysql机器拉取binlog日志到本地,之前是手动打包,现在写了个脚本,放到crontab定期执行打包,并删除打包后的的文件. 二.脚本如下 #!/bin/sh # usage:  # nohup sh /tmp/backup_binlog_tar.sh > nohup.out  2>/dev/null  & dir_backup_tar="/data0/backup_log-bin_tar"_`date +%Y-%m-

Mysql之binlog日志说明及利用binlog日志恢复数据操作记录

众所周知,binlog日志对于mysql数据库来说是十分重要的.在数据丢失的紧急情况下,我们往往会想到用binlog日志功能进行数据恢复(定时全备份+binlog日志恢复增量数据部分),化险为夷! 废话不多说,下面是梳理的binlog日志操作解说: 一.初步了解binlogMySQL的二进制日志binlog可以说是MySQL最重要的日志,它记录了所有的DDL和DML语句(除了数据查询语句select),以事件形式记录,还包含语句所执行的消耗的时间,MySQL的二进制日志是事务安全型的. DDL-