5

我有一个在 Heroku 上运行的 rails 应用程序,使用他们的标准 postgres 数据库和托管在 s3 上的图像。

我应该如何负责任地进行备份?

到目前为止,我每月都会下载我的应用程序代码、s3 文件和数据库快照,并将其存储在外部驱动器上。从 s3 下载我的文件非常慢,我预计随着时间的推移它会变得更糟。

4

3 回答 3

2

我一直在使用 PG Backups Heroku 插件:

https://devcenter.heroku.com/articles/pgbackups

它备份您的 postgres 数据库,并且可以配置为每天存储备份(或者如果需要,可以更频繁地存储)。我一般推荐它用于数据库的基本备份。

我只需将代码副本保存在 github(或其他一些 git 存储库)的存储库中。Github 很棒,我想不出做其他事情的理由。

S3 本身非常安全可靠。以下是他们产品信息的摘录:

Amazon S3 提供了一个高度耐用的存储基础设施,专为关键任务和主要数据存储而设计。对象冗余存储在 Amazon S3 区域中跨多个设施的多个设备上。为帮助确保持久性,Amazon S3 PUT 和 COPY 操作在返回 SUCCESS 之前将您的数据同步存储在多个设施中。

如果从 S3 获得所有文件的安全副本很重要,我可能会设置某种定期安排的批处理作业,将它们复制到我可以单独备份的服务器。我过去曾使用S3 工具来执行此操作:

http://s3tools.org/s3cmd

于 2012-05-07T23:57:48.583 回答
0

我只需要归档一个站点,在该站点上,用于推送它的 git 存储库的访问权限并不容易获得。我使用 heruku cli 执行了以下操作。

  • 登录
  • heroku git:clone -a your-app-name
  • heroku pg:backups:capture -a your-app-name
  • heroku pg:backups:download -a your-app-name

完成后,您将拥有一个代码目录和一个名为“latest.dump”的数据库转储,我建议您将其重命名为包含应用程序名称。

所有这些都相当容易编写脚本。

于 2017-08-09T22:53:24.650 回答
0

对于自动备份,您只需要配置heroku-db-backup-s3 buildpack。并按照文档中的说明重新安排它。

于 2018-06-13T19:14:05.250 回答