我有两个亚马逊RDS实例(一个用于生产,另一个用于开发/测试)。现在我想将一个数据库从生产实例恢复到我的开发实例。我正在对生产实例进行快照,但是没有选项可以从另一个实例恢复快照到开发实例。
有没有不下载快照的方法来完成这个操作?
有没有不下载快照的方法来完成这个操作?
从快照还原意味着创建一个新的RDS实例,因此您将基本上用新实例替换旧的开发实例。
首先,您必须删除或重命名原始开发实例,否则它的名称不能用于新实例。
如果您想要一个同时具有开发模式和生产模式的RDS实例,则必须使用特定于数据库的工具(例如,如果您正在使用MySQL,则使用mysqldump,如果使用Oracle,则使用数据泵等)传输数据。
您可以修改(生产)快照上的属性,允许另一个AWS账户(在您的情况下为Dev)访问它
aws rds modify-db-snapshot-attribute --db-snapshot-identifier $SNAPSHOT_NAME --attribute-name restore --values-to-add "<ACCOUNT NUMBER FOR DEV>" --output=json
属性名称 = 恢复,因为您正在使用开发人员帐户从此快照中恢复。
在您的开发控制台上,您将在“共享快照”中找到此选项。
自2015年末开始,AWS已将快照共享作为一项功能添加。
mysqldump
将数据从新实例转移到旧的开发实例(然后您可以删除恢复操作创建的新实例)...无论哪种方式,都不会影响生产环境。此外,在mysqldump
中添加--single-transaction
应该可以防止锁定,如果您正在使用InnoDB。 - Michael - sqlbot