最近发生了一件恶心的事情,我在公司负责技术部门,公司有一个项目是外包做的,当时提供给外包git分支后就静等他们开发完成,检查没问题就一直跑着了
忽然有一天运营负责人找过来,发现他们很多天,辛辛苦苦配置的各种数据都没了,而这个项目的数据库不在公司内部数据库管理中,并没有备份,只好通过二进制日志恢复一下了
前提是开了binlog!
第一步,先把现有数据备份一下
第二步,找到MySQL binlog的目录,查看导出最近的一份或者指定时间内的数据
由于日志文件是加密的二进制文件,需要使用MySQL自带的MysqlBinlog工具进行转换
show binary logs
mysqlbinlog --start-position=214 --stop-position=1257 /data/3307/mysql-bin.000006 > /tmp/binlog.sql
进库导入binlog.sql
mysql source /tmp/binlog.sql
- 第三步,查看找回数据或者筛选出必要insert及updateSQL,执行一遍