1
2088TXT 2020-10-30 10:25:33 +08:00
可以把这个指令 kill 掉
|
2
goodboy95 2020-10-30 10:30:22 +08:00
不好说,如果恰好有时间点之前的备份倒简单,没备份或者备份太久远的话,从操作日志一点一点推出数据吧
|
3
SingeeKing 2020-10-30 10:31:01 +08:00 2
搜索关键词:binlog + redolog
|
4
wql 2020-10-30 10:38:32 +08:00 via Android
binlog
|
5
boris93 2020-10-30 10:40:41 +08:00 via Android
always SELECT before UPDATE
|
6
dilu 2020-10-30 10:51:07 +08:00 10
教你个巧:操作线上 DB,一定要先用 screen 这种开个窗口,然后开事务,操作完成之后一定要 select 验证一下,确定没问题之后再 commit 。不管多简单的操作都这样搞,保证你不会出错。
|
7
clf 2020-10-30 10:51:46 +08:00
用 Mysql Binlog 做回滚?当然咯,数据库没开 binlog 就没法操作了。
|
8
xiangyuecn 2020-10-30 11:06:30 +08:00
不用想,99%也没有备份。
两种选择: 1. 承担不起就不动声色立即跑路 2. ***** |
9
newtype0092 2020-10-30 11:07:19 +08:00
@dilu 听起来就像有故事的老哥,学到了~
|
10
lxk11153 2020-10-30 11:10:18 +08:00
rm -rf 吧,没救了[doge]
|
11
PiersSoCool 2020-10-30 11:15:15 +08:00
MySQL 在数据库层面应该可以设置拒绝这种 Global Update 的操作的,建议打开禁止,一般没有什么业务需求会需要全局更新
|
12
mebtte OP @PiersSoCool 我也想到这个, 有必要禁止一下
|
13
fanfpy 2020-10-30 11:26:30 +08:00
我好像干过这事,当时吓的一身冷汗,
|
14
telung 2020-10-30 11:28:15 +08:00
Wow, 收拾东西跑路吧
|
15
leafre 2020-10-30 11:30:00 +08:00
线上数据库能给你 update ?
|
16
twg 2020-10-30 11:38:20 +08:00
我好想也干过,还好是不重要的字段,领导帮我瞒下来了,当时慌得一笔
|
17
dilu 2020-10-30 11:40:37 +08:00
@newtype0092 用 screen 是有一次一个老哥操作线上 DB 开了事务后断网,之前的会话不能恢复也没有提交导致线上锁表(跟代码中的 for update 冲突导致),开事务是因为又一次跟你一样,update 没有写 where......
|
19
cheng6563 2020-10-30 12:06:11 +08:00
update 一般感觉慢了就强行断开连接把,最好事先开事务。如果用阿里云网页版的 DMS 那就直接凉。
|
20
terence4444 2020-10-30 12:08:21 +08:00 via iPhone
mysql workbench 似乎默认禁止无主键 update
|
21
dilu 2020-10-30 12:26:16 +08:00
@cheng6563 傻孩子,没有开自动提交,并且 for update 然后代码里面的逻辑也对这行进行了 for update,一系列巧合造成了这个线上事故,我们的服务直接挂了一整个上午。断开后不会自动回滚的。
|
22
mmdsun 2020-10-30 12:47:30 +08:00 via Android
|
24
CismonX 2020-10-30 13:54:59 +08:00
还好我们操作线上 DB 都要走主管审批,EXPLAIN 扫描行数超过一定数量还会有 DBA 二次审批
binlog 永久留存,而且所有 alter 操作都是克隆原表后进行操作 |
25
chioplkijhman 2020-10-30 14:05:43 +08:00
曾经迟到了,于是 telnet 到打卡机想改个考勤,数据库 update 忘了 where 。。。于是。。。
|
26
xsm1890 2020-10-30 15:56:05 +08:00
这
|
27
lxk11153 2020-10-30 18:43:41 +08:00
@hellomrjia #25 技术考勤,666
|
28
dswyzx 2020-10-30 18:51:47 +08:00
一般来这这么问的,也都是已经没路子走了,老大哥们提的建议都很好,但都是亡羊补牢.
晚上吃顿好的吧 |
29
namelosw 2020-10-30 19:12:47 +08:00 via iPhone
该吃吃该喝喝.
下辈子注意点就行了. |
31
darrenfang 2020-10-31 10:31:51 +08:00
|