1
cst4you 2014-06-12 14:34:17 +08:00
-_,- 低级错误
|
2
meizhile 2014-06-12 14:39:43 +08:00
数据库没有备份机制么
|
3
Zhang 2014-06-12 14:45:04 +08:00
这家伙中学学定语从句的时候打瞌睡了!
|
4
clino 2014-06-12 14:46:28 +08:00
数据库怎么没先备份呢...
|
5
dong3580 2014-06-12 14:47:14 +08:00
@meizhile
不是所有的时候都要备份的,有些觉得没备份的必要,但是有时候发生了还是会蛋碎。本来觉得不可能会发生低级错误,没想到还是会“不小心”,就这么犯傻了。 我去年爬了一个星期的东西,当时有些重复了。 在Sql server中写了删除语句,执行时候手贱没选中where后面的,结果几百万全部没了,恼了一整夜,又费了一周才重新爬过来。 |
6
ipconfiger 2014-06-12 14:48:25 +08:00
常年在生产系统上裸操作的正确的操作习惯是先写select,查处数据核查是要修改的后再把前面改写成update xxx set xxx什么的。
|
7
lj0014 2014-06-12 15:01:43 +08:00
同事也犯过类似的错。。。
|
8
codingpp 2014-06-12 15:05:22 +08:00
如果数据库不是myisam这样的在做update的时候会把原先一条记录标记删除,然后插入一条新的记录
老数据会被另外的purge进程删掉 那么在没有被purge前,被update的数据是否可以找回来? mysql不清楚有没有命令可以把当前事务版本之前的数据查出来 如果我犯了这个失误以后,肯定会第一时间把mysql的数据文件保存一份的。 |
9
sanddudu 2014-06-12 15:16:08 +08:00 1
MySQL Workbench 默认就是不加 where 就不让执行
|
10
awebird 2014-06-12 15:21:46 +08:00
之前的公司要求所有的update和delete,不准一次批量执行,必须先select出所有的id,用脚本生成逐条sql,没50条sleep一会再继续..
还有一种场景是sql是从操作手册的word或者其它会折行的工具拷贝过来的,where条件正好被折行了,特别危险 |
11
mhycy 2014-06-12 15:39:30 +08:00
有记录有备份就恢复去。。。
|
12
leafgray 2014-06-12 15:40:29 +08:00
@ipconfiger 握手。
|
13
yushiro 2014-06-12 15:41:23 +08:00
@ipconfiger +1 我也这么干~
|
14
shizzmk 2014-06-12 17:02:00 +08:00
居然奇葩低级错误 (─.─|||
|
15
keniusahdu 2014-06-12 17:04:43 +08:00
在Oracle SQL Developer中执行过一次没加where条件。你知道手快顺手点了commit 之后是什么心情么。6000多条数据。
|
16
canesten 2014-06-12 17:08:41 +08:00
|
17
xmbaozi 2014-06-12 17:21:50 +08:00
操作2000+w的线上表,最怕update。操作前要再三检查where,然后还会在后面写上limit。
|
19
AlanZhang 2014-06-12 19:19:39 +08:00 via iPhone
一个合格的网站标准:不需要登录登陆数据库操作。
|
20
qiongqi 2014-06-12 19:30:42 +08:00
这种操作,要rd发语句给dba,让dba执行,dba要在操作前做一次备份
|
21
keniusahdu 2014-06-12 20:07:39 +08:00
@canesten 运维跟我说我这个库没备份,给我吓坏了,后来自己用SCN搞定了
|
22
Mutoo 2014-06-12 20:41:06 +08:00
"但是,最终公司报警,警方介入之后,对后台登陆信息进行还原,并查到张扬的个人账户有问题。"
NB的警方 |
23
anson0370 2014-06-12 22:06:57 +08:00
我们一个客户公司的某DBA刚刚在一张4KW记录的表里执行了一个没有where的update
|
26
yangqi 2014-06-12 23:05:00 +08:00
发生这种事不用直接丢饭碗的么?
|
27
ayang23 2014-06-12 23:38:16 +08:00
这种血泪教训后,我每次UPDATE都先SELECT,再用LIMIT 1,最后才敢UPDATE。
|
28
meizhile 2014-06-13 09:02:40 +08:00
我也犯过这种错误,线上系统,超过200w记录,不过不是没加where,而是Oracle坑爹的update多更新了数据,那时候年少无知啊,胆子可是很正
|
29
ikan 2014-06-13 23:57:07 +08:00
昨天我也刚犯这个错误,幸亏我不是DBA。
|