案例:http://www.linuxidc.com/Linux/2012-11/74005.htm
http://blog.csdn.net/ssrc0604hx/article/details/18717983
原理:假如你现在不小心删除了一张表需要恢复。你就把一个月前备份的数据库拿出来,然后把这一个月的二进制日志里对这个数据库这张表进行的操作提出来。对备份的数据库进行同样的操作,得出来的表就和你删除的表一摸一样了。
1.提炼日志:可以用mysqlbinlog根据时间和位置进行提炼成sql文件;
2.正则表达式过虑sql文件:
a.删除/**/注释行:\/\*[^\*]*\*\/;替换成\n
b.删除#注释行:^#.*$替换成\n
c.删除所有包含某个字符的行,如bak:^.*bak.*$替换成\n
d.清除空行:\n[\s| ]*\r替换成\n
3.导入sql文件对备份数据库进行操作;