mysqlbinlog数据恢复

4173阅读
0评论
0点赞

mysql数据恢复我们最常用的就是定时保存sql文件,如果发生意外,就把sql还原回去,但是在意外到备份之间产生的数据则会丢失,那么我们怎么把这部分时间的数据恢复呢? 这时候,我们就可以利用mysql为我们提供的binlog日志了 我们数据库demo1中有两个表       其中product表中有3条测试数据           我们将数据库备份为demo1.sql 并创建新的binlog mysqldump -uroot -proot demo1 -l -f > demo1.sql 生成了新的binlog  同时新增了几条新的数据 data> mysql-bin.000002             这个时候我们做一个误操作,把表删除了.. 然后还原数据 1、先还原数据库备份数据 也就是 demo1.sql ~> mysql -uroot -proot demo1 < demo1.sql           还差几条新增的数据,通过binlog还原 ~> mysqlbinlog --no-defaults ../data/mysql-bin.000002 | mysql -uroot -proot demo1             ok我们还原回来了,当然这样暴力的操作binlog日志是因为我在删表操作的时候先创建了新的binlog mysql> flush logs 在新的binlog中找到删除前新增的数据 ,为了查看方便 ,我们将binlog中的数据导出到txt ~>mysqlbinlog --no-defaults ../data/mysql-bin.000002 > demo2.txt   在记录中 我们可以看到我们新增的数据是从at 3246 到 at 4114 结束,那么我们就可以通过开始于结束的参数来实现精确恢复 mysqlbinlog --no-defaults ../data/mysql-bin.000002 --start-position="3246" --stop-position="4114" | mysql -uroot -proot demo1  

评论(0)
暂无评论