通过mysqlbinlog恢复数据

天远科技  发表于:2021-12-21  分类:数据库相关  阅读(2249)  赞同31

今天业务打电话来说又有新的用户要看下我们的客户管理系统,用户客户的数据是不合适给新客户看的,然后搭建新环境,测试服务器上建立新数据库,导测试数据的时候头脑发昏直接导到了客户线上,这下完了。头脑一顿发蒙,马上查看数据备份工作有没有做,由于这个项目刚完成客户服务器的定时备份还没给做下去,这下麻烦大了,心想怎么跟客户交代,上面他们4个员工不停的在将老数据维护到我们的系统里,头脑发麻,为了不让事故蔓延立马停掉业务不要让客户做无用功,通知客户临时维护,冷静想了下,mysql我们默认都是开启binlog的,binlog可以恢复,立马查了下mysql配置

>mysql -uroot -p

mysql>show binary logs;

显示

+------------------+-----------+
| Log_name         | File_size |
+------------------+-----------+
| mysql-bin.000001 |      1007 |
| mysql-bin.000002 |       126 |
| mysql-bin.000003 |       126 |
| mysql-bin.000004 |       382 |
| mysql-bin.000005 |      1309 |
| mysql-bin.000006 |       126 |
| mysql-bin.000007 |  57082358 |
+------------------+-----------+

退出mysql

执行

>yle="color:#222222;font-family:tahoma, arial, "font-size:16px;background-color:#FFFFFF;">mysqlbinlog --start-position=0 /data/mysql/mysql-bin.000007

从binlog日志里查看执行记录,再执行

>yle="color:#222222;font-family:tahoma, arial, "font-size:16px;background-color:#FFFFFF;">mysqlbinlog --start-position=0 --stop-position=10157604 /data/mysql/mysql-bin.000007

这里你可以不断更改--stop-position 数字找到需要截止的行

最后执行

mysqlbinlog /data/mysql/mysql-bin.000007--start-position=0 --stop-position=10157604 | mysql -uroot -p

yle="color:#222222;"> 如果你要的binlog在000007之前也有数据,那么之前的也执行同样的语句。

yle="color:#222222;">执行完后一查客户数据全部恢复,吊着的心放下,立马做了数据备份工作。



博文分类

线

在线联系
点击这里给我发消息
点击这里给我发消息
关注我们