来源于:
http://www.livingelsewhere.net/2011/03/25/purge-view-binlog/
删除
PURGE {MASTER | BINARY} LOGS TO 'binlog-name';
删除 binlog-name 编号之前所有的日志.
PURGE {MASTER | BINARY} LOGS BEFORE 'date';
除当前使用日志外, 如果其他日志最后更新时间是小于 date, 则会被删除.
例子
mysql> PURGE MASTER LOGS TO 'mysql-bin.000003';
Query OK, 0 rows affected (0.01 sec)
删除 000003 之前所有的日志(000003 不会被删除).
mysql> PURGE MASTER LOGS BEFORE '2011-03-25 23:59:59';
Query OK, 0 rows affected (0.05 sec)
expire_logs_days
MySQL 可以根據 expire_logs_days 的設置自動清除日誌。該值默認為 0, 即不會自動清除。可能的值為 0-99.
配置文件中設置
[mysqld]
expire_logs_days=1
命令端設置
mysql> SET GLOBAL expire_logs_days=1;
Query OK, 0 rows affected (0.00 sec)
mysql> SHOW VARIABLES LIKE 'expire%';
+------------------+-------+
| Variable_name | Value |
+------------------+-------+
| expire_logs_days | 1 |
+------------------+-------+
1 row in set (0.00 sec)
The number of days for automatic binary log file removal. The default is 0, which means “no automatic removal.” Possible removals happen at startup and when the binary log is flushed. Log flushing occurs as indicated in
清空二进制日志
mysql> RESET MASTER
该命令会删除之前所有的 binlog, 并重新生成新的 binlog, 后缀又会从 000001 开始. 但如果该库为主库, 且有连接从库, 而从库正在读取试图删除的日志之一,
则本语句不会起作用, 而是会失败, 并伴随一个错误. 不过, 如果从库没有连接主库, 而又删除了从库读取的日志, 则从库启动后不能复制. 当从库正在复制时, 本语句可以安全运行, 不需要停止它们.
查看当前二进制日志
mysql> SHOW MASTER STATUS;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000009 | 180 | | |
+------------------+----------+--------------+------------------+
1 row in set (0.01 sec)
更新二进制
mysql> FLUSH LOGS;
查看二进制日志数目
mysql> SHOW MASTER LOGS;
+------------------+-----------+
| Log_name | File_size |
+------------------+-----------+
| mysql-bin.000001 | 117 |
| mysql-bin.000002 | 117 |
| mysql-bin.000003 | 1181 |
| mysql-bin.000004 | 491718 |
| mysql-bin.000005 | 2543824 |
| mysql-bin.000006 | 8032840 |
+------------------+-----------+
16 rows in set (0.01 sec)
列出所有的日志及其大小
查看 events
mysql> SHOW BINLOG EVENTS;
MySQL 命令终端查看当前日志中记录的日志
mysqlbinlog
[root@localhost ~]# mysqlbinlog /usr/local/mysql/var/mysql-bin.000001
查看二进制文件 mysql-bin.000001 中记录的 DML 和 DLL.
mysqlbinlog 有用参数
- -d, --database=dbname 列出查看的数据库
- --start-datetime='2011-03-25 00:00:00' 查看发生在该指定时间之后的 events.
- --stop-datetime='2011-03-25 23:59:59' 查看发生在该指定时间之前的 events.
- --start-position=10 查看该指定偏移点之后的 events.
- --stop-position=100 查看该指定偏移点之前的 events.
- --set-charset=utf8 在输出的 events 之前添加上 “SET NAMES utf8″.
基于时间
[root@localhost ~]# mysqlbinlog --start-datetime='2011-03-25 00:00:0' --stop-datetime='2011-03-25 23:59:59' --database=test /usr/local/mysql/var/mysql-bin.000001 > /tmp/1.log> /tmp/1.log
将其重定向到 1.log, 更便于查看.
基于偏移量
[root@localhost ~]# mysqlbinlog --start-position=98 --stop-position=344 --database=test /usr/local/mysql/var/mysql-bin.000001 > /tmp/1.log
分享到:
相关推荐
MySQL的二进制日志支持两种格式:基于语句的二进制日志(SBR, Statement-Based Replication)和基于行的二进制日志(RBR, Row-Based Replication)。 - **基于语句的二进制日志**:记录SQL语句本身,适用于大多数情况,...
MySQL的二进制日志(Binary Log)是数据库系统中用于记录所有更改数据的SQL语句的重要工具,它对于数据库的备份、恢复以及故障排查至关重要。`mysqlbinlog`是MySQL提供的一款命令行实用程序,专门用于处理和解析二...
首先,MySQL的ROW格式二进制日志记录了对数据库表进行的每一项操作的细节,包括插入、更新和删除。这种格式的好处在于它不依赖于特定的SQL语句,而是记录了实际的数据变化,因此在某些情况下,如表结构改变或无法...
Linux MySQL 8.0 二进制包安装 MySQL 是一个广泛使用的开源关系型数据库管理系统,最新版本为 8.0。在 Linux 系统中,安装 MySQL 8.0 二进制包需要按照以下步骤进行。 首先,下载 MySQL 8.0 二进制包。可以从官方...
MySQL的二进制日志(Binary Log)是数据库系统中用于记录所有更改数据的SQL语句的一种机制,它对于数据库的恢复和复制至关重要。当数据意外丢失或需要回滚到某一特定时间点时,二进制日志就成为恢复数据的关键工具。...
总之,了解并掌握MySQL的二进制日志查看和管理方法对于数据库管理员来说至关重要,因为它直接关系到数据的安全性和系统的高可用性。确保正确配置和使用二进制日志,能够有效地保护数据,实现高效的数据复制,并为...
CentOS 7上二进制安装MySQL 5.7的过程涉及多个步骤,这些步骤确保了数据库服务能够正确、稳定地运行。以下是对整个过程的详细解释: 1. **安装依赖包**: 在安装MySQL之前,需要确保系统中有必要的依赖库。在...
### MySQL Binlog 二进制日志详解 #### 基本概念 **定义:** MySQL 的二进制日志(Binlog)是一种记录数据库所有更新操作的日志形式,包括那些实际更新了数据以及那些虽然执行但未找到匹配行(如未匹配任何行的 ...
删除二进制日志可以使用RESET MASTER语句删除所有二进制日志,也可以使用PURGE MASTER LOGS语句删除指定的日志文件。使用二进制日志还原数据库可以使用mysqlbinlog工具从指定的时间点开始恢复的数据。可以暂时停止二...
二进制日志文件主要用于记录用户对数据库执行的各种操作,比如数据插入、更新、删除等。它们记录的是对数据表进行更改的所有SQL语句的二进制形式。这些日志文件在数据库发生错误时,配合数据库备份文件,能够帮助...
MySQL中的`mysql-bin.000001`文件是二进制日志文件,它是MySQL数据库系统的重要组成部分。这个文件记录了数据库的所有更改操作,如INSERT、UPDATE、DELETE等,以及DDL(Data Definition Language)语句,如CREATE ...
本文将详细介绍如何利用MySQL的二进制日志(Binlog)来恢复丢失的数据,并通过具体案例进行说明。 #### 二、基础知识介绍 1. **二进制日志(Binlog)** - **概念**:二进制日志是MySQL的一种日志类型,它记录了...
MySQL提供`PURGE BINARY LOGS`命令用于删除旧的二进制日志。 7. 性能优化 - 日志大小限制:适当调整日志文件大小,避免日志文件过大导致磁盘空间耗尽。 - 日志格式:选择合适的日志格式,如ROW、STATEMENT或MIXED...
【MySQL 5.7.20数据库的二进制安装部署】 在Linux系统中安装MySQL 5.7.20数据库通常涉及多个步骤,包括环境检查、账户创建、下载安装文件、解压安装以及配置。以下是一份详细的二进制安装指南: 1. **系统环境检查...
MySQL二进制日志(binlog)是MySQL数据库服务器的一个重要组件,用于记录所有更改数据或可能更改数据的语句,这些语句包括数据修改语句(INSERT、UPDATE、DELETE等)、DDL语句(如CREATE、ALTER、DROP等),以及其他...
- `log-bin` 和 `binlog_format`:开启二进制日志,设置日志格式。 - `expire-logs-days`:设置二进制日志自动清理策略。 - `character_set_server` 和 `collation_server`:定义字符集和排序规则。 - `max_...