Mysql binlog日志文件过大的解决


Posted in MySQL onOctober 05, 2021

磁盘突然报错使用率过大,排查原因,发现mysql的binlog文件占用过大

命令

ls -l -h

Mysql binlog日志文件过大的解决

mysql-binlog是MySQL数据库的二进制日志,用于记录用户对数据库操作的SQL语句((除了数据查询语句)信息。可以使用mysqlbin命令查看二进制日志的内容。

可以通过设置my.cof配置文件的方式限制binlog文件的输出。

1、相关binlog配置

vim /etc/my.cof

[mysqld]
expire_logs_days = 3
#设置binlog清理时间

max_binlog_size = 100m
#binlog每个日志文件大小

binlog_cache_size = 4m
#binlog缓存大小

max_binlog_cache_size = 512m
#最大binlog缓存大小

重启mysql,看到只保留了前三天的日志

Mysql binlog日志文件过大的解决

2、binlog相关高级设置

2.1 改变binlog模式

binlog的模式也有三种:STATEMENT、ROW、MIXED 。下面对这三种格式分别加以说明:

STATMENT模式

基于SQL语句的复制(statement-based replication, SBR),每一条会修改数据的sql语句会记录到binlog中。

优点:不需要记录每一条SQL语句与每行的数据变化,这样子binlog的日志也会比较少,减少了磁盘IO,提高性能。

缺点:在某些情况下会导致master-slave中的数据不一致(如sleep()函数, last_insert_id(),以及user-defined functions(udf)等会出现问题)

ROW模式

不记录每一条SQL语句的上下文信息,仅需记录哪条数据被修改了,修改成了什么样子了。

优点:不会出现某些特定情况下的存储过程、或function、或trigger的调用和触发无法被正确复制的问题。

缺点:会产生大量的日志,尤其是alter table的时候会让日志暴涨。

MIXED模式

混合模式复制(mixed-based replication, MBR):以上两种模式的混合使用,一般的复制使用STATEMENT模式保存binlog,对于STATEMENT模式无法复制的操作使用ROW模式保存binlog,MySQL会根据执行的SQL语句选择日志保存方式。
修改配置文件

[mysqld]
binlog_format = mixed
#设置日志格式

2.2 相关SQL操作binlog

show binary logs;                            
# 查看binlog现有详情

show variables like '%log%';            
# 查看log变量的相关配置

set global expire_logs_days = 3;    
# 设置binlog的保存时间

reset master;                                 
# 重置所有的binlog,相当于删除所有的binlog,这个操作对主从集群影响非常大,因为主从赋值是基于binlog日志来实现的

PURGE {MASTER | BINARY} LOGS TO 'log_name'
PURGE {MASTER | BINARY} LOGS BEFORE 'date'
# 删除指定的日志或日期之前的日志索引中的所有二进制日志。MASTER和BINARY是同义词

PURGE MASTER LOGS TO 'binlog.000013'; 
#清除binlog.000013日志

PURGE MASTER LOGS BEFORE '2020-01-08 10:00:00';  
#清除2020-01-08 10:00:00前binlog日志

PURGE MASTER LOGS BEFORE DATE_SUB( NOW( ), INTERVAL 3 DAY); 
# 清除3天前binlog日志BEFORE,变量的date自变量可以为'YYYY-MM-DD hh:mm:ss'格式。

到此这篇关于Mysql binlog日志文件过大的解决的文章就介绍到这了,更多相关Mysql binlog日志过大内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

MySQL 相关文章推荐
MySQL 使用SQL语句修改表名的实现
Apr 07 MySQL
MySql新手入门的基本操作汇总
May 13 MySQL
详解MySQL数据库千万级数据查询和存储
May 18 MySQL
修改MySQL的数据库引擎为INNODB的方法
May 26 MySQL
详解MySQL中的主键与事务
May 27 MySQL
浅谈mysql增加索引不生效的几种情况
Jun 23 MySQL
MySQL Shell import_table数据导入的实现
Aug 07 MySQL
基于MySql验证的vsftpd虚拟用户
Nov 07 MySQL
MySQL数据库事务的四大特性
Apr 20 MySQL
mysql拆分字符串作为查询条件的示例代码
Jul 07 MySQL
MySQL控制流函数(-if ,elseif,else,case...when)
Jul 07 MySQL
Mysql如何查看是否使用到索引
Dec 24 MySQL
MySQL修炼之联结与集合浅析
MySQL分库分表详情
MySQL空间数据存储及函数
Sep 25 #MySQL
MySQL基础快速入门知识总结(附思维导图)
MySQL连接控制插件介绍
Sep 25 #MySQL
Mysql案例刨析事务隔离级别
Sep 25 #MySQL
MySQL定时备份数据库(全库备份)的实现
Sep 25 #MySQL
You might like
php在页面中调用fckeditor编辑器的方法
2011/06/10 PHP
php安装xdebug/php安装pear/phpunit详解步骤(图)
2013/12/22 PHP
基于thinkPHP类的插入数据库操作功能示例
2017/01/06 PHP
解决表单中第一个非隐藏的元素获得焦点的一个方案
2009/10/26 Javascript
一段批量给页面上的控件赋值js
2010/06/19 Javascript
探讨JQUERY JSON的反序列化类 using问题的解决方法
2013/12/19 Javascript
让人蛋疼的JavaScript语法特性
2014/09/30 Javascript
表单验证插件Validation应用的实例讲解
2015/10/10 Javascript
angularjs在ng-repeat中使用ng-model遇到的问题
2016/01/21 Javascript
JS跨域解决方案之使用CORS实现跨域
2016/04/14 Javascript
NodeJS中的MongoDB快速入门详细教程
2016/11/11 NodeJs
Nodejs多站点切换Htpps协议详解及简单实例
2017/02/23 NodeJs
原生js实现旋转木马轮播图效果
2017/02/27 Javascript
Vue中的异步组件函数实现代码
2018/07/20 Javascript
微信小程序使用scroll-view标签实现自动滑动到底部功能的实例代码
2018/11/09 Javascript
[06:33]DOTA2亚洲邀请赛小组赛第二日 TOP10精彩集锦
2015/01/31 DOTA
python的keyword模块用法实例分析
2015/06/30 Python
python数据结构之图的实现方法
2015/07/08 Python
同时安装Python2 & Python3 cmd下版本自由选择的方法
2017/12/09 Python
python 实现将字典dict、列表list中的中文正常显示方法
2018/07/06 Python
只需7行Python代码玩转微信自动聊天
2019/01/27 Python
python numpy实现文件存取的示例代码
2019/05/26 Python
python如何解析配置文件并应用到项目中
2019/06/27 Python
详解PANDAS 数据合并与重塑(join/merge篇)
2019/07/09 Python
如何基于Python实现自动扫雷
2020/01/06 Python
Python3 获取文件属性的方式(时间、大小等)
2020/03/12 Python
python实现按键精灵找色点击功能教程,使用pywin32和Pillow库
2020/06/04 Python
CSS3 开发工具收集
2010/04/17 HTML / CSS
介绍一下gcc特性
2012/01/20 面试题
外贸实习生自荐信范文
2013/11/24 职场文书
家长对小学生的评语
2014/01/28 职场文书
《和田的维吾尔》教学反思
2014/04/14 职场文书
意外伤害赔偿协议书
2014/09/16 职场文书
工作业绩不及格检讨书
2014/10/28 职场文书
Django+Celery实现定时任务的示例
2021/06/23 Python
抖音动画片,皮皮虾,《治愈系》动画在用这首REMIX作为背景音乐,Anak ,The last world with you完整版
2022/03/16 杂记