首页 > 数据库 >【MySQL】设置二进制日志文件自动过期,从根源上解决占满磁盘的问题:通过修改 binlog_expire_logs_seconds 配置项

【MySQL】设置二进制日志文件自动过期,从根源上解决占满磁盘的问题:通过修改 binlog_expire_logs_seconds 配置项

时间:2024-10-19 13:48:44浏览次数:10  
标签:binlog logs seconds 二进制 expire MySQL 日志

引言

MySQL的二进制日志(binlog)文件记录了数据库中所有更改的详细信息,包括但不限于对数据的插入、删除、更新,对表和数据库的创建、更改、删除等操作。每一次这样的操作都会在二进制日志中生成一个新的日志事件,并被写入到一个新的二进制日志文件中。因此,如果数据库的活动量较大,二进制日志文件将会迅速增长,可能占用大量的磁盘空间。

此外,MySQL的二进制日志是持久化存储的,除非手动删除或者设置了自动过期(通过expire_logs_days配置项),否则这些日志文件将会永久保留在磁盘上。如果没有定期清理旧的二进制日志文件,这些文件将会累积起来,占用更多的磁盘空间。因此,为了避免磁盘空间被耗尽,需要定期清理旧的二进制日志文件,或者设置二进制日志的自动过期。

在 MySQL 8 及更高版本中,引入了binlog_expire_logs_seconds全局系统变量,它允许您以秒为单位设置二进制日志文件的自动过期时间。这比expire_logs_days变量提供了更精细的控制,后者只能以天为单位设置过期时间。


步骤

  1. 登录到MySQL服务器:
mysql -u root -p
  1. 查看当前的binlog_expire_logs_seconds值:
SHOW VARIABLES LIKE 'binlog_expire_logs_seconds';

在这里插入图片描述

  1. 设置binlog_expire_logs_seconds值。例如,如果要将二进制日志文件的过期时间设置为1天(86400秒),可以执行以下命令:
SET GLOBAL binlog_expire_logs_seconds = 86400;

这个命令只会影响新生成的二进制日志文件,已经存在的二进制日志文件的过期时间不会改变。

注意,只有具有SUPER权限的用户才能设置binlog_expire_logs_seconds系统变量。

  1. 为了让这个设置在MySQL服务器重启后仍然有效,需要将它添加到MySQL的配置文件中。

打开MySQL的配置文件

sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

[mysqld]部分添加以下行:

binlog_expire_logs_seconds = 86400

然后保存并关闭配置文件。

  1. 重启MySQL服务器以使新的设置生效
sudo service mysql restart
  1. 再次查看当前的binlog_expire_logs_seconds值以确保设置生效
SHOW VARIABLES LIKE 'binlog_expire_logs_seconds';

在这里插入图片描述

现在,MySQL服务器会自动删除超过1天的二进制日志文件。

标签:binlog,logs,seconds,二进制,expire,MySQL,日志
From: https://blog.csdn.net/qq_34988204/article/details/136431416

相关文章

  • ELK(Elasticsearch、Kibana、Filebeat、Metricbeat、Logstash、Elastic Agent、Fleet S
    (241018).env#项目名COMPOSE_PROJECT_NAME=es#elastic用户(至少6个数字)ELASTIC_PASSWORD=#kibana用户(至少6个数字)KIBANA_PASSWORD=#版本号,一定要填写需求版本#https://www.elastic.co/downloads/past-releases#elasticsearchSTACK_VERSION=8.15.1#集群名CLUSTER_NA......
  • logstash详解
    logstash详解文章目录Logstash官网核心概念数据传输原理安装Logstash配置文件结构InputPluginsOutputPluginsCodecPluginsFilterPluginsLogstashQueue案例Logstash导入csv数据到ES案例同步数据库数据到ElasticsearchLogstash官网Logstash是免费且开放的服......
  • 如何在cnblogs的发文中使用自定义地址作为发文链接
    要知道在cnblogs中发表内容后其默认的链接地址都是一串数字的形式,比如本篇的默认地址:https://www.cnblogs.com/xyz/p/18461898但是为了让发表的内容更有个性化,于是我们可以指定发文内容的链接地址,也就是自定义发文内容的链接地址,具体方法为在发表时指定slug地址,具体如下:如果......
  • VMware Aria Operations for Logs 8.18 发布,新增功能概览
    VMwareAriaOperationsforLogs8.18-集中式日志管理请访问原文链接:https://sysin.org/blog/vmware-aria-operations-for-logs/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.org集中式日志管理VMwareAriaOperationsforLogs(以前称为vRealizeLogInsight)通......
  • 开篇blogs
    很开心,在2024年10月5日开通了属于自己的blog。我开通个人博客的目的:分享知识与见解、记录自己的成长历程、锻炼写作能力 一、分享知识与见解在日常的学习和生活中,分享我积累的知识和自我独特见解,让自己养成输出的习惯进而倒逼自己保持持续输入,把一些有价值的内容记录下来。无......
  • cnBlogs的自定义样式
    存个备份.navbara:link,.navbara:active,.navbara:visited{color:#666;text-decoration:none}.navbara:hover{color:#666;text-decoration:underline}.navbar>nav.navbar-avatar{border-radius:50%}.post-item.avatar{......
  • cnblogs内容同步到51cto上的说明(声明)
    51CTO网站上的blog地址为:https://blog.51cto.com/u_15642578该地址是个人在博客园cnblogs上的同步账号(https://cnblogs.com/xyz),在cnblogs上发表的内容会不定期的在经过51CTO审核通过后同步到该51CTO地址下。之所以将cnblogs上的文章同步到51CTO网站上,其原因有两个:希望自己的......
  • 数据库离程序员有多远 - cnblogs救园行动感想
    这两周,我参与了博客园的“2024救园行动”,成了终身会员。说实话,当初报名的时候,我心里还挺兴奋的,想着这下能和不少老朋友在这个社区里再次相聚。毕竟,在数据库行业摸爬滚打了这么多年,自认为也认识不少圈内人士,更不用说程序员群体了。可结果却有点出乎意料。当我翻看那500位终身会员的......
  • GetDeltaSeconds平滑移动避免帧率影响
    使用GetWorld()->GetDeltaSeconds()可以让游戏逻辑与帧率无关,因为它能够动态调整每一帧的计算结果,使其与帧时间成比例。具体来说,DeltaSeconds表示当前帧与上一帧之间经过的时间(以秒为单位),使用它可以让游戏逻辑根据每帧的时间变化而调整,从而保证在不同帧率下效果一致。以下是......
  • ELK中日志数据采集器Filebeat的安装和使用、Filebeat结合Logstash进行日志处理入Elast
    一、ELK中日志数据采集器Filebeat的安装和使用    Beats是数据采集的得力工具,Beats能够将数据转发至Logstash进行转换和解析。Filebeat是Beats中的一种,Filebeat是本地文件的日志数据采集器,可监控日志目录或特定日志文件(tailfile),并将它们转发给Elasticsearch或Logstats......