首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

mysql删除了bin日志

MySQL的binlog(二进制日志)记录了数据库中所有更改数据的操作,包括数据的插入、更新和删除。这些日志对于数据恢复、主从复制和审计等场景非常重要。

基础概念

  • Binlog: MySQL的二进制日志,记录了所有对数据库的修改操作。
  • Log Format: 可以配置为STATEMENT、ROW或MIXED。
  • Retention Policy: 可以设置保留策略来自动删除旧的binlog文件。

优势

  1. 数据恢复: 在数据库崩溃或数据丢失时,可以通过binlog进行恢复。
  2. 主从复制: 允许将一个MySQL服务器的数据变更同步到其他服务器。
  3. 审计: 可以用于跟踪数据库的变更历史。

类型

  • STATEMENT: 记录每条修改数据的SQL语句。
  • ROW: 记录每行数据的变更。
  • MIXED: 结合了STATEMENT和ROW两种格式。

应用场景

  • 备份与恢复: 定期备份binlog,并在需要时使用它来恢复数据。
  • 数据同步: 在分布式系统中,通过binlog实现数据的实时同步。
  • 监控与审计: 分析binlog来监控数据库活动或进行安全审计。

删除Binlog的原因及解决方法

原因

  1. 磁盘空间不足: Binlog文件会占用大量磁盘空间。
  2. 达到保留策略: 设置了自动删除旧binlog的策略。
  3. 误操作: 开发人员或管理员可能误删了binlog文件。

解决方法

  1. 检查磁盘空间:
  2. 检查磁盘空间:
  3. 如果磁盘空间不足,考虑清理不必要的文件或增加磁盘容量。
  4. 查看当前的binlog保留策略:
  5. 查看当前的binlog保留策略:
  6. 如果设置了保留天数,可以根据需要调整这个值。
  7. 手动删除binlog:
  8. 手动删除binlog:
  9. 或者删除特定的binlog文件:
  10. 或者删除特定的binlog文件:
  11. 防止误删除:
    • 定期备份binlog文件。
    • 使用自动化脚本监控binlog文件的状态,并在删除前进行确认。

示例代码

以下是一个简单的脚本示例,用于自动删除超过特定天数的binlog文件:

代码语言:txt
复制
#!/bin/bash

# 设置保留天数
RETENTION_DAYS=7

# 获取当前日期减去保留天数的日期
CUTOFF_DATE=$(date -d "-$RETENTION_DAYS days" +%Y-%m-%d)

# 删除旧的binlog文件
mysql -u root -p -e "PURGE BINARY LOGS BEFORE '$CUTOFF_DATE 00:00:00';"

将此脚本添加到cron作业中,可以定期自动执行。

通过以上方法,可以有效管理和维护MySQL的binlog文件,避免因磁盘空间不足或误操作导致的问题。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

LNMP 关闭 Mysql 日志,删除 mysql-bin.0000*日志文件

百度到军哥的博客,删除了所有 mysql-bin.0000*日志文件,重启就OK了,顺手把 mysql 日志功能关闭了。...LNMP一键安装包安装的MySQL默认是开启了日志文件的,如果数据操作比较频繁就会产生大量的日志,在/usr/local/mysql/var/下面产生mysql-bin.0000* 类似的文件,而且一般都在几十...如何关闭MySQL的日志功能: 删除日志: 执行: /usr/local/mysql/bin/mysql -u root -p 输入数据库root用户的密码登录后再执行:reset master...彻底禁用MySQL日志:修改/etc/my.cnf 文件,找到 log-bin=mysql-bin binlog_format=mixed 再这两行前面加上#,将其注释掉,再执行 /etc/init.d...参考:http://www.vpser.net/manage/delete-mysql-mysql-bin-0000-logs.html

2.4K10

清除mysql的log-bin日志

装mysql并运行一段时间后,在mysql目录下出现一堆类似mysql-bin.000***,从mysql-bin.000001开始一直排列下来,而且占用了大量硬盘空间,高达十几个G.。...原来mysql-bin.000001、mysql-bin.000002等文件是数据库的操作日志,例如UPDATE一个表,或者DELETE一些数据,即使该语句没有匹配的数据,这个命令也会存储到日志文件中,...这些形如mysql-bin.00001的文件主要是用来做什么的呢? 1、数据恢复如果你的数据库出问题了,而你之前有过备份,那么可以看日志文件,找出是哪个命令导致你的数据库出问题了,想办法挽回损失。.../etc/my.cnf把里面的#log-bin=mysql-bin #binlog_format=mixed 这两行注释掉,然后将mysql下的var目录中的这些日志文件全部删除,重启mysql服务即可...简单地说,这些MySQL目录下的形如mysql-bin.000***的文件时MySQL的事务日志。 删除复制服务器已经拿走的binlog是安全的,一般来说网络状况好的时候,保留最新的那一个足以。

