AWS RDS 备份

3

我最近开始使用AWS和Elastic Beanstalk与RDS。

我想知道创建数据库备份的最佳实践是什么?

到目前为止,我的设置如下:

  1. 启用自动备份。
  2. bash脚本每天创建手动快照,并删除8天前的手动快照。
  3. bash脚本创建数据库的sql转储,并将其上传到S3。

我创建手动快照的原因是如果我误删了数据库,那么我仍然有快照。

这些bash脚本在使用允许执行这些脚本的IAM角色启动的EC2实例上。

我做得对吗?

非常感谢回答,谢谢。

1个回答

2

背景说明...

自动备份在数据库删除后不会被保存,这是一个非常重要的技术陷阱。我见过团队中的开发人员因此受到困扰,所以感谢你提出这个问题。

在删除DB实例后,RDS将无限期保留此最终DB快照和所有其他手动DB快照。但是,删除DB实例时将删除所有自动备份,并且无法恢复。 来源

我认为对于大多数人来说,最终的快照就足够了。

现在进入问题...

  1. 是的。百分之110。绝对没问题。

  2. 我不会创建手动快照;相反,复制自动快照。

    选项1:您已经有可用的自动快照。为什么不只是复制自动快照(减少不必要的数据库负载;尽管如果您是多AZ,从副本中进行快照将减轻此问题),这将创建一个手动快照。我会使用aws sdk和cron job自动化此过程。

    选项2:需要手动遵守。在终止DB之前,只需复制您的自动快照(以创建手动快照)。

  3. 不清楚为什么需要s3转储,如果您有快照。

    用于模式更改吗?:如果您要进行模式更改,则应使用迁移处理(我们使用knex.js,但可以选择其他方式)。如果这太困难了,请记住有一个仅模式的转储选项(pg_dump --schema-only)。更加可管理。

    获取数据?:您的快照已经在s3上,请参见常见问题。您始终可以加载快照并选择sql转储。我没有立即看到明显的理由来故意复制您的数据。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接