java跑路_记一次删库跑路!哈哈哈

2018年八月二号,是黑暗的一天,在今天我碰到一个MySQL的坑,让我无意间删掉了整个表的数据,当时我心如死灰,感觉凉凉了!但是片刻之间我就立马上报该问题,运维立马停掉服务,(为什么停掉服务?脑壳想一想就明白了),我问问运维有没有备份,运维说备份是夜里两点备份的,用备份数据的话今天上午的新增的数据也是没有的,于是我马上用命令  show veriables like 'log_%'; 查看是否已开启日志,谢天谢地mysql开启了binlog,于是今天记录一下误删库利用binlog回滚的具体操作!

1、重中之重,误删库之后应该立马停掉服务,并且通知开发人员不要继续往数据库里面写东西,一面日志过大覆盖掉我们需要回滚的日志;

2、我马上根据 show veriables like 'log_%';这个命令定位到binlog的位置,找到最近的log;

3、binlog是二进制文件 vi vim cat 都不能直接查看到我们想看的东西,我们要是用mysql自带的工具查看,命令:

/usr/local/mysql/bin/mysqlbinlog --base64-output="decode-rows" -v /var/log/mysql/mysql-bin.000021

输出的日志使我们能看到的sql语句

4、接下来我按照 https://github.com/danfengcao/binlog2sql 这个链接的步骤,一步步将delete掉的数据都回滚成了insert语句

在按照上面这个链接做的时候,bin-log的位置由于权限不够,mysql无法重新启动,报错:(Starting MySQL.The server quit without updating PID file (/usr/local/mysql/data/mysql/izwz96bvf2t3

0nuubf3qbez.pid).)解决方法 :给予权限,执行 “chown -R mysql:mysql /var/data” “chmod -R 755 /usr/local/mysql/data”  然后重新启动mysqld!

这是一次宝贵的经验,此记录只是记录下具体的删库后怎么回滚的思路,剩余的操作需要看到的朋友动手去试一试!

转载至链接:https://my.oschina.net/u/3689525/blog/1922536

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值