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

mysql binlog自动清理

基础概念

MySQL的Binary Log(二进制日志)记录了所有的DDL和DML(除了数据查询语句)语句,以事件形式记录,还包含语句所执行的消耗的时间。它的主要作用有:

  • 数据恢复:可以将数据恢复到备份时的状态。
  • 主从复制:在主从复制架构中,从服务器通过读取主服务器的二进制日志来同步数据。

自动清理机制

MySQL提供了两种自动清理二进制日志的方式:

  1. 基于时间的自动清理:通过设置expire_logs_days参数,MySQL会自动删除超过指定天数的二进制日志文件。
  2. 基于大小的自动清理:通过设置max_binlog_size参数,MySQL会在二进制日志文件达到指定大小时创建新的日志文件,并删除旧的日志文件。

相关优势

  • 节省存储空间:自动清理机制可以防止二进制日志文件无限制地增长,从而节省服务器的存储空间。
  • 简化管理:自动清理机制减少了管理员手动清理二进制日志的工作量。

类型

  • 基于时间的自动清理:通过expire_logs_days参数设置。
  • 基于大小的自动清理:通过max_binlog_size参数设置。

应用场景

  • 数据恢复:在需要从备份恢复数据时,二进制日志文件可以提供详细的操作记录。
  • 主从复制:在主从复制架构中,二进制日志文件是实现数据同步的关键。

常见问题及解决方法

问题:二进制日志文件没有自动清理

原因

  1. expire_logs_days参数未设置或设置为0。
  2. MySQL服务器没有定期重启,导致自动清理机制未能生效。

解决方法

  1. 设置expire_logs_days参数:
  2. 设置expire_logs_days参数:
  3. 确保MySQL服务器定期重启,或者手动执行清理命令:
  4. 确保MySQL服务器定期重启,或者手动执行清理命令:

问题:二进制日志文件过大

原因

  1. max_binlog_size参数设置过小。
  2. 数据库操作非常频繁,导致日志文件迅速增长。

解决方法

  1. 调整max_binlog_size参数:
  2. 调整max_binlog_size参数:
  3. 如果数据库操作非常频繁,可以考虑增加更多的存储空间,或者优化数据库操作以减少日志生成。

参考链接

通过以上信息,您可以更好地理解MySQL二进制日志的自动清理机制及其相关应用场景和常见问题解决方法。

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

相关·内容

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

mysql主从,关闭binlog # vim /etc/my.cnf //注释掉log-bin,binlog_format # Replication Master Server (default)...,x是自动删除的天数,一般将x设置为短点,如10 expire_logs_days = x // 二进制日志自动删除的天数。...默认值为0,表示“没有自动删除” 此方法需要重启mysql,附录有关于expire_logs_days的英文说明 以上操作完之后记得重启数据库,当然也可以不重启mysql,开启mysql主从,直接在mysql...,执行以下SQL语句手动清除binlog文件 PURGE MASTER LOGS TO 'MySQL-bin.010'; // 清除MySQL-bin.010日志 PURGE MASTER LOGS...不过,如果从属服务器是休止的,并且您碰巧清理了其想要读取的日志之一,则从属服务器启动后不能复制。当从属服务器正在复制时,本语句可以安全运行。您不需要停止它们。

