MySQL使用日志文件恢复数据

阅读更多
MySQL的二进制日志文件也许是没做数据备份的数据库的最后的救命稻草吧。
今天就遇到了,昨天刚的上的项目还没来得及做数据定时备份就出问题了。只有利用日志文件了(幸好我的日志记录功能的开启的^_^)。

首先说下如何打开日志记录。
打开日志文件记录的开关,在MY.INI里,MYSQLD项下添加log-bin=mysql,这样在DATA目录下,就会产生如MYSQL.000001,MYSQL.000002之类的二进制文件了。如果只对某个库进行日志文件记录,那么再添加binlog-do-db=TEST,这样就只记录TEST数据库的日志,而放弃其他的。添加完后,重新启动MYSQL的服务,日志文件开始工作了。
打开日志记录功能以后,除了SELECT语句不被记录外,其它所有语句都会记录进去。

下面进行恢复:

查看命令:
D:\mysql6\bin>mysqlbinlog d:\mysql6\data\mysql.000001
打开mysql.000001 可以看到许多执行语句。

提取位置270到377的语句到 3.sql 中
D:\mysql6\bin>mysqlbinlog d:\mysql6\data\mysql.000003 --start-position=270 --stop-position=377 -r 3.sql


或按时间段提取:
D:\mysql6\bin>mysqlbinlog d:\mysql6\data\mysql.000003 --start-datetime="2010-09-27 00:00:00"  --stop-datetime="2010-09-27 12:00:00" -r 3.sql 


如果要全部导入提取的sql:
mysql> source d:\mysql6\bin\3.sql 


但最好不要这样,也许会数据重复。
最好是打开sql复制自己需要的sql执行。

你可能感兴趣的:(MySQL,SQL,工作)