From:http://www.phpv.net/html/1559.html
如果MySQL服务器启用了二进制日志,你可以使用mysqlbinlog工具来恢复从指定的时间点开始 (例如,从你最后一次备份)直到现在或另一个指定的时间点的数据。关于启用二进制日志的信息,参见5.11.3节,“二进制日志”。对于 mysqlbinlog的详细信息,参见mysql手册8.6节,“mysqlbinlog:用于处理二进制日志文件的实用工具”。
要想从二进制日志恢复数据,你需要知道当前二进制日志文件的路径和文件名。一般可以从选项文件(即my.cnf or my.ini,取决于你的系统)中找到路径。如果未包含在选项文件中,当服务器启动时,可以在命令行中以选项的形式给出。启用二进制日志的选项为-- log-bin。要想确定当前的二进制日志文件的文件名,输入下面的MySQL语句:
SHOW BINLOG EVENTS G
你还可以从命令行输入下面的内容:
mysql --user=root -pmy_pwd -e 'SHOW BINLOG EVENTS G'
将密码my_pwd替换为服务器的root密码。
1. 指定恢复时间
对于MySQL 4.1.4,可以在mysqlbinlog语句中通过--start-date和--stop-date选项指定DATETIME格式的起止时间。举例说明,假设在今天上午10:00(今天是2005年4月20日),执行SQL语句来删除一个大表。要想恢复表和数据,你可以恢复前晚上的备份,并输入:
mysqlbinlog --stop-date="2005-04-20 9:59:59" /var/log/mysql/bin.123456
| mysql -u root -pmypwd
该命令将恢复截止到在--stop-date选项中以DATETIME格式给出的日期和时间的所有数据。如果你没有检测到几个小时后输入的错误的SQL语句,可能你想要恢复后面发生的活动。根据这些,你可以用起使日期和时间再次运行mysqlbinlog:
mysqlbinlog --start-date="2005-04-20 10:01:00" /var/log/mysql/bin.123456
| mysql -u root -pmypwd
在该行中,从上午10:01登录的SQL语句将运行。组合执行前夜的转储文件和mysqlbinlog的两行可以将所有数据恢复到上午10:00前一秒钟。你应检查日志以确保时间确切。下一节介绍如何实现。
2. 指定恢复位置
也可以不指定日期和时间,而使用mysqlbinlog的选项--start-position和--stop-position来指定日志位置。它们的作用与起止日选项相同,不同的是给出了从日志起的位置号。使用日志位置是更准确的恢复方法,特别是当由于破坏性SQL语句同时发生许多事务的时候。要想确定位置号,可以运行mysqlbinlog寻找执行了不期望的事务的时间范围,但应将结果重新指向文本文件以便进行检查。操作方法为:
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
该命令将在/tmp目录创建小的文本文件,将显示执行了错误的SQL语句时的SQL语句。你可以用文本编辑器打开该文件,寻找你不要想重复的语句。如果二进制日志中的位置号用于停止和继续恢复操作,应进行注释。用log_pos加一个数字来标记位置。使用位置号恢复了以前的备份文件后,你应从命令行输入下面内容:
mysqlbinlog --stop-position="368312" /var/log/mysql/bin.123456
| mysql -u root -pmypwd
mysqlbinlog --start-position="368315" /var/log/mysql/bin.123456
| mysql -u root -pmypwd
上面的第1行将恢复到停止位置为止的所有事务。下一行将恢复从给定的起始位置直到二进制日志结束的所有事务。因为mysqlbinlog的输出包括每个SQL语句记录之前的SET TIMESTAMP语句,恢复的数据和相关MySQL日志将反应事务执行的原时间。
分享到:
相关推荐
使用mysqlbinlog工具恢复删除的数据库记录.docx
phpStudy的mysql没有这个 mysqlbinlog文件,不能查看二进制文件,下载这个附件后解压后的EXE文件放到phpStudy\MySQL\bin下即可使用
详细讲解了mysqlbinlog数据库库回复的详细过程,减少了参数的冗余性造成的命令看不懂得现象
binlog是通过记录二进制文件方式来备份数据,然后在从二进制文件将数据恢复到某一时段或某一操作点。
mysqlbinlog用于处理二进制日志文件的实用工具详解mysqlbinlog 从二进制日志读取语句的工具。在二进制日志文件中包含的执行过的语句的日志可用来帮助从崩溃中恢复。
mysqlbinlog和binlog2sql的使用及mysql通过binlog日志恢复数据库数据
利用binlog恢复库表,要求如下: 1. 启用binlog日志 2. 创建db1库tb1表,插入3条记录 3. 删除tb1表中刚插入的3条记录 4. 使用mysqlbinlog恢复删除的3条记录
使用mysqlbinlog实用工具(在windows命令行窗口运行)可以检查二进制日志文件。命令格式为: mysqlbinlog [options] 日志文件名 说明:日志文件名是二进制日志的文件名。 例如,运行以下命令可以
mysqlbinlog.exe处理二进制日志文件!想看增量备份的dml日志文件,却看不懂...3、输入类似这样的命令:D:\MySQL\bin>mysqlbinlog D:\mysql_log\mysql_log.000001 压缩包包含mysqlbinlog.exe、mysqldump.exe两个文件!
二进制日志(binnary log)以事件形式记录了对MySQL数据库执行更改的所有操作。 binlog是记录所有数据库表结构变更(例如CREATE、ALTER TABLE…)以及表数据修改(INSERT...数据恢复:通过mysqlbinlog工具来恢复数据。
如果MySQL服务器启用了二进制日志,你可以使用mysqlbinlog工具来恢复从指定 的时间点开始 (例如,从你最后一次备份)直到现在或另一个指定的时间点的数据。本文为大家介绍了MySQL数据库自动恢复的简单操作过程。
binglog文件是服务器的二进制日志记录着该数据库的所有增删改的操作日志,接下来通过本文给大家介绍linux上通过binlog文件恢复mysql数据库详细步骤,非常不错,需要的朋友参考下
先私信后购买,解析binlog利器,回滚恢复误删除数据
之前三篇文章分别介绍了MySQL数据库常见的备份方法,其中包括逻辑备份和物理备份,本篇将总结一下MySQL数据库的数据恢复相关内容。这些数据恢复方案在之前备份内容介绍时,此处总结一下恢复方案,并结合数据库的二...
08-利用source恢复mysql数据讲解及实战.avi 09-分库备份后mysql如何分库恢复实战.avi 10-mysql进程-状态-在线修改参数重要知识讲解.avi 11-mysqlbinlog命令介绍及实战讲解.avi 12-mysqldump-master-data参数答疑详解...
恢复指定表被删除数据,恢复前最好备份一次。
MySQL数据库每日零点自动全备 某天上午10点,小明莫名其妙地drop了一个数据库 我们需要通过全备的数据文件,以及增量的binlog文件进行数据恢复 二、主要思想 利用全备的sql文件中记录的CHANGE MASTER...
mysql 针对MYSQL delete、update、insert语句误操作(如update忘记加where条件) ...使用: 直接拷贝到 原来mysqlbinlog 工具所在目录,使用和mysqlbinlog工具一样,只是多了一个用于恢复的 -B 参数。
简单好用的mysql binlog查看工具 采集于网络。
如果MySQL服务器启用了二进制日志,你可以使用mysqlbinlog工具来恢复从指定的时间点开始 (例如,从你最后一次备份)直到现在或另一个指定的时间点的数据。“mysqlbinlog:用于处理二进制日志文件的实用工具”。 要想...