问题:
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服务。

Mysql设置binlog过期时间并自动删除的更多相关文章

  1. php中实现精确设置session过期时间的方法

    http://www.jb51.net/article/52309.htm 大多数据情况下我们对于session过期时间使用的是默认设置的时间,而对于一些有特殊要求的情况下我们可以设置一下sessio ...

  2. 转:php中实现精确设置session过期时间的方法

    原文来自于:http://www.jb51.net/article/52309.htm 大多数据情况下我们对于session过期时间使用的是默认设置的时间,而对于一些有特殊要求的情况下我们可以设置一下 ...

  3. 在Redis中设置了过期时间的Key,需要注意哪些问题?

    熟悉Redis的同学应该知道,Redis的每个Key都可以设置一个过期时间,当达到过期时间的时候,这个key就会被自动删除. 在为key设置过期时间需要注意的事项 1. DEL/SET/GETSET等 ...

  4. asp.net web.config 设置Session过期时间

    在Asp.net中,可以有四处设置Session的过期时间:(原文作者:望月狼地址:http://www.cnblogs.com/wangyuelang0526/) 一.全局网站(即服务器)级 IIS ...

  5. Asp.NET设置Session过期时间的四种方式

    在Asp.net中,可以有四处设置Session的过期时间: 一.全局网站(即服务器)级 IIS-网站-属性-Asp.net-编辑配置-状态管理-会话超时(分钟)-设置为120,即为2小时,即120分 ...

  6. 如何设置session过期时间为30分钟

    今天在我的微博(Laruence)上发出一个问题: 我在面试的时候, 经常会问一个问题: “如何设置一个30分钟过期的Session?”, 大家不要觉得看似简单, 这里面包含的知识挺多, 特别适合考察 ...

  7. 转:设置session过期时间

    在Asp.net应用中,很多人会遇到Session过期设置有冲突.其中,可以有四处设置Session的过期时间: 一.全局网站(即服务器)级 IIS-网站-属性-Asp.net-编辑配置-状态管理-会 ...

  8. 采用Asp.Net的Forms身份验证时,非持久Cookie的过期时间会自动扩展

    问题描述 之前没有使用Forms身份验证时,如果在登陆过程中把HttpOnly的Cookie过期时间设为半个小时,总会收到很多用户的抱怨,说登陆一会就过期了. 所以总是会把Cookie过期时间设的长一 ...

  9. spring boot整合redis,以及设置缓存过期时间

    spring-boot 整合 redis 注:redis服务器要先开启 pom文件: <dependency> <groupId>org.springframework.boo ...

随机推荐

  1. Python使用数字与字符串的技巧

    1.少写数字字面量 "数字字面量(integer literal)" 是指那些直接出现在代码里的数字.它们分布在代码里的各个角落,比如代码 del users[0] 里的 0 就是 ...

  2. SQLserver创建用户和给用户权限(学)

    数据库基础知识:http://blog.csdn.net/u014600432/article/details/39645701 在SQL Server中创建用户角色及授权(使用SQL语句):http ...

  3. Qt Creator单步调试快捷键F10经常失灵问题

    使用Qt Creator调试程序的时候经常会遇到F10单步调试快捷键不响应的问题. 打开调试菜单如下:有两个快捷键为F10的调试菜单项,于是快捷键冲突了! 解决办法:废话不说,直接上图 由于Start ...

  4. mac安装linux

    http://www.mamicode.com/info-detail-503881.html

  5. docker系列(三):docker容器

    1 引言 在前面博文中,我们介绍了镜像.如果说镜像犹如面向对象中的类,本节要说的容器就是由类实例化出来的对象了,有了类才可以创建容器. 先从拉取一个官方提供的ubuntu最新镜像: $ docker ...

  6. python的几个实例程序员节日快乐

    python的几个小实例 有参函数 def login(username, password): name = input("请输入您的姓名").strip() pwd = inp ...

  7. go构建脚本ansible分发时出现的问题总结“non-zero return code”

    背景介绍: 在Jenkins服务器配置go项目发布脚本,编译完成后,使用ansible分发到部署服务器上,然后将启动项目脚本start_coachcore.sh发布到目标服务器上,执行启动,目标服务器 ...

  8. SRDC - ORA-1555 during Export: Checklist of Evidence to Supply (Doc ID 1682706.1)

    SRDC - ORA-1555 during Export: Checklist of Evidence to Supply (Doc ID 1682706.1) Action Plan 1. Exe ...

  9. python 连接数据库,查询结果写入数据到excel

    使用Python链接数据库查询数据,并将查询结果写入到Excel中,实现方法上主要有两步,第一,查数据,第二,写Excel. 一.导入需要的包 import time import xlwt from ...

  10. 【HDU1814】Peaceful Commission(2-sat+暴力染色)

    传送门 \(2-sat\)的模板题,首先得出题目中的二元关系为:对于有矛盾的\(x_i,x_j\),至多选择一个,那么连边\(x_i\rightarrow x_j',x_j\rightarrow x_ ...