MySQL bin-log 日志清理方式

MySQL bin-log 作用

1.数据恢复:如果你的数据库出问题了,而你之前有过备份,那么可以看日志文件,找出是哪个命令导致你的数据库出问题了,想办法挽回损失。

2.主从服务器之间同步数据:主服务器上所有的操作都在记录日志中,从服务器可以根据该日志来进行,以确保两个同步。

3.在什么时间会删除过期日志?

每次进行 LOG flush的时会自动删除过期的日志,那么什么时间才能触发log flush,手册上的解释为:

  1. 重启 MySQL
  2. bin-log 文件大小达到参数 max_binlog_size 限制;
  3. 手工执行清理命令

自动清理方法1:(修改配置文件和在mysql内设置参数可无需重启服务)

vim my.cnf

expire_logs_days = 7 // 表示日志保留7天,超过7天则设置为过期的

# mysql -u root -p > show binary logs; > show variables like ‘%log%‘; > set global expire_logs_days = 7;

手动清理方法2:(推荐)

如果没有主从复制,可以通过下面的命令重置数据库日志,清除之前的日志文件:

reset master

但是如果存在复制关系,应当通过 PURGE 的名来清理 bin-log 日志,语法如下:

# mysql -u root -p

> purge master logs to ‘mysql-bin.010’; //清除mysql-bin.010日志

> purge master logs before ‘2016-02-28 13:00:00‘; //清除2016-02-28 13:00:00前的日志

> purge master logs before date_sub(now(), interval 3 day); //清除3天前的bin日志

注意,不要轻易手动去删除binlog,会导致binlog.index和真实存在的binlog不匹配,而导致expire_logs_day失效

时间: 2024-08-24 21:35:14

MySQL bin-log 日志清理方式的相关文章

mysql bin log

二进制日志主要用于记录任何有可能改变数据库的操作,因此主要用于记录 DDL DML语句,包括数据库授权语气.记录格式为二进制的.我们无法使用普通文本查看命令取查看.只能使用mysql提供的专用命令,叫做mysqlbinlog 二进制日志非常重要用于我们数据库服务器崩溃时候,依靠二进制日志可以进行恢复 一般情况下位于数据目录下,以主机名开头或者是mysql-bin开头,mysql服务器重启一次,这个日志就会滚动一次,这个日志需要不停的滚动.而且记录增长的速度非常快.是能够实现mysql复制,以及即

MySQL | 查看log日志

1. 进入mysql 1 mysql -u用户名 -p密码 2. 开启日志 1 et global general_log=on: 3. 查看mysql日志文件的路径 1 show variables like 'general_log_file'; 4. 在终端中查看日志文件(提示权限不够在前面加sudo  使用超级管理员权限) 1 tail -f 文件路径 注: tail :查看文件内容-f:循环读取,跟踪文件的内容变动,更新了就会实时显示 原文地址:https://www.cnblogs.

mongodb的日志清理学习整理

今天客户要求提供mongo的日志清理方案,客户提供了kill -SIGUSR1的方式,在此记录学习以及测试过程,以及其他几种日志清理方式. 方法1:在mongo的shell 里使用db.runCommand({logRotate:1})来进行日志的整理: 操作如下: shard1:PRIMARY> use adminswitched to db adminshard1:PRIMARY> db.runCommand({logRotate:1}){ "ok" : 1 } 操作前

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 binary log

作为一个oracle dba有时候不得不管理一下mysql数据库,当为主从库时需要阶段性清理mysql binary log,清楚方式如下: 首先查看mysql 的当前日志组 show master status; 确定当前日志组后删除日志文件 purge binary logs to 'mysql-bin.000795'; 删除000795之前的日志 清除mysql binary log,布布扣,bubuko.com

跨平台日志清理工具 Log-Cutter v2.0.2 正式发布

Log-Cutter 是JessMA开源组织开发的一个简单实用的日志切割清理工具.对于服务器的日常维护来说,日志清理是非常重要的事情,如果残留日志过多则严重浪费磁盘空间同时影响服务的性能.如果用手工方式进行清理,会花费太多时间,并且很多时候难以满足实际要求.例如:如何在每个星期六凌晨3点把超过 2G 大的日志文件进行切割,保留最新的 100M 日志记录? 网上没有发现能满足本座要求的日志切割工具,因此花了一些闲暇时间自己写了一个.由于要在多个平台上使用,为了方便采用 Java 实现.本工具命名为

MySQL 慢查询日志(Slow Query Log)

同大多数关系型数据库一样,日志文件是MySQL数据库的重要组成部分.MySQL有几种不同的日志文件,通常包括错误日志文件,二进制日志,通用日志,慢查询日志,等等.这些日志可以帮助我们定位mysqld内部发生的事件,数据库性能故障,记录数据的变更历史,用户恢复数据库等等.本文主要描述通用查询日志. 1.MySQL日志文件系统的组成   a.错误日志:记录启动.运行或停止mysqld时出现的问题.   b.通用日志:记录建立的客户端连接和执行的语句.   c.更新日志:记录更改数据的语句.该日志在M

mysql bin日志配置及查看

mysql执行sql可以通过设置mysql bin 日志进行记录查看,mysql bin日志配置如下: log_bin:on log_bin_basename:bin文件路径及名前缀(/var/log/mysql/mysql-bin) log_bin_index:bin文件index(/var/log/mysql/mysql-bin.index) server_id:n 生成的bin日志如:mysql-bin.000000  mysql-bin.000001 通过mysqlbinlog mysq

mysqlbinlog 查看mysql bin 日志 mysqlbinlog: unknown variable 'default-character-set=utf8'

mysqlbinlog  mysql-bin.000036 | less 查询包含几个字段的语句: mysqlbinlog mysql-bin.000036| egrep '(2011030610002460|2011030310001730|2011030410011680|2011030410006280)' mysqlbinlog查看二进制日志的问题 在使用mysqlbinlog查看日志的时候碰到了一个问题, 错误提示如下:/usr/local/mysql/bin/mysqlbinlog: