我的编程空间,编程开发者的网络收藏夹
学习永远不晚

mysql8新特性之binlog_expire_logs_seconds浅析

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

mysql8新特性之binlog_expire_logs_seconds浅析

在mysql 8.0版本中新增了binlog_expire_logs_seconds,该参数表示binlog的失效日期单位秒。

8.0之前的版本,binlog的失效日志用expire_logs_days来配置,单位是天。

当mysql启动时,参数文件中binlog_expire_logs_seconds和expire_logs_days都没配置的时候,mysql会使用binlog_expire_logs_seconds作为默认配置,并且默认值为2592000秒,即30天。

当mysql启动时,参数文件中binlog_expire_logs_seconds和expire_logs_days有一个设置为非0值则非0值的参数作为binlog日志的失效期。

在使用了binlog_expire_logs_seconds作为binlog的配置文件,此时在修改expire_logs_days会抛出错误,不允许同时使用binlog_expire_logs_seconds和expire_logs_days.

该参数支持动态修改,并且支持持久化到配置文件:

mysql> set global  binlog_expire_logs_seconds=604800;</code>
<code>Query OK, 0 rows affected (0.00 sec)</code>
<code>mysql> show variables like '%expire_logs%';</code>
<code>+--------------------------------+-------+</code>
<code>| Variable_name                  | Value |</code>
<code>+--------------------------------+-------+</code>
<code>| binlog_expire_logs_seconds     | 604800|</code>
<code>| expire_logs_days               | 0     |</code>
<code>+--------------------------------+-------+</code>
<code>3 rows in set (0.00 sec)

--持久化:

mysql> set  persist binlog_expire_logs_seconds=604800;</code>
<code>Query OK, 0 rows affected (0.00 sec)

也可以通过修改配置文件,将binlog_expire_logs_seconds=604800 加到[mysqld]下

总结

如果 MySQL 每天的数据修改很少,产生的 binlog 很小,而max_binlog_size设置很大。每次在达到单个 binlog 的最大大小前,执行定时任务调用 xtrabackup 备份,备份时加的备份锁LOCK INSTANCE FOR BACKUPFLUSH NO_WRITE_TO_BINLOG BINARY LOGS会导致:binlog 刷新了,但是无法自动删除过期的 binlog 。新的 binlog 写一天没有达到最大大小,又进行备份,每天循环这个逻辑,导致过期的 binlog 越来越多,一直无法被自动删除。

当然,如果你使用的是 MySQL5.7,那并不会有这个问题,虽然 MySQL5.7 时备份时会加全局锁,但是并不影响过期 binlog 的自动删除。从这个角度看,这是个 bug,所以报给官方后很快被确认了:https://bugs.mysql.com/bug.php?id=104785

等待修复的过程是漫长的,如果你恰好遇见了这个冷门的 bug,可以把 max_binlog_size调小,保证在备份前 binlog 就能够达到最大大小,自然的刷新可以正常触发自动删除。

到此这篇关于mysql8新特性之binlog_expire_logs_seconds的文章就介绍到这了,更多相关mysql8新特性binlog_expire_logs_seconds内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

mysql8新特性之binlog_expire_logs_seconds浅析

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

mysql8新特性之binlog_expire_logs_seconds浅析

MySQL8中新增了不少新特性,这些特性提高了数据库的安全性和性能,使数据库管理员能够更灵活地进行账户管理工作,下面这篇文章主要给大家介绍了关于mysql8新特性之binlog_expire_logs_seconds的相关资料,需要的朋友可以参考下
2023-02-28

mysql8新特性binlog_expire_logs_seconds有什么作用

这篇“mysql8新特性binlog_expire_logs_seconds有什么作用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看
2023-07-05

浅析Spring4新特性概述

Spring 4.1目前已经发布RC1版本,而GA版本预计在14年9月中旬发布;其中有部分内容直接借鉴自Spring Boot,而Spring Boot从目前趋势来看已经是Spring的顶级项目;另外也提供了页面自动化测试框架Spring
2023-05-31

深入浅析Java7中的新特性forkjoin

深入浅析Java7中的新特性forkjoin?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Java7引入了Fork Join的概念,来更好的支持并行运算。顾名思
2023-05-31

MyEclipse 6.5M1特性浅析

MyEclipse 6.5M1是MyEclipse的一个版本,以下是对其特性的浅析:1. 支持JavaEE 6:MyEclipse 6.5M1开始支持JavaEE 6标准,包括EJB 3.1、JPA 2.0、Servlet 3.0等。这意味
2023-09-22

2022最新浅析PHP特性、内核及架构

PHP8的特性?1、jit即时编译器。jit在opcache优化之后的基础上,结合runtime的信息再次优化,直接生成机器码。jit不是opcache优化的代替,是增强。2、match表达式,用于变量的值转换与赋值。3、联合类型。 支持声明并接受多个不同类型的,它是两种或多钟类型的集合。4、static返回类型。PHP 8 中支持 static 返回类型将更加高效。5、弱映射WeakMap。
2022-08-08

Go语言的创新之处:新特性解析

Go语言的创新之处:新特性解析随着互联网技术的不断发展,越来越多的程序员开始关注Go语言,这门由Google开发的静态类型编程语言以其简洁、高效和并发特性备受推崇。Go语言自发布以来不断发展,不断推出新特性以提高开发效率和性能。本文将针对
Go语言的创新之处:新特性解析
2024-03-11

Java_Spring之Spring5 的新特性

这篇文章主要介绍了Java_Spring中Spring5 的新特性,需要利用jdk8 版本更新的内容,依赖库更新,感兴趣的小伙伴可以参考阅读
2023-05-14

MySQL8中隐藏索引与降序索引的新特性

目录一、隐藏索引(Invisible Indexes)1.1. 背景与意义1.2. 工作原理1.3. 使用场景1.4. 操作方法二、降序索引(Descending Indexes)2.1. 背景与意义2.2. 工作原理2.3. 使用场景2.
MySQL8中隐藏索引与降序索引的新特性
2024-08-13

编程热搜

目录