【问题标题】:AWS - RDS - Restoring database from snapshot everydayAWS - RDS - 每天从快照恢复数据库
【发布时间】:2021-01-05 21:05:56
【问题描述】:

我想知道是否可以在特定时间每天从快照恢复 AWS 上的数据库?我的意思不是创建新实例,只是恢复数据库以获得默认数据。

我需要这个,因为我写了一些 Django 应用程序并将她放在 Heroku 上。人们可以在那里添加一些记录并制造一些混乱。我希望每天从不必要的数据中将数据库恢复到“清理”站点。

谢谢

【问题讨论】:

  • 就个人而言,我会在/etc/cron.daily 中放置一个包含所需命令(manage.py reset_db 等)的简单 shell 脚本。

标签: database amazon-web-services amazon-rds restore snapshot


【解决方案1】:

没有什么能阻止你这样做。

我会按照以下方式构建它:

  1. 创建 CNAME 记录以指向当前数据库实例的 DNS 记录
  2. 在您的应用程序中引用该 CNAME
  3. 创建每天触发的 lambda
  4. 使用该 Lambda 从已知良好的快照创建一个新的数据库实例
  5. 之后 lambda 应该将 CNAME 记录从 1) 更新为指向新实例
  6. 然后删除旧实例而不制作最终快照

您可以利用 AWS Step Functions 来编排 4-6,因为数据库操作需要时间并且 lambda 运行时是有限的。

或者,您可以将数据库的已知良好状态导出为 SQL 语句(研究:sqldump),然后编写一个每天触发一次的 lambda 函数,删除旧模式并从已知良好状态创建新模式转储。

如果数据库很小,我会选择第二种选择。对于较大的,我可能会坚持第一个。请注意,第二个将有一段短暂的时间,应用程序无法访问正常运行的数据库。

【讨论】:

    猜你喜欢
    • 2022-07-14
    • 2021-04-19
    • 2022-06-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-26
    • 2015-11-22
    • 2021-11-04
    相关资源
    最近更新 更多