mysql> PURGE MASTER LOGS BEFORE DATE_SUB( NOW( ), INTERVAL 30
DAY);
(清理30天前的二进制日志文件,如果主库在使用30天前的日志文件 会报错的)
修改my.cnf文件
【mysqld】
expire_logs_day=20;
重启数据库
mysql> help purge
Name: 'PURGE BINARY LOGS'
Description:
Syntax:
PURGE { BINARY | MASTER } LOGS
{ TO 'log_name' | BEFORE datetime_expr }
The binary log is a set of files that contain information about data
modifications made by the MySQL server. The log consists of a set of
binary log files, plus an index file (see
http://dev.mysql.com/doc/refman/5.1/en/binary-log.html).
The PURGE BINARY LOGS statement deletes all the binary log files listed
in the log index file prior to the specified log file name or date.
BINARY and MASTER are synonyms. Deleted log files also are removed from
the list recorded in the index file, so that the given log file becomes
the first in the list.
This statement has no effect if the server was not started with the
--log-bin option to enable binary logging.
URL: http://dev.mysql.com/doc/refman/5.1/en/purge-binary-logs.html
Examples:
PURGE BINARY LOGS TO 'mysql-bin.010';
PURGE BINARY LOGS BEFORE '2008-04-02 22:46:26';
1.
查找binlog
mysql> show binary logs;
+---------------+------------+
| Log_name | File_size |
+---------------+------------+
| binlog.000031 | 1078645043 |
| binlog.000032 | 1076374846 |
| binlog.000033 | 1079182704 |
| binlog.000034 | 511795531 |
| binlog.000035 | 125 |
| binlog.000036 | 11942121 |
| binlog.000037 | 125 |
| binlog.000038 | 146 |
| binlog.000039 | 106 |
| binlog.000040 | 64616 |
| binlog.000041 | 125 |
| binlog.000042 | 125 |
| binlog.000043 | 3875 |
| binlog.000044 | 386 |
| binlog.000045 | 125 |
| binlog.000046 | 125 |
| binlog.000047 | 125 |
| binlog.000048 | 2875 |
| binlog.000049 | 2081 |
| binlog.000050 | 125 |
| binlog.000051 | 125 |
| binlog.000052 | 125 |
| binlog.000053 | 62110 |
| binlog.000054 | 788661684 |
| binlog.000055 | 146 |
| binlog.000056 | 106 |
+---------------+------------+
2.
删除
bin-log
mysql> purge binary logs to 'binlog.000033';
Query OK, 0 rows affected (3.54 sec)
3.
查询结果
mysql> show
binlog events\G
mysql> show
binary logs;
1 row in set
(0.00 sec)
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-22
13: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.
清理所有的日志,但是不包括目标日志
分享到:
相关推荐
2. **应用二进制日志**:接下来,使用`mysqlbinlog`工具解析二进制日志文件(例如`gbichot2-bin.000007`和`gbichot2-bin.000008`),并将其中的SQL事件导出为可读文本格式,然后通过管道(`|`)传递给`mysql`客户端...
5. **管理二进制日志**:二进制日志文件会随着时间的推移而增长,因此需要定期清理旧的二进制日志以节省磁盘空间。可以使用`PURGE BINARY LOGS`命令删除不再需要的日志。例如,`PURGE BINARY LOGS BEFORE '2022-01-...
在MySQL数据库中,Binlog(二进制日志)记录了所有更改数据库表结构或者数据的操作,这对于实现基于时间点的数据恢复、主从复制等场景至关重要。然而,随着数据库操作的不断增加,Binlog日志文件也会逐渐增大,占据...
MySQL的binlog(二进制日志)是数据库系统中至关重要的组件,它记录了所有对数据库进行修改的SQL语句,除了数据查询语句。binlog的主要功能在于支持数据库的主从复制和数据的增量恢复,确保数据的高可用性和一致性。...
MySQL的二进制日志(binlog)是数据库系统中至关重要的组件,它记录了所有对MySQL数据库进行的改变操作,包括表结构的修改(如CREATE、ALTER TABLE等)和表数据的更新(INSERT、UPDATE、DELETE等)。binlog不记录...
MySQL中的`mysql-bin.000001`文件是二进制日志文件,它是MySQL数据库系统的重要组成部分。这个文件记录了数据库的所有更改操作,如INSERT、UPDATE、DELETE等,以及DDL(Data Definition Language)语句,如CREATE ...
4. 重置所有binlog日志,可以使用`RESET MASTER`命令,但这是非常危险的操作,因为它会清除所有binlog,并重置服务器的二进制日志文件和文件编号,可能导致无法进行数据恢复。 5. 手动切换binlog日志,当所有binlog...
MySQL二进制日志(binlog)是数据库系统中用于记录所有改变数据库状态的事务操作的重要组件,它在数据恢复、主从复制等方面扮演着关键角色。本文档将对MySQL的binlog进行深入浅出的分析,帮助读者理解其工作原理和...
该命令可以删除指定日志之前的所有二进制日志,并且这些日志也会从日志索引文件中删除。具体来说: - `TO 'log_name'` 表示删除指定日志文件之前的日志文件(不包括指定的日志文件本身)。 - `BEFORE datetime_expr...
MySQL数据库的binlog日志是二进制形式的记录文件,主要用于记录数据库所有的更改操作,包括表结构的修改等。它被广泛用于数据备份、复制、审计以及故障恢复等场景。然而,随着数据库操作的不断增加,binlog文件会...
二进制日志文件(如`.binlog`)需要使用`mysqlbinlog`工具进行解析。通过`show master status`命令可以获取当前二进制日志文件名和位置。使用`mysqlbinlog`可以将二进制日志转换为可读文本格式,或者指定时间范围...
1. **定期清理二进制日志**:为避免二进制日志文件过大,应设置合理的`expire_logs_days`参数。 2. **安全使用GTID**:启用GTID模式后,使用`mysqlbinlog`配合GTID进行恢复更加精确,但需谨慎操作,防止误删除。 3...
二进制日志文件名通常以`binlog.`开头,后跟序列号。启用二进制日志需要在MySQL配置文件中设置`log-bin`选项。 3. 查询日志 (General Query Log) 查询日志记录了服务器接收到的所有SQL语句,包括成功执行的和失败...
然而,随着时间的推移,二进制日志文件可能会占用大量的磁盘空间,因此适时地清理不再需要的旧日志是非常必要的。 在MySQL中,`PURGE`命令用于删除不再使用的二进制日志,以释放存储空间并优化系统性能。以下是几种...
- **2.2.2 通过脚本定时清理**:除了设置自动过期,还可以编写定时任务脚本来定期清理binlog,这在某些不支持`expire_logs_days`或需要更灵活清理策略的旧版本MySQL中是必要的。 3. **Relaylog 日志清理** - **...
每次重启MySQL服务,都会生成新的二进制日志文件和对应的索引文件。 3. 查询日志:通过设置`log`参数,开启查询日志。这会记录所有的客户端请求,包括SELECT语句,这对于追踪和分析用户行为或性能问题非常有用。 4...