公告 2012年12月21日以后的数据丢失了

huacnlee · 2013年01月05日 · 最后由 yuchenzhang 回复于 2013年01月14日 · 15105 次阅读

抱歉各位,我今天手误,在服务器上面测试 Markdown 效果的时候,误将线上数据库删除了....(被删除的原因是 RAILS_ENV=production 的环境变量下面执行了 rspec spec 跑测试,结果里面的删除数据库的代码直接把线上数据库给删除了....)

由于最近的一次数据库备份只有在 2012 年 12 月 21 日,所以以后的数据都掉了

那会看到你说用 beta.ruby-china.org, 数据库是正式环境数据库的时候就隐隐感到一丝不安。。

职业生涯的重大污点

默哀三分钟

默哀第三分钟

回到末日前

WTF shit happened...

Where is the backup?

#1 楼 @diudiutang 倒是和那个没关系

我本来打算在服务器上面跑一下 rspec 看看测试用例在线上服务器上面能否跑通的,但没预料到服务器上面以及将 RAILS_ENV 固定设置成了 production,而 ruby-china 里面正好又那么一处漏洞代码

ENV["RAILS_ENV"] ||= 'test'
require File.expand_path("../../config/environment", __FILE__)
require 'rspec/rails'
require 'rspec/autorun'
....

用了 ENV["RAILS_ENV"] ,结果当我执行 rspec spec 的时候,后面的 DatabaseCleaner 就将数据库咔嚓了...

代表 RubyChina 社区向大家表示道歉。

我正准备看那个教人写测试的系列呢。。。。啊啊啊啊啊啊啊

没事没事,大家也没有太多非要长期存在的帖子,真正重要的重建一下就是了……

#10 楼 @iamzhangdabei 测试君连载了十几篇就这么悲剧啦

#12 楼 @diudiutang 呼叫测试君。但愿他自己有备份

有人用 google reader 订阅过么。。好像可以从里面恢复一些帖子

备份时间是2012年12月21日,世界菌没有挂,数据库却回档了。。。

还可以用搜索引擎恢复~

另外,之前没有太注意,这个备份还是我上次想倒份数据到本地测试的时候备份的,上次迁移服务器以后自动备份都还没有跑起来。

悲剧了!类似的这事我想应该有不少人发生过吧,应该想想办法了!

没事 正好应了我昨天犯错自己总结那句话 mistake is leading to experience. 兄弟们 大不了从头再来。。。

再过一次世界末日么?

#17 楼 @libuchao 现订阅也可以耶。内容都在。。不过 回复就没了。

默哀第三分钟 😰:u7981:

难道预示了 2012-12-21 末日会穿越过来。。。。

多年以后,我们仍未知道 2012.12.21 那天之后 Ruby China 发生了什么……

悲剧...

看到备份的重要性了啊。

目睹了从有帖子到没帖子到 50x 的全过程

历史一次次证明,没有备份是不行的。在服务器上测试是不严肃的。

还好不是银行存款。

回到末日么。。还好有备份,虽然备份不是很及时。。

应该给 rspec 来个 patch,production 下禁止运行、或者给出明确的警告

还以为是刚爆出的 rails 注入漏洞

世界末日是不允许被超越的 ...

我也有订阅,不知道有没有什么用处…

目测从 12 月 21 日到现在,有接近 210 名会员的注册信息丢失。

╮(╯▽╰)╭

我说怎么首页空白了...

正所谓‘世事难预料’嘛 :) 希望有存底的同学能把帖子给补上来哈。

默哀,看来要影响备份的好习惯呀。至少每日备份一次。

我又注册了一次

默哀。。

为啥没有 daily backup … 侥幸心理要不得 ……

对所有 ruby-china 的会员来说都是一次很直观的教育,那就是对于 production 环境一定要定时备份。

@huacnlee 我还以为被我测试测挂了

我之前也遇到类似的问题,是服务器硬盘坏了,数据库有近 2 天的备份,但是丢失了 3 个月的静态文件。

51 楼 已删除

在 test_helper 里判断一下如果是 production 直接 exit! ?

关键数据光靠 cron jobs 是不够的,时不时的人肉冷备份,最好还有文件系统 snapshot 快照备份。好的备份策略至关重要!

没备份,神也回天乏力。

这里码农居多,做不好 SA / SRE 的活儿也正常(否则要 DevOps 作甚?!),权当是个教训吧。Learn from your mistakes.

收藏的帖子少了好几篇,作者不容易啊。 我记事本里一些重要数据丢了

没误删过数据的 SA 只有新手。。。

@huacnlee 想问个问题,我看 ruby-china 的源代码,rspec 好像没有在 production 环境下面安装啊,怎么跑得了 rspec spec 的?

