我正在构建一个快速投入生产的应用程序,我担心由于黑客攻击、一些愚蠢的个人错误(如运行rake db:schema:load
或rake db:rollback
)或其他情况,我们可能会在一个数据库表甚至整个系统中遭受数据丢失。
虽然我认为上述情况不太可能发生,但我没有做好准备以防万一。
我正在使用 Heroku 的 PG 备份(本月将替换为其他内容),并且我还对 S3 运行自动每日备份:http: //trevorturk.com/2010/04/14/automated-heroku-backups/,成功生成.dump
文件。
处理生产应用程序数据丢失的正确方法是什么?
- 如果需要,我将如何恢复
.dump
文件?如果系统的一小部分被击中,我可以进行选择性恢复吗? - 如果无法进行选择性恢复:假设一个表在上次备份 4 小时后丢失数据。结果 => 修复丢失的表是否需要回滚 4 小时的用户活动?有什么好的解决办法吗?
- 如果发生这种情况,在不便中支持用户的最佳方式是什么?