现在的位置: 首页 > 综合 > 正文

【经验123】update是危险的

2013年09月08日 ⁄ 综合 ⁄ 共 708字 ⁄ 字号 评论关闭

        今天有人反映一张表里的数据不对,操作日期全改为了‘201308071508’,导致信息不能统计。

        从昨天三点开始,也就是‘201308071508’这个时间,数据库开始产生大量的日志,当时就觉得奇怪,但问了下,大家都说没做过什么操作。从三点开始,一直到晚上的七点多,alert日志一直在猛增,差不多每一分钟就会切换一次日志,太奇怪了。

        今天早上就有人发现数据不对,无法做统计。经过排查,发现是触发了一个应用导致做了update语句。

update i set username='aaa',usercode='aaa',operation='aaa',operatetime='201308071508',biz_id='111',memo='111',location='aaa' where 1=1

 --条件居然是1=1,于是就更新了这张表里的所有数据。

        这张表很重要,只能通过全备来恢复。这个库有个物理standby,于是将备份拷到备库,进行恢复,再滚日志,滚到执行这个update语句前的时间点,恢复完之后将该表的数据导出,与主库的表进行对比,看哪些数据对,哪些不对,需要更新哪些,只能一点一点恢复该表,不过这就不是我们要干的活了!

        原本只知道 rm -rf 是危险的,没想到update也是危险的。其实做IT就是要仔细,任何一句命令都可能带来严重的后果,所以在敲下回车或者摁下F5之前都要三思啊!

        这是我从实习到正式工作以来第一次遇到这种问题,算是个比较大的问题,不过作为小八拉子的我还没有机会处理这种问题,只能交给我师父了。这里就做一次记录,要记住——update是危险的!

抱歉!评论已关闭.