![如何进行异地 AWS RDS PostgreSQL 备份?](https://linux22.com/image/679181/%E5%A6%82%E4%BD%95%E8%BF%9B%E8%A1%8C%E5%BC%82%E5%9C%B0%20AWS%20RDS%20PostgreSQL%20%E5%A4%87%E4%BB%BD%EF%BC%9F.png)
作为缓解灾难的措施,例如恶意实体获得我们 AWS 账户的完全访问权限,以及删除所有内容,我正在为我们的生产数据库设置异地备份。我们在 AWS RDS 上使用 PostgreSQL。我们在 RDS 上启用了每日备份。
我想到了以下两个选择:
1)(每日)下载 RDS 生成的数据库快照(虽然我不确定这是否可以编写脚本甚至是否可行)
2)(每日)启动只读副本并在该副本上使用 pg_dump 备份数据库
实现这一目标的最佳方法是什么?
如果这有帮助的话我们已经有一个工具可以每天备份我们的 s3 存储桶。
答案1
您可以选择将 RDS 快照复制到另一个 AWS 账户。这是一种常用的做法。
可以通过以下方式实现:
- 与您的第二个 AWS 账户共享您的 RDS 快照。
- 将 RDS 快照从源账户复制(“拉取”)到目标账户。
- 删除源快照上的共享。
https://aws.amazon.com/blogs/aws/amazon-rds-update-cross-account-snapshot-sharing/
答案2
我还想对我的 AWS RDS 以及代码、日志等进行异地备份。我通过以下方式进行备份:
- 定期(对我来说,每晚午夜)将数据库导出到给定目录中
- 拥有阁楼备份备份该目录。这会进行差异、压缩、重复数据删除备份。它会保留每周、每月和每年的快照 - 如果需要回滚,可以配置这些快照。我还以同样的方式备份了我的 webroot 和日志。
- 然后我使用一个脚本将 Attic 备份同步到 Dropbox。您也可以使用 BitTorrent Sync、FTP 或您喜欢的其他任何方式。
我打算花点时间把这一切都记录下来,但这真的很简单。
2017 年更新
我停止使用 Attic,因为它没有得到积极的开发或支持。我使用Borg 备份用于重复数据删除备份,它是 Attic 的一个分支。
Borg 备份存储在我的文件系统中。我使用以下方式将这些文件同步到 AWS S3:S3同步。如果我现在设置它,我会考虑使用S3FS将备份直接写入 S3,尽管 S3FS 不是一个完整的文件系统,所以在这种情况下它可能不太适用。