好吧,我要讲一下我的两个经历: 1.那时,我还完全是个 java 程序员,因为要确定一下测试那边所说问题的原因,就在本地连上了测试那边的数据库,后来清理数据,不知不觉就把人家的测试数据都清理了,不知道给人家造成了多大的影响,不过测试的同事脾气都很好,对我算是宽大处理了… 2.因为经常要查看生产环境数据库 (也是查问题原因),就在 pgAdmin 中保存了一个连接信息,有一次查看了问题后,又马上要改 bug,要删除一个表的数据时,就把生产环境下的数据给干掉了,而且连备份都没有!幸好数据都是从远程数据库同步过来,于是可以同步一遍,但丢了部分后续业务处理却是无法挽回了!从后续的测试问题看,也造成了很大的影响…

于是从此以后,每当连完生产环境数据库,都马上断开 pgAdmin 的链接,或者直接去删除链接……

每次出问题都觉得一定要备份数据...但每次弄都说我明天再弄....= =

曾经有次误操作把 opt 目录干掉....

哎,其实 2012 我也不小心 drop 了一次生产库,不过唯一庆幸的是用的 Oracle,然后有 archive log 可以 restore database 到之前的一个时间点……

whenever+backup 每天一备份。。。

讲风险管理其中有一类就是这种,以这个习惯或者方式很少会有问题,可能几年出现一次的概率,但是这一次足以让你记忆很多年。

国人总是做不好第四象限的事情。

所以要认可公司的 ppqa,epg,信息安全,pmo 等等程序员认为闲杂的人员。在没有这些人员的小团对,某个人心里得照顾到这些事。

@luikore @fsword 几位发的语言贴很好啊 能恢复就好了

木有 binlog 吗?可以从 binlog 中做恢复

(⊙o⊙)…世界又轮回了…

匿名 #66 2013年01月05日

直接处理下 log 恢复应该不难,如果有详细的 Rails log 的话。

可以理解,大家都不容易,支持 ruby-china 社区,希望社区越来越强大!

噢... 我今天刚好经历了这场灾难.~~ 重发帖子...

为什么要在服务器上面跑测试,太危险了。在机子上测试好了再传代码。

我的数据每三天一次备份。用 cron job

一夜回到圣诞前啊...

话说两年前实习的时候 在给用户 demo 10 分钟前把整个数据库给 drop 了 = =...

#71 楼 @leozwa 后来怎么办了?

#72 楼 @blacktulip 就...推到第二天 demo 了...

同意 61 楼。每天备份一次。

看来得谨慎操作线上数据库啦

#55 楼 @linjunhalida 同意,谁没傻逼过呢

自从我用 rm -rf 干掉一个线上 oracle 的将近 50G 的数据文件后,我就再也不敢在生产环境里测试了。。

我的账号好像还在~

于是我马上决定把项目分离测试生产环境了

自从俺在生产机的根目录里 chmod 777 -R 以后,俺再也没用 root 登录过生产机。

我的那帖:印式英语的帖子好像没了,那个伙计的学英语的热帖也没了。 crontab 30 3 * * * mysqldump -uroot -ppassword "一群傻逼" >/usr/local/的梦话{#date}.sql.bak 可以有

默哀,还好,重要的数据不是很多。

另外吐槽一下,盛大云不提供数据回滚功能吗?或是 mongodb 没有回滚功能吗?我知道关系型数据一般都可以按照 log 回滚数据。之前开发过程中经常用 oracle 的快照恢复数据。

@李滑溜,今天的彩票就不要买了吧

手机版不支持 github 登录吗?

没关系,数据库丢失这事儿玛雅人早就预测到了,所以我这段时间一直没上 Ruby China ;)

我登录就是为了去点那个喜欢...

我靠,两篇帖子莫名其妙被删了,我还以为我哪犯规了呢……

默哀吧。。。

ruby-china.org 是使用什么 DB 的?

可以每天增量备份。 或只备份每天的 sql 语句,恢复时只要执行一遍 sql 语句。

rss feed 里面还有数据哦,不知道可不可以用它来导入

默哀,追悼一下以前的帖子。

98 楼 已删除

rails 备份有没有啥 best practice? 大家都预防性学习一下。。。

@huacnlee 可以考虑一下云服务器,阿里云提供的 RDS 服务还行,我们爱海豚网站就是部署在那里的。

刚有同事

mkdir ~

据说屏幕上出现了美女。

我刚刚在稀里糊涂的回复以前回复过的帖子。。。

@luikore 宙哥的几篇大作也消失了?

#104 楼 @luikore 不是

rm -rf $ ~

吗?

#105 楼 @sunfmin 刚测试了一下,原来没加引号是会删掉 HOME 的...

rm -rf -- '~'

#106 楼 @luikore 我不信你测过

#107 楼 @sunfmin 去掉 -rf 看提示就行了啊

那我也不试

#109 楼 @sunfmin 虚拟机试验无压力...

112 楼 已删除
匿名 #115 2013年01月08日

我是新注册一个 ID 来谴责楼主的

@huacnlee 盛大云没有备份,没有备份还叫云存储啊。与亚马逊云服务差了不是一点半点。

那我就再注册一次了,呵呵

我说呢,我原来的账号和在招聘区发的帖子都没了。。。。 我们这个服务器没有数据备份吗?

fsword 总结教训 提及了此话题。 04月03日 10:56
需要 登录 后方可回复, 如果你还没有账号请 注册新账号