【问题标题】:AWS RDS BackupsAWS RDS 备份
【发布时间】:2017-03-15 11:13:18
【问题描述】:
所以我最近开始将 AWS 和 Elastic Beanstalk 与 RDS 结合使用。
我想知道创建数据库备份的最佳做法是什么?
到目前为止,我的设置是这样的。
- 启用自动备份。
- bash 脚本每天创建手动快照并删除超过 8 天的手动快照。
- bash 脚本,用于创建数据库的 sql 转储并将其上传到 S3。
我创建手动快照的原因是如果我错误地删除了数据库,那么我仍然有快照。
bash 脚本位于使用允许执行这些脚本的 IAM 角色启动的 EC2 实例上。
我在正确的轨道上吗?
非常感谢您的回答,谢谢。
【问题讨论】:
标签:
database
amazon-web-services
rds
【解决方案1】:
一点上下文...
删除数据库后不保存自动备份是一个非常重要的技术问题。我已经看到它让团队中的开发人员措手不及,所以感谢您提出这个问题。
删除数据库实例后,RDS 会无限期保留此最终数据库快照和所有其他手动数据库快照。但是,当您删除数据库实例时,所有自动备份都将被删除且无法恢复。 source
我怀疑对于大多数人来说,最终快照就足够了。
关于手头的问题...
是的。 110%。绝对的。
-
我不会创建手动快照;相反,复制自动化的。
选项 1:您已经拥有可用的自动快照。为什么不直接复制自动快照(减少不必要的数据库负载;但是,如果您是多可用区,因为您将从副本中进行快照,这无疑不是问题),它创建了手动快照.我会使用 aws sdk 和一个 cron 作业自动执行此操作。
选项 2:需要手动遵守。只需在终止数据库之前复制您的自动快照(以创建手动快照)。
-
如果您有快照,不清楚为什么需要 s3 转储。
对于架构更改?:如果您正在为架构更改执行此操作,则应该通过迁移来处理这些问题(我们使用knex.js,但请选择您的毒药)。如果那是一座过分的桥梁,请记住有一个仅用于模式转储的选项 (pg_dump --schema-only)。更易于管理。
获取数据?:您的快照已在 s3 上,请参阅 faq。您始终可以加载快照,如果您愿意,可以通过 sql 转储它。我没有看到故意复制您的数据的明显原因。