一次数据库误update之后的数据恢复

时间:2014-08-23 01:12:19   收藏:0   阅读:337

工作需要,要对数据库(mysql)数据进行对比,写完测试脚本。想在表中修改一条数据,然后运行程序看看效果。正确的sqlupdate table1 set amount = 100 where id=123;。可是实际情况是没有写where条件,就按下了回车,shell很快返回“**条数据已经被修改”,晕了。还好,我不是DBA,我只有权限动测试库,可是测试库也是十几个人公用的。看了下时间21:30,其他都下班了,不着急自己慢慢搞。

没有备份

数据库误操作,数据恢复首先想到备份,测试库一般都是线上数据的copy,很少有备份,方法不通。

binlog全量恢复太困难

大致知道mysql的binlog日志,记录下所有的操作。关于binlog有几条命令很有用,记录下:

由于没有权限登录到mysql这台机器,只能通过mysql连接执行命令。无法从数据库服务器直接拿到binlog日志。mysql提供-e参数(之前竟不知道),mysql -u root -p root -e "show binlog events" > bin.log将日志重定向到文件。

本机拿到了当前库的binlog,但是完全没有备份的情况下,使用binlog恢复数据,只能将该数据库从创建到现在产生的binlog全部执行一遍,这就纠结了,binlog太大;然后就是即使我们有耐心和时间执行binlog中的全部sql,我们也不能保证binlog从创建到现在没有人删除过,毕竟备份的日志,一般不会放太久 :(

继续阅读->

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!