不小心 where 条件搞错了 删了一堆的数据
mysql 5.6 的 innodb 数据库 日志模式 mixed
尝试用 mysqlbinlog 导出了下 deldete 发现只是记录了 delete 那个语句 没有数据
有没有具体的教程 网上的好杂乱 不敢乱弄了
不小心 where 条件搞错了 删了一堆的数据
mysql 5.6 的 innodb 数据库 日志模式 mixed
尝试用 mysqlbinlog 导出了下 deldete 发现只是记录了 delete 那个语句 没有数据
有没有具体的教程 网上的好杂乱 不敢乱弄了
|
opengpsSep 6, 2018
1
无论能不能恢复,现在第一时间要做的事是完整备份一下,然后抓紧用备份恢复的数据库研究
|
|
sbmzhcnSep 6, 2018
2
先把现场备份,然后再准备恢复尝试,如果失败了,还能还原。如果是 VPS 可以把整个 VPS 备份下。 一定要先备份再操作。
|
|
3
目前数据都导出备份了
|
|
lcorangeSep 6, 2018
4
看看有没有历史的备份点,数据库备份,硬盘快照什么任何的备份点。
然后从那个时间点开始捋所有 binlog,然后在备份点的库上,重跑到目前为止所有 binlog 的 sql |
|
PerteruallySep 6, 2018
5
删除之前先 select 查看一下。。。
|
|
6
已经恢复了
数据库前几天建的 中午操作删除的 所以直接把前几天到中午的数据重新恢复遍 把数据库删了 然后 /usr/local/mysql/bin/mysqlbinlog -d mydata --start-datetime='2018-09-04 08:00:00' --stop-datetime='2018-09-06 08:00:00' /usr/local/mysql/var/mysql-bin.000012>/home/mydata.sql 导出 sql 再把 sql 命令行倒回去 |
|
7
看了删除记录
手残啊 where id>19232 变成了 where id>1923 |
|
ruiheSep 6, 2018
8
你是不小心删了,我是前两天发现我司有个人删除数据用的是 delete 语句,瞬间无语……
|
|
9
删库到跑路,我以为一直开玩笑,没想到 v 友果然牛皮
|
|
poliapoSep 6, 2018
14
现在谁还删数据啊 不都是软删除 给字段
|
|
batterSep 6, 2018
15
我一直觉得 delete 是非常脑残的,奈何产品经理是个洁癖,觉得这些应该删除的数据是脏数据,,,,,,,😂😂
|
|
PythonAnswerSep 6, 2018 via iPhone
16
除非对文件大小有要求 别删东西啊
|
|
loveCodingSep 6, 2018
17
@cncqw #10 都是逻辑删除啊..
|
|
zr8657Sep 6, 2018
19
2018 还有真删的?
|
|
PerFectTimeSep 6, 2018
20
@cncqw #10 delete_remark 了解一下
|
|
infraSep 6, 2018
22
跑路吧,修复不了的
|
|
neutrinoSep 6, 2018
23
一直真删,不要抱着侥幸心理。
|
|
Raymon111111Sep 6, 2018
24
binlog 重来一次呗
|
|
liuhanghangSep 6, 2018
25
现在都是软删除吧 is_delete
|
|
zhouren93Sep 6, 2018
26
开启 binlog 了么,有的话可以恢复
|
|
luofan004Sep 6, 2018
27
你们都不看前面楼么,别人楼主已经用 binlog 恢复了,都散了吧。。
|
|
cncqwSep 6, 2018
28
软删除只能算更新,跟删除有什么关系?说现在不用物理删除数据的可能只是你们的业务规模太小,当然删不删都无所谓,我做移动广告分析每天产生几千万条数据,你们软删除一个给我试试,真是无语。。
|
|
29
我 3 年前做的项目就已经用上 delete_at 字段了,所以我猜楼上那些教我怎么删除的应该都是 phper,怎么讲,一种认为自己很懂但实际很 low 的感觉扑面而来,很符合 php 这门语言的气质
|
|
30
@cncqw #28 恼羞成怒
|
|
fleamSep 6, 2018 via iPhone
31
和语言有个毛关系……
|
|
paichaSep 6, 2018
32
deleted_at
|
|
34
php: 人在家中坐,锅从天上来
|
|
soleilsSep 6, 2018
35
删除数据不用 delete 语句,一般数据都很少
|
|
liuguangSep 6, 2018
36
跑路吧,除非按日志恢复,估计搞死人,drop database 然后跑路。。。
|
|
ballshapesdsdSep 6, 2018
37
@bestkayle #30 人家说的有啥不对
|
|
KgM4gLtF0shViDH3Sep 6, 2018
38
又 block 了几个人,好开心
|
|
zerabaSep 6, 2018 via Android
40
mixed delete 的话 binlog 只记录删除的这一条 sql 你可以看到了,没法从 binlog 恢复 只能从历史备份恢复,之后如果性能没问题,数据又重要还是 row 吧 还有就是多做备份 有备无患
|
|
41
哈哈上面 show is_delete 的好好笑。忍不住了。
|
|
zcjwxfSep 7, 2018
42
新当年我也 delete 过一次,还没加 where 那种,幸亏那张表最近没变化
|
|
dearmymySep 7, 2018
43
之前也删过。还好用阿里云的数据库,有备份
|
|
IllBeBackSep 7, 2018
44
1. Select * from ...
2. Delete from ... 先 select 再 delete,后面都一样,复制粘贴就可以。 严格按这个顺序,一般不会出问题。 |
|
metrxqinSep 7, 2018 via iPhone
45
根据业务需求来决定只不执行物理删除。
|
|
msg7086Sep 7, 2018
46
ermmm 人家的明文密码啊信用卡号啊身份证号啊手机号啊这些你们都是永久保存的?
贵国的程序员真是可怕。 |
|
lcdxiangziSep 7, 2018 via Android
47
一切抛开业务场景的技术谈论都是瞎比比
|
|
lcdxiangziSep 7, 2018 via Android
48
上次是存身份证图片,这次是逻辑删除😂
|
|
koicSep 7, 2018
49
在进行数据库操作之前,首先要做的就是备份一下数据
当然数据库过于巨大的工资的话,应该会有自己的备份机制 |
|
keymaoSep 7, 2018
50
is_delete... 其实还是看数据规模吧 那种每天在线几百人的 数据产出小的 就没所谓了
数据量大的 不物理删除 等着数据服务器炸掉么... |
|
wanwaneryideSep 7, 2018
51
你需要买一本书:从删库到跑路。(≖ᴗ≖)✧
|
|
leonnewSep 7, 2018
52
还恢复啥。。跑路呗
|
|
ccl945Sep 7, 2018 via Android
53
什么鬼,产品经理管天管地数据库模型也要管,这还干个毛,拿起椅子上
|
|
batterSep 7, 2018
54
@keymao 我不太明白,如果数据量巨大,每天新增上亿的数据量,难道还用数据库来做操作吗?数据库不是作为最后的留存使用吗?不应该是分布式存储,况且我们采集的存储的数据不应该是需要 delete 数据极少数,占比不会超过千分之一甚至十万分之一吧,如果真的需要按照日期删除,难道不应该是按照日期分表,然后去删除表吗?菜鸟一枚,勿喷
|
|
5oiR5piv5YK76YC8Sep 7, 2018
55
做不做物理删除看情况决定吧,说实话,敏感数据,还真没有几个公司是删除了的
顺便楼上那个炮轰的 php 的,笑死我了,php 真的是人在家中坐,锅从天上来 |
|
liuguangSep 7, 2018
56
select * from table where deleted_at is not null;
|
|
jydengSep 7, 2018
57
可以从日志恢复嘛,不是很了解。
公司用 Oracle,可以从日志恢复。 |
|
nosaySep 7, 2018 via iPhone
58
@cncqw 稍微翻了一下你以往的回复记录,回复最多的恐怕就是 php 相关的讨论,我猜你可能是一名 phper,至少曾经是的。而你竟然可以把 phper 变成侮辱性词汇,真是讽刺,已 block
|
|
llvmSep 7, 2018
59
MySQL 有闪回工具
|
|
CoderGeekSep 7, 2018
60
日志 sql
|
|
weizhen199Sep 7, 2018
61
该做 log 备份了
|
|
moregunSep 7, 2018
62
嗯 命令行是比图形界面方便
|
|
sampengSep 7, 2018
63
恩。相信我。你以后一定在操作删除操作的时候瑟瑟发抖。。
delete 的时候。一定要加一个 limit。。。 |
|
likukuSep 7, 2018 via iPhone
64
没有有效的备份,那么请节哀
|
|
gaMe5hGLc86G4U52Sep 7, 2018
65
设置个 isDelete 字段,逻辑删除,默认 0,逻辑删除更新值为 1
|
|
zeroliuSep 7, 2018
66
呃 为啥不试试先锁表,然后根据备份搭建主从,然后开启复制 start ...到 delete 之前呢?不过这个情况需要你的备份里面有 binlog file 和 position 信息或者是 gtid 信息吧,还有就是明确的知道你这个 delete 的 position 信息啊
|
|
xiaoyang7545Sep 7, 2018
67
逻辑删除还是用 delete 还是需求决定的吧,楼上那些纠结这个的真的可笑啊。而且贴主这个还不一定是在程序环境中,可能是清理数据呢。
|
|
xionghongzhiSep 7, 2018
68
@IllBeBack 我一般都是这样用
|
|
xionghongzhiSep 7, 2018
69
都是些玻璃心
|
|
di1012Sep 7, 2018
70
sql server 中的 truncate 删除了解下,敢这么用的人一定是和公司有仇的
|
|
bigtwoSep 7, 2018
72
看着楼上各位的逻辑,终于感受到无责任心的公司为啥这么多了
|
|
codebigbangJun 18, 2020
73
抛开业务场景谈技术实现,跟抛开计量谈毒性一样,都是耍流氓。(逃~
|