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