7.4K10
  • MySQL Binlog日志清理

    Binlog日志的两个重要的使用场景:(1)MySQL主从复制(2)数据库回档[数据恢复]2、MySQL Binlog过期时间MySQL默认Binlog过期时间是7天,这里需要注意:Binlog日志过期时间是按照最新一个...比如:今天是14号,而最新Binlog最后的修改时间是9号,那么几号之前的Binlog会被清理呢?答案可能有点出乎意料,没错是9-7=2,即2号之前的Binlog会被自动清理。...3、MySQL Binlog日志清理(1)查看binlog文件列表show binary logs;(2)查看当前写的binglogshow master status\G(3)方式一:清理除比mysql-bin... logs before "$begin_time";日期格式:'2018-02-01 12:00:00';4、MySQL Binlog日志定时清理脚本4.1 背景介绍生产环境中,我们经常会遇到MySQL...【注意】当然MySQL有自带binlog清理机制,通过修改expire_logs_days即binlog过期时间进行控制。但是由于该参数的取值范围是1-31天,所以无法精确清理小时级别的日志。

    10210

    mysql 正确清理binlog日志

    mysq 正确清理binlog日志 前言: MySQL中的binlog日志记录了数据库中数据的变动,便于对数据的基于时间点和基于位置的恢复,但是binlog也会日渐增大,占用很大的磁盘空间,因此,要对...binlog使用正确安全的方法清理掉一部分没用的日志。...【方法一】手动清理binlog 清理前的准备: ① 查看主库和从库正在使用的binlog是哪个文件 ?...1 purge master logs to'mysql-bin.000022'; //删除指定日志文件的日志索引中binlog日志文件 注意: 时间和文件名一定不可以写错,尤其是时间中的年和文件名中的序号...切勿删除正在使用的binlog!!! 使用该语法,会将对应的文件和mysql-bin.index中的对应路径删除。 【方法二】通过设置binlog过期的时间,使系统自动删除binlog文件 ?

    3.7K10

    快速安全清理MySQL binlog

    一、问题提出 之前写过一篇名为“快速安全删除MySQL大表”的博客,讲解如何在不影响线上数据库服务的前提下删除大表。实际上清理MySQL binlog也会遇到同样的问题。...最初的做法是,每天凌晨2:30执行下面的操作清理10天前binlog: mysql -uroot -p123456 -s /data/3306/mysqldata/mysql.sock -e "purge...随着业务量增长出现了两点变化:一是数据库负载增加;二是由于磁盘空间紧张,原存储binglog的磁盘上也存储了MySQL数据。这种情况下,即便是在业务低峰期,每次执行清理任务时也会卡库。...然后使用truncate操作系统命令逐步缩减binlog文件,直到最后binlog文件变得很小时再将其删除。事实证明这种方案行之有效,能够不影响数据库服务同时清理binlog。...还是以前面的binlog列表为例,假设删除10:45之前的binlog,执行完purge master logs后,文件列表变为: -rw-rw---- 1 mysql mysql 1073741878

    1.8K10

    MySQL Binlog和Relaylog生成和清理

    BINLOG文件生成与删除 binlog文件生成: 在每条二进制日志写入到日志文件后,会判断该文件是否超过max_binlog_size,如果超过则生成一个新的binlog binlog文件删除:...datetime’; 4>当实例启动或执行flush logs时,按照expire_logs_days设置,如果超过该参数指定天数的二进制会被全部删除 命令:mysqladmin flush-log 清理...binlog文件顺序: 先从文件系统中清理文件,再修改索引文件。...RELAY LOG生产与删除 Relay Log rotate 机制: Rotate:每从Master fetch一个events后,判断当前文件是否超过max_relay_log_size 如果超过则自动生成一个新的...relay-log-file Delete: purge-relay-log 在SQL Thread每执行完一个events时判断,如果该relay-log 已经不再需要则自动删除 Delete:

    2K40

    MySQL -- 关闭 binlog

    LNMP一键安装包安装的MySQL默认是开启了日志文件的,如果数据操作比较频繁就会产生大量的日志,在/usr/local/mysql /var/下面产生mysql-bin.0000* 类似的文件,而且一般都在几十...MB到几个GB,更甚会吃掉整个硬盘空间,从来导致mysql无法启动或报错,如vps论坛用户的反馈。...如何关闭MySQL的日志功能: 在cmd下进到mysql下的bin目录下,输入mysql -u root -p然后输入密码,成功进去后输入 reset master。...: 修改/etc/my.cnf 文件,找到 log-bin=mysql-bin binlog_format=mixed 再这两行前面加上#,将其注释掉,再执行/etc/init.d/mysql restart...本文以LNMP一件安装包安装的环境为例 除MySQL重启命令和配置文件路径可能略有不同,其他一样。

    9.1K32

    MySQL Binlog 入门

    主从复制 MySQL 上下分为 SQL 层和引擎层,不同存储引擎中的日志格式是不同的,由于要对多引擎支持,必须在 SQL 层设计逻辑日志以透明化不同存储引擎,而这个逻辑日志就是 binlog 。...relay-log ,根据读取的内容转换为 sql 并重放 增量恢复 恢复方式:mysql 将保存在 binlog 日志中指定段落区间的 sql 语句逐个重新执行一次。...在 mysql 体现在写操作时不是立刻更新到磁盘, 而是先落在日志系统. 对支持事务的引擎如 InnoDB 而言,必须要提交了事务才会记录 binlog 。...if (mysql_file_write(info->file, Buffer, length, info->myflags | MY_NABP)) return info->error =...参考资料 http://mysql.taobao.org/monthly/2020/02/06/ https://blog.csdn.net/f80407515/article/details/128055909

    20910

    MySQL Binlog 入门

    主从复制 MySQL 上下分为 SQL 层和引擎层,不同存储引擎中的日志格式是不同的,由于要对多引擎支持,必须在 SQL 层设计逻辑日志以透明化不同存储引擎,而这个逻辑日志就是 binlog 。...relay-log ,根据读取的内容转换为 sql 并重放 增量恢复 恢复方式:mysql 将保存在 binlog 日志中指定段落区间的 sql 语句逐个重新执行一次。...在 mysql 体现在写操作时不是立刻更新到磁盘, 而是先落在日志系统. 对支持事务的引擎如 InnoDB 而言,必须要提交了事务才会记录 binlog 。...if (mysql_file_write(info->file, Buffer, length, info->myflags | MY_NABP)) return info->error =...参考资料 http://mysql.taobao.org/monthly/2020/02/06/ https://blog.csdn.net/f80407515/article/details/128055909

    16910

    MySQL日志 binlog

    MySQL日志保留策略:设置binlog日志保存天数、文件大小限制 一、查看当前binlog保留时长,文件大小限制 ## 查看binlog的保留时长[expire_logs_days] ## 0表示永久保留...mysql> show variables like 'expire_logs_days'; ## 查看binlog的文件大小限制[max_binlog_size] ## 1073741824 mysql...: 修改my.cnf文件,永久生效,数据库启动的适合会自动加载该文件 ## 打开my.cnf配置文件 [root@zxy_slave1 mysql]# vim /etc/my.cnf ## [mysqld...]模块下添加:expire_logs_days [mysqld] expire_logs_days = 30 max_binlog_size = 500M 三、手动清理binlog # 两种方式 一种按时间...,一种按照文件名称 ## 将mysql-bin.000010之前的日志清理掉 mysql> purge binary logs to 'mysql-bin.000010'; Query OK, 0 rows

    16910

    MySQL:聊聊Binlog

    可以说MySQL数据库的数据备份、主备、主主、主从都离不开binlog,需要依靠binlog来同步数据,保证数据一致性。今天就来聊聊 binlog(归档日志)。...vim /mydata/mysql/conf/my.cnf添加[mysqld]log-bin=mysql-binserver_id=1# 配置定时清理expire_logs_days = 5# binlog...一般的复制使用STATEMENT模式保存binlog,对于STATEMENT模式无法复制的操作使用ROW模式保存binlog。MySQL会根据执行的SQL语句的特性自动选择日志保存方式。.../Binlog写入机制MySQL 的二进制日志(binlog)在事务执行过程中起着关键作用。...性能影响: 记录 Binlog 会对 MySQL 的性能产生一定影响,尤其在高并发的环境下,可能引起性能瓶颈。使用注意事项定期清理 Binlog 文件,确保不会占用过多的硬盘空间,维护系统的正常运行。

    755110

    MySQL Binlog 介绍

    Binlog日志的两个最重要的使用场景 MySQL主从复制:MySQL Replication在Master端开启binlog,Master把它的二进制日志传递给slaves来达到master-slave...启用 binlog 之后须重启MySQL才能生效。...如果设置为0,则表示MySQL不控制binlog的刷新,由文件系统去控制它缓存的刷新; 如果设置为不为0的值,则表示每 sync_binlog 次事务,MySQL调用文件系统的刷新操作刷新binlog到磁盘中...参考文档 MySQL 5.7参考手册.二进制日志 MySQL Internals Manual.The Binary Log 朱小厮.MySQL Binlog解析 七把刀.MySQL binlog格式解析...散尽浮华.Mysql之binlog日志说明及利用binlog日志恢复数据操作记录 MySql Binlog 初识 MySQL5.7杀手级新特性:GTID原理与实战 MySQL 5.7 基于 GTID

    2K21
    领券