一、设置日志保留时长expire_logs_days自动删除
- #查看当前日志保存天数:
- show variables like ‘%expire_logs_days%’;
- #这个默认是0,也就是logs不过期,可通过设置全局的参数,使他临时生效:
- set global expire_logs_days=7;
- #设置了只保留7天BINLOG, 下次重启mysql这个参数默认会失败,所以需在my.cnf中设置
- expire_logs_days = 7
二、手动删除BINLOG (purge binary logs)
- #用于删除列于在指定的日志或日期之前的日志索引中的所有二进制日志。这些日志也会从记录在日志索引文件
- 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′;
- PURGE MASTER LOGS BEFORE DATE_SUB( NOW( ), INTERVAL 3 DAY);
其它:
- 查看当前日志文件列表:show binary logs;
使用binlog日志的目的是为了方便恢复数据,所以我们不光要会删除,还要会用日志来恢复数据。
使用binlog恢复数据:
使用mysqlbinlog命令恢复日志
- mysqlbinlog -d test /root/mysql/mysql-bin.000001|mysql -uroot -ppassword
- ※附录
- #1、关于mysqlbinlog在mysql 5.0上的使用方法,可以参考:官方资料
- #2、如果不知道log-bin存放的文件位置,可以使用下面的命令查看:
- mysql -uroot -ppassword -e 'SHOW BINLOG EVENTS \G'
- #3、当只是需要恢复部分记录的时候,你可以使用时间点或位置点来定位,例如:
- mysqlbinlog --start-date="2005-04-20 9:01:00" --stop-date="2005-04-20 10:00:01" /var/log/mysql/bin.123456|mysql -uroot -ppassword[code]
- #意思是恢复4月20日早上9点到10点这一段时间的数据。
- mysqlbinlog --start-position="368301" --stop-position="368312"/var/log/mysql/bin.123456| mysql -uroot -pmypwd
- #意思是重做368301到368312位置点之间的操作。(位置点可以就是用mysqlbinlog看到的at xxx节点)
- mysqlbinlog --start-date="2005-04-20 9:55:00" --stop-date="2005-04-20 10:05:00" /var/log/mysql/bin.123456 > /tmp/mysql_restore.sql
- #同样的,如果我们只是想查看某段时间的操作,直接把它导到一个文件即可。
相关推荐
Linux MySQL 8.0 二进制包安装 MySQL 是一个广泛使用的开源关系型数据库管理系统,最新版本为 8.0。在 Linux 系统中,安装 MySQL 8.0 二进制包需要按照以下步骤进行。 首先,下载 MySQL 8.0 二进制包。可以从官方...
首先,MySQL的ROW格式二进制日志记录了对数据库表进行的每一项操作的细节,包括插入、更新和删除。这种格式的好处在于它不依赖于特定的SQL语句,而是记录了实际的数据变化,因此在某些情况下,如表结构改变或无法...
MySQL的二进制日志支持两种格式:基于语句的二进制日志(SBR, Statement-Based Replication)和基于行的二进制日志(RBR, Row-Based Replication)。 - **基于语句的二进制日志**:记录SQL语句本身,适用于大多数情况,...
MySQL的二进制日志(Binary Log)是数据库系统中用于记录所有更改数据的SQL语句的重要工具,它对于数据库的备份、恢复以及故障排查至关重要。`mysqlbinlog`是MySQL提供的一款命令行实用程序,专门用于处理和解析二...
MySQL的二进制日志(Binary Log)是数据库系统中用于记录所有更改数据的SQL语句的一种机制,它对于数据库的恢复和复制至关重要。当数据意外丢失或需要回滚到某一特定时间点时,二进制日志就成为恢复数据的关键工具。...
- 也可以使用 `RESET MASTER` 命令删除所有之前的二进制日志并重新生成新的日志。 - 注意:如果存在正在读取这些日志的活动从属服务器,则此命令将失败并显示错误。 2. **记录到二进制日志的内容配置:** - 可以...
CentOS 7上二进制安装MySQL 5.7的过程涉及多个步骤,这些步骤确保了数据库服务能够正确、稳定地运行。以下是对整个过程的详细解释: 1. **安装依赖包**: 在安装MySQL之前,需要确保系统中有必要的依赖库。在...
MySQL的二进制日志(Binary Log,简称binlog)是数据库系统中至关重要的一部分,它记录了所有对数据库进行更改的事务,包括CREATE、ALTER、DROP等DDL语句以及INSERT、UPDATE、DELETE等DML语句。二进制日志对于数据...
二进制日志文件主要用于记录用户对数据库执行的各种操作,比如数据插入、更新、删除等。它们记录的是对数据表进行更改的所有SQL语句的二进制形式。这些日志文件在数据库发生错误时,配合数据库备份文件,能够帮助...
- `log-bin` 和 `binlog_format`:开启二进制日志,设置日志格式。 - `expire-logs-days`:设置二进制日志自动清理策略。 - `character_set_server` 和 `collation_server`:定义字符集和排序规则。 - `max_...
删除二进制日志可以使用RESET MASTER语句删除所有二进制日志,也可以使用PURGE MASTER LOGS语句删除指定的日志文件。使用二进制日志还原数据库可以使用mysqlbinlog工具从指定的时间点开始恢复的数据。可以暂时停止二...
MySQL中的`mysql-bin.000001`文件是二进制日志文件,它是MySQL数据库系统的重要组成部分。这个文件记录了数据库的所有更改操作,如INSERT、UPDATE、DELETE等,以及DDL(Data Definition Language)语句,如CREATE ...
本文将详细介绍如何利用MySQL的二进制日志(Binlog)来恢复丢失的数据,并通过具体案例进行说明。 #### 二、基础知识介绍 1. **二进制日志(Binlog)** - **概念**:二进制日志是MySQL的一种日志类型,它记录了...
本文将详细介绍如何在Linux环境下进行MySQL 5.7.19的二进制安装,并涵盖了一些关键的优化步骤。 **一、优化部分** 1. **操作系统参数调优**:在安装MySQL之前,为了提升数据库的性能,需要调整操作系统的参数。这...
MySQL提供`PURGE BINARY LOGS`命令用于删除旧的二进制日志。 7. 性能优化 - 日志大小限制:适当调整日志文件大小,避免日志文件过大导致磁盘空间耗尽。 - 日志格式:选择合适的日志格式,如ROW、STATEMENT或MIXED...
MySQL二进制日志(binlog)是MySQL数据库服务器的一个重要组件,用于记录所有更改数据或可能更改数据的语句,这些语句包括数据修改语句(INSERT、UPDATE、DELETE等)、DDL语句(如CREATE、ALTER、DROP等),以及其他...