MYSQL如何二进制日志恢复数据库
时间:2010-09-02 来源:909413335
mysql> create database dbbin; |
刷新日志,现在我们来看看第一个日志记录了些什么
D:\mysql6\bin>mysqlbinlog D:\mysql6\data\log.000001 |
上面标示的加粗的部分,记录了创建数据库和表的脚本。非常之强悍。
再插入几条记录看看
mysql> insert into t1 values(1),(2); |
再看看第二个日志,记录了啥
D:\mysql6\bin>mysqlbinlog D:\mysql6\data\log.000002 |
没错,插入的命令被完美的记录了下来。继续往下看。
这时候有个小厮过来操作数据库,做了一个DROP DATABASE DBBIN的操作。
mysql> drop database dbbin; |
没文化真可怕。灾难终于发生了。
看看第三个日志文件记录了什么。
D:\mysql6\bin>mysqlbinlog D:\mysql6\data\log.000004 |
还好哥一早就就记录了日志文件,哥神一样的意识早就知道会有今天这一幕。下面看怎么恢复
D:\mysql6\bin>mysqlbinlog D:\mysql6\data\log.000001 D:\mysql6\data\log.000002 | mysql -uroot -p123 |
为什么只用到第一个和第二个日志呢?
你傻啊,第三个日志里有DROP掉了,还恢复个灰机?
再看看是否正确还原了。
mysql> use dbbin; |
数据都回来了。
再回头看看第二步,为什么官方建议不用binlog-do-db过滤数据库日志,如果你一个不小心没漏掉了一个数据库,那不悲剧了?而且无法挽回。