1K30
  • Mysql日志redo log、undo log、bin log

    Mysql中日志文件是非常重要的,也是面试的高频问题。...Mysql中日志分为三种,分别是redo log、undo log和bin log,他们在事务回滚,崩溃恢复,主从复制等功能上都是极其重要的,可以说是后端程序员必须掌握的知识点,只是了解Mysql日志,...才是真正了解Mysql,下面我们就来看下他们三种日志分别都有什么作用。...bin log在 MySQL 中,binlog(二进制日志)是一种重要的日志类型,它是以追加的方式记录数据库的修改操作,采用二进制格式进行存储。...binlog(二进制日志)主要用于主从复制和数据恢复。 这三种日志相互配合,共同保障了 MySQL 数据库的事务处理、数据一致性、数据恢复和主从复制等重要功能。

    8610

    MySQL日志详解——日志分类、二进制日志bin log、回滚日志undo log、重做日志redo log

    文章目录一、前言1.1 MySQL体系结构1.2 MySQL日志分类1.3 其他几种日志1.3.1 查询日志1.3.2 慢查询日志1.3.3 错误日志二、bin log 二进制日志2.1 bin log...存储引擎层生成的日志,实现了事务中的持久性,主要用于掉电等故障恢复数据定义语句日志:记录数据定义语句执行的元数据操作除了二进制日志外,其他日志均为文本文件。...查看日志位置:-- 登录mysql,查看系统变量show variables like '%log_error';二、bin log 二进制日志2.1 bin log简介二进制日志(BINLOG)记录了所有的...逻辑日志:可以简单理解为记录的就是sql语句物理日志:因为mysql数据最终是保存在数据页中的,物理日志记录的就是数据页变更如果不小心整个数据库的数据被删除了,能使用redo log文件恢复数据吗?...)——MySQL的日志 & bin log (归档日志) & 事务日志redo log(重做日志) & undo log(回滚日志)MySQL面试资料

    26910

    深入学习MySQL 02 日志系统:bin log,redo log,undo log

    log(重做日志)、undo log(回滚日志) 概括 MySQL中有六种日志文件,分别是:重做日志(redo log)、回滚日志(undo log)、二进制日志(bin log)、错误日志(error...其中bin log和undo log与事务操作息息相关,bin log也与事务操作有一定的关系,这三种日志,对理解MySQL中的事务操作有着重要的意义。...接下来,分别对3种日志做总结概括 bin log 是个啥 由Mysql的Server层实现,是逻辑日志,记录的是sql语句的原始逻辑,比如"给 ID=2 这一行的C字段加1" 怎么工作的 binlog...a.写完redo log宕机,bin log还没写 因为两阶段提交机制,MySql会判断redo log 和 bin log是否都完整,如果不完整,则认为事务未提交,在从redo log 刷数据时,就不会刷未提交的事务的数据...总结 本篇文章只是简单的介绍bin log、redo log、undo log,更深层次的东西就不说了,我也不懂。希望这篇文章能帮到你理解MySql背后的事务。

    1.9K42

    【删库跑路】使用Binlog日志恢复误删的MySQL数据

    前言 “删库跑路”是程序员经常谈起的话题,今天,我就要教大家如何删!库!跑!路! ?...开个玩笑,今天文章的主题是如何使用Mysql内置的Binlog日志对误删的数据进行恢复,读完本文,你能够了解到: MySQL的binlog日志是什么?通常是用来干什么的?...模拟一次误删数据的操作,并且使用binlog日志恢复误删的数据。 写这篇文章的初衷,是有一次我真的险些把测试数据库的一张表给删除了,当时吓出一身冷汗。...好了,回归正题,这篇文章就是想让大家放心,MySQL就算进行了误删操作,也基本都能够抢救回来。尤其是大公司内,数据可不是你想删就能删掉的,有无数权限/备份阻拦着你。....000002日志存档,开启新的mysql-bin.000003日志,这样,每次我们插入的数据彼此独立。

    4.4K20

    删库后,除了跑路还能怎么办?

    我听说过挺多删库的事件,于是开玩笑的略改一下:“日后你删了库后,不要把师傅说出来就行了”,不知道那些删库的工程师们,其师傅有没有交代过这句话,emmm。。。...话说日后,孙悟空真的删过一个数据库里的记录,这就是:生死薄。...从表象来看,生死薄是一个平板文件的日志记录,但是事实上并非如此,这内部一定是一个庞大而复杂的数据库系统,其中: 要存储所有生灵的出生寿元; 要存储所有生灵的善恶功德; 要存储所有的前世今生循环; 要存储所有生灵的关系关联...投标应标咱不管了,可是删除了数据库怎么办? 等传票?拿护照?跑路去?nonono !以 MySQL 为例,这里对删库语句做下分类: 1....使用 rm -rf 命令误删整个 MySQL 实例,只要还有备份节点就可以找回。

    1K10

    删库后,除了跑路还能怎么办?

    我听说过挺多删库的事件,于是开玩笑的略改一下:“日后你删了库后,不要把师傅说出来就行了”,不知道那些删库的工程师们,其师傅有没有交代过这句话,emmm。。。...从表象来看,生死薄是一个平板文件的日志记录,但是事实上并非如此,这内部一定是一个庞大而复杂的数据库系统,其中: 要存储所有生灵的出生寿元; 要存储所有生灵的善恶功德; 要存储所有的前世今生循环; 要存储所有生灵的关系关联...投标应标咱不管了,可是删除了数据库怎么办? 等传票?拿护照?跑路去?nonono !以 MySQL 为例,这里对删库语句做下分类: 1....使用 rm -rf 命令误删整个 MySQL 实例,只要还有备份节点就可以找回。...操作需谨慎,删库别跑路! 热门内容: 1、我特么富得给老铁发键鼠套装了! 2、mybatis-plus支持分布式事务了? 3、记住:永远不要在MySQL中使用UTF-8 4、终结HashMap面试?

    69010

    删库后,除了跑路还能怎么办?

    我听说过挺多删库的事件,于是开玩笑的略改一下:“日后你删了库后,不要把师傅说出来就行了”,不知道那些删库的工程师们,其师傅有没有交代过这句话,emmm。。。...从表象来看,生死薄是一个平板文件的日志记录,但是事实上并非如此,这内部一定是一个庞大而复杂的数据库系统,其中: 要存储所有生灵的出生寿元; 要存储所有生灵的善恶功德; 要存储所有的前世今生循环; 要存储所有生灵的关系关联...投标应标咱不管了,可是删除了数据库怎么办? 等传票?拿护照?跑路去?nonono !以 MySQL 为例,这里对删库语句做下分类: 1....使用 rm -rf 命令误删整个 MySQL 实例,只要还有备份节点就可以找回。...操作需谨慎,删库别跑路!

    84320

    MySQL bin-log 日志过大造成空间不足问题的解决方法

    前几天,一早起来,就发现 RDS 挂了,然后也无法重启,后面发现是 bin-log 日志过大,把 RDS 的空间塞满了。 MySQL bin-log 是干嘛的?...2.主从服务器之间同步数据:主服务器上所有的操作都在记录日志中,从服务器可以根据该日志来进行,以确保两个同步。 怎么清理 MySQL bin-log 呢?...如果没有主从复制,可以通过下面的命令重置数据库日志,清除之前的日志文件: reset master 但是如果存在复制关系,应当通过 PURGE 的名来清理 bin-log 日志,语法如下: PURGE...MySQL 的 expire_logs_days 参数 MySQL 的 expire_logs_days 参数可以用来设置二进制日志自动删除/过期的天数,默认值为0,表示“没有自动删除”,例如: expire_logs_days...每次进行 LOG flush的时会自动删除过期的日志,那么什么时间才能触发log flush,手册上的解释为: 重启 MySQL bin-log 文件大小达到参数 max_binlog_size 限制;

    1.3K50

    如何删库跑路?教你使用Binlog日志恢复误删的MySQL数据

    前言 “删库跑路”是程序员经常谈起的话题,今天,我就要教大家如何删!库!跑!路! ?...开个玩笑,今天文章的主题是如何使用Mysql内置的Binlog日志对误删的数据进行恢复,读完本文,你能够了解到: MySQL的binlog日志是什么?通常是用来干什么的?...模拟一次误删数据的操作,并且使用binlog日志恢复误删的数据。 写这篇文章的初衷,是有一次我真的险些把测试数据库的一张表给删除了,当时吓出一身冷汗。...好了,回归正题,这篇文章就是想让大家放心,MySQL就算进行了误删操作,也基本都能够抢救回来。尤其是大公司内,数据可不是你想删就能删掉的,有无数权限/备份阻拦着你。...这时候我们已经有了四条数据,我们再次flush logs,把mysql-bin.000002日志存档,开启新的mysql-bin.000003日志,这样,每次我们插入的数据彼此独立。

    2.1K10
    领券