我正在尝试确定是否可以在 AWS 中配置 RDS 服务来执行以下操作,但我的 Google 搜索并没有取得太大的成果。
当它进行实例备份时,让它自动删除一个 RDS 实例并使用备份启动一个新实例。这里的用例是让生产数据库的夜间备份生成一个新的“暂存”数据库,用于测试而不影响生产数据。这不能是复制类型的功能,因为更改暂存数据库上的数据将有效地破坏复制。
当它进行实例备份时,让它自动将文件复制到 FTP 服务器。这样就可以随时提取夜间副本来更新本地数据库以供开发使用。
我正在考虑改进一些 DevOps 流程,并且厌倦了必须手动转储生产数据库才能使我的本地副本保持最新状态并使暂存服务器跟上进度。如果上述操作无法通过 AWS 实现,有人知道我制作一个 bash 脚本来执行一系列 AWS 控制台命令来尝试执行此操作是否会遇到任何问题,或者我可能遇到哪些问题?
答案1
1) 我很确定没有任何预先可用的自动方法来实现这一点。有一天,当 AWS Lambda 被教导如何在 RDS 备份发生后接收事件时,它可能会具备这种能力。
2) 我认为您误解了 RDS 备份的作用。它们实际上会拍摄 RDS 实例(即运行 RDS 实例的隐藏 EC2 实例)的快照。没有数据库转储文件可供您在 AWS 之外获取和存储或使用。恢复 RDS 实例备份实际上是从快照中启动一个临时的新 RDS 实例,然后复制您的数据(或将应用程序指向恢复的实例)
我强烈建议使用一个脚本,该脚本使用您的 DB 特定的转储工具(mysqldump、pg_dump 或任何适用于 SQLServer 的工具)从生产 RDS 实例转储生产数据库,然后按照您喜欢的任何时间表将其导入到预先存在的暂存 RDS 实例中。