问题:

Mysql数据库由于业务原因,数据量增长迅速,binlog日志会增加较多,占用大部分磁盘空间。

解决方案:

出于节约空间考虑,可进行删除多余binary日志,并设置定期删除操作。

1、查看binlog过期时间

mysql> show variables like ‘expire_logs_days‘; 或者

mysql> select @@global.expire_logs_days;

+------------------+-------+

| Variable_name | Value |

+------------------+-------+

| expire_logs_days | 0 |

+------------------+-------+

1 row in set (0.00 sec)

expire_logs_days=0:表示所有binlog日志永久都不会失效,不会自动删除;

目前需求,只想保留七天日志,其余日志打包、压缩后备份至其他地方:

修改方式:

永久生效(重启后即生效):

修改配置文件my.ini(window系统环境下,若为Linux环境,则修改my.cnf文件)文件:

在[mysqld]标签内增加如下内容

expire_logs_days=7

max_binlog_size=500M

设置之后不会立即清除,触发条件是:

binlog大小超过max_binlog_size

手动执行flush logs

重新启动时(MySQL将会new一个新文件用于记录binlog)

为了使之生效,需要执行flush logs。

mysql> flush logs;

Query OK, 0 rows affected, 64 warnings (0.16 sec

如果binlog非常多,不要轻易设置该参数,有可能导致io争用,这时候可以使用purge命令予以清除:

将bin.000055之前的binlog清掉:

mysql>purge binary logs to ‘bin.000055‘;

将指定时间之前的binlog清掉:

mysql>purge binary logs before ‘2019-09-13 23:59:59‘;

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

二、调整binlog日志模式

## 查看binlog日志模式

mysql> show variables like "%binlog_format%";

方法一:在线修改立即生效

mysql> set global binlog_format=‘MIXED‘;

Query OK, 0 rows affected (0.00 sec)

方法二:在配置文件中参数如下:

[mysqld]

log-bin=/var/lib/mysql/mysql-bin

#binlog_format="ROW"

binlog_format="MIXED" #开启MIXED模式

#binlog_format="STATEMENT"

修改后重启mysql服务。

原文:https://www.cnblogs.com/jimoliunian/p/13896409.html

mysql bin的过期时间_Mysql设置binlog过期时间并自动删除相关推荐

  1. mysql配置日志老化配置_mysql配置-日志大小限制和自动删除

    线上的项目磁盘消耗问题, 发现和MySQL日志有关系. 需要处理的问题 如何限制大小 不让日志无限膨胀? 配置日志不留? 删除的方式和直接删除会对服务有什么影响? 解决方式 限制大小, 保留最近一段时 ...

  2. mysql8 设置binlog过期时间

    mysql8 设置binlog过期时间 mysql8中 使用binlog_expire_logs_seconds 设置日志过期时间,废弃参数:expire_logs_days mysql> sh ...

  3. Mysql设置binlog过期时间并自动删除

    问题: Mysql数据库由于业务原因,数据量增长迅速,binlog日志会增加较多,占用大部分磁盘空间.解决方案: 出于节约空间考虑,可进行删除多余binary日志,并设置定期删除操作.1.查看binl ...

  4. mysql 8 expire_logs_days 废弃 启用binlog_expire_logs_seconds设置binlog自动清除日志时间 阿里云RDS暂时不支持

    查看binlog日志相关配置信息 -- 查看binlog日志 show binary logs; -- mysql系统配置中查找 时效 相关配置  show variables like '%expi ...

  5. mysql bin值总是变化_MySQL|update字段为相同的值是否会记录binlog

    一 前言 前几天一个开发同事咨询我,update 更新字段为相同的值是否会记录binlog,我回复说不会. 其实 严格的说这个答案是不准确的,说要区分场景.是否记录 update 语句到binlog依 ...

  6. mysql查binlog删除时间_mysql的binlog日志删除查询

    最近发现mysql的binlog日志一直在被删除中...导致从机出错后没法排查问题. 查阅资料后,发现配置文件的expire_logs_days的参数是保存binlog日志的时间参数.mysql> ...

  7. mysql通过日志恢复数据_mysql通过binlog日志来恢复数据

    简介 在生产的过程中有这么一个业务场景:比如我在2016-11-19 09:30:00 通过mysqldump的方式备份了数据库,但是在2016-11-19 10:30:00的时候数据库崩溃了,如果通 ...

  8. mysql 3种报错_MySQL读取Binlog日志常见的3种错误-阿里云开发者社区

    MySQL读取Binlog日志常见的3种错误 mysqlbinlog: [ERROR] unknown variable 'default-character-set=utf8mb4' 当我们在my. ...

  9. java设置过期时间_java设置session过期时间的实现方法

    本文实例讲述了java设置session过期时间的实现方法,分享给大家供大家参考.具体实现方法如下: 1.Timeout in the deployment descriptor (web.xml) ...

最新文章

  1. Vue的表单组件之单选按钮
  2. MySQL高级最左前缀法则
  3. MyBatis 插件原理与自定义插件-应用场景分析
  4. python装饰器详细剖析
  5. swiper踩过的哪些坑
  6. 文本分类--普通分类
  7. virtualbox手动挂载共享文件夹
  8. django之get filter
  9. Python学习【第2篇】:基本数据类型(详解)
  10. 初识Quartz之CronTrigger
  11. docker---docker save
  12. age estimation阅读整理(一)
  13. SQL SERVER数据库备份与复制(4):让SQL SERVER自动备份方法一
  14. 电话呼叫转移的设置方法大全
  15. 创建一键部署的前后端(SpringBoot+Vue+nginx)项目镜像
  16. Wireshark 4.0.0RC1 版本前瞻
  17. ARP表是在交换机上还是在路由器上?
  18. shell脚本进入某个目录返回当前目录写法
  19. 制作一个简单HTML游戏网页(HTML+CSS)米哈游 1页 带轮播图
  20. 开启6轴机器人正逆解算法之旅

热门文章

  1. 短 URL 服务,怎么设计与实现?
  2. Spring Cloud Gateway 入门
  3. 不敢相信,相同 SQL 下 Mybatis 查询结果和数据库竟然不一样!
  4. 2020 最新 JVM 生态报告
  5. 配置访问oracle_SpringBoot中application.properties的常用配置
  6. ionic4中的手势事件
  7. log_sum_exp
  8. Visual Studio 调试(Dubug)模式下的“未定义标识符”
  9. 三元组损失 Triplet Loss及其梯度
  10. 使用PyTorch从零开始实现YOLO-V3目标检测算法 (一)