mysql运维-二进制日志BINARY LOG清理
1.1 方法1:PURGE MASTER LOGS
语法:
- PURGE { BINARY | MASTER } LOGS
- { TO 'log_name' | BEFORE datetime_expr }
用于删除列于在指定的日志或日期之前的日志索引中的所有二进制日志。这些日志也会从记录在日志索引文件中的清单中被删除,这样被给定的日志成为第一个。
实例:
- PURGE BINARY LOGS TO 'mysql-bin.000002';
- PURGE BINARY LOGS BEFORE '2014-04-28 23:59:59';
分别表示:删除mysql-bin.000002之前的日志(不包括mysql-bin.000002)
删除2014-04-28 23:59:59时间点之前的日志
具体演示:删除某个时间点之前的日志
具体演示:删除某个日志之前的日志
注意事项:
在删除binlog日志同时,也会清理MySQL-bin.index的文件记录,清理完后命令中指定的日志文件成为第一个。
主从架构下,如果复制正在进行中,执行该命令是安全的,例如slave正在读取我们要删除的log,该语句将什么也不会做,并返回一个错误;如果复制是停止的,我们删除了一个slave还未读取的日志,则复制重新建立连接时将会失败。
建议操作步骤:
a 在每个从属服务器上,使用SHOW SLAVE STATUS来检查它正在读取哪个日志。
b 使用SHOW MASTER LOGS获得主服务器上的一系列日志。
c 在所有的从属服务器中判定最早的日志。这个是目标日志。如果所有的从属服务器是最新的,这是清单上的最后一个日志。
d 备份您将要删除的所有日志。(这个步骤是自选的,但是建议采用。)
e 清理除目标日志之外的所有日志。
1.2 方法2:手动删除binlog日志文件
1.2.1 查看日志文件:
1.2.2 删除文件mysql-bin.000009
- [root@localhost data]# rm -f mysql-bin.000009
1.2.3 编辑mysql-bin.index
删除掉一行./mysql-bin.000009
1.3 方法3:指定过期天数(expire_logs_days)
该参数为全局可动态调整参数,默认值为0,即关闭,取值范围0-99。
1.3.1 参数的查看:
- mysql> show variables like 'expire_logs_days';
- +------------------+-------+
- | Variable_name | Value |
- +------------------+-------+
- | expire_logs_days | 0 |
- +------------------+-------+
1.3.2 参数调整:
例如我们设置过期为60天
设置完后红色标注的3个binlog日志将会被删除。
设置参数:
- mysql> set global expire_logs_days = 60;
- Query OK, 0 rows affected (0.05 sec)
- mysql> show variables like 'expire_logs_days';
- +------------------+-------+
- | Variable_name | Value |
- +------------------+-------+
- | expire_logs_days | 60 |
- +------------------+-------+
刷新日志查看,上述三个日志被清除掉了。
/******************************************************************************/
my.cnf 配置文件中的参数 expire_logs_days 默认值为0,表示“不要自动删除”
启动时和二进制日志循环时可能删除
语法:mysql -u -p进去之后 执行:
set GLOBAL expire_logs_days=5;
但是设置了 不会马上生效
需要执行:
1.执行 flush logs;
(关闭当前的二进制日志文件并创建一个新文件,新的二进制日志文件的名字在当前的二进制文件的编号上加1。)
2.或者等待当前的日志文件写满设定的大小(重启服务器可选)
expire_logs_days=5 --表示自动删除5天以前的日志
/******************************************************************************/
- mysql> flush logs;
- Query OK, 0 rows affected (0.07 sec)
- mysql> show master logs;
- +------------------+-----------+
- | Log_name | File_size |
- +------------------+-----------+
- | mysql-bin.000013 | 4097 |
- | mysql-bin.000014 | 54431 |
- | mysql-bin.000015 | 729 |
- | mysql-bin.000016 | 107 |
- +------------------+-----------+
1.3.3 注意事项
在双机复制环境下,应确保过期天数不应小于从机追赶主机binlog日志的时间。
1.3.4 触发过期删除的条件
每次进行 LOG flush的时候会自动删除过期的日志。
触发log flush的条件为:
1. 重启mysql;
2. BINLOG文件大小达到参数max_binlog_size限制;
3. 手工执行命令。
1.4 方法4:重置binlog(reset master)
语法:
- RESET MASTER;
解释:
该方法可以删除列于索引文件中的所有二进制日志,把二进制日志索引文件重新设置为空,并创建一个以.000001为后缀新的二进制日志文件。
该语法一般只用在主从环境下初次建立复制时。
在主从复制进行过程中,该语句是无效的。
主从环境下的配置步骤:
a. 启动master和slave,开启replication(即复制)
b. 在master上运行一些测试的语句,看数据是否能够复制到 slave上面
c. 当复制运行正常的话,就在从上stop slave 然后执行 reset slave,去掉不需要的数据
d. 在master上面执行reset master 清除测试产生的数据
2 使用到的命令列表
- show master logs;
- PURGE BINARY LOGS TO 'mysql-bin.000001';
- PURGE BINARY LOGS BEFORE '2014-04-28 23:59:59';
- show variables like 'expire_logs_days';
- set global expire_logs_days = 60;
- flush logs;
- RESET MASTER;
****************************************************************************************
原文地址:http://blog.csdn.net/jesseyoung/article/details/40979129
博客主页:http://blog.csdn.net/jesseyoung
****************************************************************************************
mysql运维-二进制日志BINARY LOG清理的更多相关文章
- 二进制日志BINARY LOG清理
mysql> show master logs; +------------------+-----------+ | Log_name | File_size | +------------- ...
- MySQL 二进制日志(Binary Log)
同大多数关系型数据库一样,日志文件是MySQL数据库的重要组成部分. MySQL有几种不同的日志文件.通常包括错误日志文件,二进制日志,通用日志,慢查询日志,等等.这些日志能够帮助我们定位mysqld ...
- mysql 二进制日志binary log操作简单命令
show master status \G; #查看当前正在记录的二进制日志 show binary logs; #查看binary log 所有文件列表 show binlog events; #查 ...
- mysql运维必会的一些知识点整理
(1)基础笔试命令考察 1.开启MySQL服务 /etc/init.d/mysqld start service mysqld start systemctl start mysqld 2.检测端口是 ...
- mysql运维必会的一些知识点整理(转自民工哥)
(1)基础笔试命令考察 1.开启MySQL服务 /etc/init.d/mysqld start service mysqld start systemctl start mysqld 2.检测端口是 ...
- mysql运维
反反复复装了好多次的mysql,上学的时候从来没有考虑过稳定性,装起来,能跑通,增删改查没有问题万事大吉.参与工作后参与平台搭建和维护,平台的稳定性是首先必须要考虑的问题,之前装mysql使用经历了密 ...
- 转:三思!大规模MySQL运维陷阱之基于MyCat的伪分布式架构
在微信公众号看到一篇关于mycat的文章,觉得分析的很不错,给大家分享一下 三思!大规模MySQL运维陷阱之基于MyCat的伪分布式架构 原文链接:https://mp.weixin.qq.com/s ...
- 搭建稳固的MySQL运维体系
MySQL 监控要点 MySQL 监控要点,主要涉及服务器和 MySQL 两个方向的监控告警. 在这两个监控告警方向需要重点关注监控策略.监控趋势图及报警方式. 监控策略指的是每个监控项的告警阈值,例 ...
- 公司没有 DBA,Mysql 运维自己来
如果你的公司有 DBA,那么我恭喜你,你可以无视 Mysql 运维.如果你的公司没有 DBA,那你就好好学两手 Mysql 基本运维操作,行走江湖,防身必备. 环境:CentOS7 版本: 一.虚拟机 ...
随机推荐
- 切换本地凭据(Windows上登录的GitHub账号)
切换本地用户,可以向微软小娜搜索Windows凭据,这个步骤可以参考这篇博客 的说明.
- 032 Longest Valid Parentheses 最长有效括号
给一个只包含 '(' 和 ')' 的字符串,找出最长的有效(正确关闭)括号子串的长度.对于 "(()",最长有效括号子串为 "()" ,它的长度是 2.另一个例 ...
- vbox 挂载共享文件时可能出现的问题以及对应的解决办法
VMBox挂载共享文件时可能出现的问题以及对应的解决办法 如果出现“未能加载虚拟光盘***.iso 到虚拟电脑的错误” : 左边一栏,右键光盘,eject,再安装
- Kotlin基础知识
1. 改进点/基础 //安全判空 val length = text?.length; //类型转换 if (object is Car) { var car = object as Ca } //操 ...
- USB转串口连接线与串口调试助手的使用
---作者吴疆,未经允许,严禁转载,违权必究--- ---欢迎指正,需要源码和文件可站内私信联系--- -----------点击此处链接至博客园原文----------- 功能说明:宇泰UT-890 ...
- SpringBoot | 第十五章:基于Postman的RESTful接口测试
前言 从上一章节开始,接下来的几个章节会讲解一些开发过程中配套工具的使用.俗话说的好,工欲善其事,必先利其器.对于开发人员而言,有个好用的工具,也是一件事半功倍的事,而且开发起来也很爽,效率也会提升很 ...
- PHPGGC学习----实践
本文首发于先知:https://xz.aliyun.com/t/5450 PHPGGC学习----理论部分对PHPGGC工具的使用方法有了一个基本的了解,接下来需要利用实践环境进行一个实践操作,巩固一 ...
- 50道CSS基础面试题(附答案)
1 介绍一下标准的CSS的盒子模型?与低版本IE的盒子模型有什么不同的? 标准盒子模型:宽度=内容的宽度(content)+ border + padding + margin低版本IE盒子模型:宽度 ...
- 异步加载js的3种方式
默认情况javascript是同步加载的,也就是javascript的加载时阻塞的,后面的元素要等待javascript加载完毕后才能进行再加载,对于一些意义不是很大的javascript,如果放在页 ...
- Qt安装教程
一.Qt下载 官网下载链接http://download.qt.io/archive/qt/,下载最新版 5.10 官网的下载网站有的时候可能会抽风,也可以选择国内的镜像下载源http://mirro ...