【发布时间】:2011-08-22 15:41:26
【问题描述】:
我正在构建一个正在快速投入生产的应用程序,我担心由于黑客攻击、一些愚蠢的个人错误(如运行 rake db:schema:load 或 rake db:rollback)或其他情况,我们可能会遭受数据丢失一个数据库表,甚至整个系统。
虽然我认为上述情况不太可能会发生,但我没有做好准备以防万一。
我正在使用 Heroku 的 PG Backups(本月将替换为其他东西),并且我还运行自动每日备份到 S3:http://trevorturk.com/2010/04/14/automated-heroku-backups/,成功生成 .dump 文件。
在生产应用中处理数据丢失的正确方法是什么?
- 如果需要,我将如何恢复
.dump文件?如果系统的一小部分被击中,我可以进行选择性恢复吗? - 如果无法进行选择性恢复:假设一个表在上次备份 4 小时后丢失数据。结果 => 修复丢失的表是否需要回滚 4 小时的用户活动?有什么好的解决办法吗?
- 如果发生这种情况,在给用户带来的不便中提供支持的最佳方式是什么?
【问题讨论】:
-
如果您还没有已经恢复备份(在非生产设备上),那么您就没有备份。
-
@CraigStuntz - 你的意思是说定期将备份恢复到某种“影子”网站很重要吗?或者你的意思是在本地恢复它们?如果用户只访问 mysite.com,这样做的目的是什么?
-
这样做的目的是备份工具可以很容易地生成在非平凡安装中实际上无法恢复的文件。只有当它们实际上可以用于生成工作服务器时,备份才是好的。
-
@CraigStuntz - S3 上的 .dump 文件不能算作能够生成工作服务器吗?
-
做备份的重点不是“做备份”。进行备份的目的是能够从备份中恢复。 IT 历史上充斥着无法使用的备份、副本和转储的故事。不要成为 Daily WTF 的下一个条目 (thedailywtf.com)
标签: ruby-on-rails ruby-on-rails-3 heroku backup data-loss