#!/bin/sh
mysql -ureplication -p123456 -h 127.0.0.1 -P3301 -e 'PURGE MASTER LOGS BEFORE DATE_SUB( NOW( ),INTERVAL 5 DAY)';
mysql -ureplication -p123456 -h 127.0.0.1 -P3302 -e 'PURGE MASTER LOGS BEFORE DATE_SUB( NOW( ),INTERVAL 5 DAY)';
exit
===================
在Mysql中,如果启用mysql-bin日志记录,则Mysql的变更修改都会被记录到日志文件中:
mysql> show global variables like ‘%bin%’;
+———————————+———————-+
| Variable_name | Value |
+———————————+———————-+
| binlog_cache_size | 32768 |
| innodb_locks_unsafe_for_binlog | OFF |
| log_bin | ON |
| log_bin_trust_function_creators | OFF |
| max_binlog_cache_size | 18446744073709547520 |
| max_binlog_size | 104857600 |
| sync_binlog | 0 |
+———————————+———————-+
7 rows in set (0.00 sec)
如果使用了配置文件,则可以修改 /etc/my.cnf 把里面的log-bin这一行注释掉,重启mysql服务即可关闭bin日志的记录。
一个客户的数据库,积累了大量的bin日志:
mysql> show binary logs;
+——————+———–+
| Log_name | File_size |
+——————+———–+
| mysql-bin.000064 | 3175623 |
| mysql-bin.000065 | 104857696 |
| mysql-bin.000066 | 30124812 |
| mysql-bin.000067 | 104857882 |
+——————+———–+
240 rows in set (0.00 sec)
如果没有主从复制,可以通过reset master的方式,重置数据库日志,清除之前的日志文件:
mysql> reset master;
Query OK, 0 rows affected (8.51 sec)
但是如果存在复制关系,应当通过PURGE的方式来清理bin日志:
语法如下:
PURGE {MASTER | BINARY} LOGS TO ‘log_name’
PURGE {MASTER | BINARY} LOGS BEFORE ‘date’
用于删除列于在指定的日志或日期之前的日志索引中的所有二进制日志。这些日志也会从记录在日志索引文件中的清单中被删除,这样被给定的日志成为第一个。
例如:
PURGE MASTER LOGS TO ‘mysql-bin.010′;
PURGE MASTER LOGS BEFORE ’2008-06-23 15:00:00′;
清除3天前的 binlog
PURGE MASTER LOGS BEFORE DATE_SUB( NOW( ), INTERVAL 3 DAY);
BEFORE变量的date自变量可以为’YYYY-MM-DD hh:mm:ss’格式。MASTER和BINARY是同义词。
如果您有一个活性的从属服务器,该服务器当前正在读取您正在试图删除的日志之一,则本语句不会起作用,而是会失败,并伴随一个错误。不过,如果从属服务器是休止的,并且您碰巧清理了其想要读取的日志之一,则从属服务器启动后不能复制。当从属服务器正在复制时,本语句可以安全运行。您不需要停止它们。
要清理日志,需按照以下步骤:
1. 在每个从属服务器上,使用SHOW SLAVE STATUS来检查它正在读取哪个日志。
2. 使用SHOW MASTER LOGS获得主服务器上的一系列日志。
3. 在所有的从属服务器中判定最早的日志。这个是目标日志。如果所有的从属服务器是更新的,这是清单上的最后一个日志。
4. 制作您将要删除的所有日志的备份。(这个步骤是自选的,但是建议采用。)
5. 清理所有的日志,但是不包括目标日志,因为从服务器还要跟它同步
常用的命令:
mysql>show slave hosts — 查看所有连接到Master的Slave信息
mysql>show master status — 查看Master状态信息
mysql>show slave status — 查看Slave状态信息
mysql>show binary logs — 查看所有二进制日志
mysql>show binlog events [IN log_file] — 查看二进制日志中的事件
分享到:
相关推荐
MySQL bin-log 日志清理方式 MySQL bin-log 日志清理方式
mysql安装包 ,bin文件 sh一键安装 快速方便。。。。
五款常用mysql slow log分析工具分析比较
开启mysql-binlog操作 binlog日志用于记录所有更新了数据或者已经潜在更新了数据的所有语句。语句以“事件”的形式保存,它描述数据更改。当我们因为某种原因导致数据库出现故障时,就可以利用binlog日志来挽回...
mysql 和 log4j 1.2.17 jar的驱动包
在本篇文章里小编给大家分享的是一篇关于清理Mysql general_log的相关知识点,需要的朋友们学习下。
MySQL记录日志查询对于跟踪PHP MySQL体系下的MySQL负载调优问题...log="c:/mysql_query.log" 重启mysql就可以将数据库所有操作记录下来,为了方便分析,提供一个简单快速的查看器。 打开文件设置执行目录与地址即可
window下每天定时导出mysql数据库的bat脚本window下每天定时导出mysql数据库的bat脚本window下每天定时导出mysql数据库的bat脚本
log4net mysql 加密 log4net调试日志
主要介绍了mysql中mysql-bin.000001是什么文件可以删除吗,需要的朋友可以参考下
mysql打开bin-log日志后,mysql数据库的非查询操作会将记录保存到bin-log文件中。一般bin-log日志文件不能打开查看的,需要用到mysql的工具进行。假设/mysql/data/目录中存放着二进制文件mysql-bin.000011。需要将...
工具查询MYSQL5 LOG 分析工具-mysql-log-analysis.zip
可根据需求 配置 每天、每周、每月、 定时备份mysql数据库。
可以使用mysqlbin命令查看二进制日志的内容。 binlog 的作用 用于数据库的主从复制及数据的增量恢复。 MySQL binlog格式 binlog的格式也有三种:STATEMENT、ROW、MIXED 。 1、STATMENT模式:基于SQL语句的复制...
开发工具 mysql-connector-java-5.1.40-bin开发工具 mysql-connector-java-5.1.40-bin开发工具 mysql-connector-java-5.1.40-bin开发工具 mysql-connector-java-5.1.40-bin开发工具 mysql-connector-java-5.1.40-bin...
代码如下:ERROR 1418 (HY000): This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled (you *might* want to use the less safe log_bin_trust_...
多线程文件加锁自动定时查询mysql统计数据 多线程文件加锁自动定时查询mysql统计数据
定时备份mysql, 定时切割nginx access log的方法,需要的朋友可以参考下。
Java版mysql log,Mysql数据库执行监控软件,显示SQL语句查询过程。 不错的调试工具,會记录全部SQL查询。
linux环境下mysql存储过程开启定时任务,bing log.rar