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 <img alt="" class="size-full wp-image-473 alignleft" height="199" src="/storage/uploads/2017/11/KQAIUR4U3AZM2XKWRV.png" width="324"></img> 还差几条新增的数据,通过binlog还原~> mysqlbinlog --no-defaults ../data/mysql-bin.000002 | mysql -uroot -proot demo1<img alt="" class="size-full wp-image-474 alignleft" height="261" src="/storage/uploads/2017/11/2UXQDNFKMO@UK2DFH.png" width="326"></img> ok我们还原回来了,当然这样暴力的操作binlog日志是因为我在删表操作的时候先创建了新的binlogmysql> 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
mysqlbinlog数据恢复
2017-11-11
本文作者: 小罗同学
原文链接: mysqlbinlog数据恢复
版权声明: 本站所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
免责声明: 文中如涉及第三方资源,均来自互联网,仅供学习研究,禁止商业使用,如有侵权,联系我们24小时内删除!
评论1
暂时没有评论