从另一个实例还原快照

4
我有两个亚马逊RDS实例(一个用于生产,另一个用于开发/测试)。现在我想将一个数据库从生产实例恢复到我的开发实例。我正在对生产实例进行快照,但是没有选项可以从另一个实例恢复快照到开发实例。
有没有不下载快照的方法来完成这个操作?
3个回答

4

从快照还原意味着创建一个新的RDS实例,因此您将基本上用新实例替换旧的开发实例。

首先,您必须删除或重命名原始开发实例,否则它的名称不能用于新实例。

如果您想要一个同时具有开发模式和生产模式的RDS实例,则必须使用特定于数据库的工具(例如,如果您正在使用MySQL,则使用mysqldump,如果使用Oracle,则使用数据泵等)传输数据。


1
谢谢回复。我已经在我的开发实例上使用mysqldump来恢复数据库。但这是非常耗时的工作,而且在从生产实例备份时也会出现读取阻塞(这是非常糟糕的情况)。 - Manish Sapkal
@ManishSapkal 这个答案告诉你的是,你需要将快照恢复到一个新的实例上,然后要么删除旧的开发实例并开始使用这个新实例进行开发,要么使用mysqldump将数据从新实例转移到旧的开发实例(然后您可以删除恢复操作创建的新实例)...无论哪种方式,都不会影响生产环境。此外,在mysqldump中添加--single-transaction应该可以防止锁定,如果您正在使用InnoDB。 - Michael - sqlbot
感谢 @Michael-sqlbot,我已经准备好使用新的开发实例了。但是我该如何恢复生产实例的快照?是否有选择其他实例快照的选项? - Manish Sapkal
3
不行。恢复快照始终会创建新的实例,而不是修改现有实例。详情请见:http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_RestoreFromSnapshot.html - Michael - sqlbot

0

您可以修改(生产)快照上的属性,允许另一个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

属性名称 = 恢复,因为您正在使用开发人员帐户从此快照中恢复。

在您的开发控制台上,您将在“共享快照”中找到此选项。


0

请把必要的部分带到这里,可以吗? - Enamul Hassan
@manetsus:我很想这样做,但我不确定AWS会不会因为这样起诉我。 - Jamboree
你应该给予适当的归属。这样不是足够好吗? - Enamul Hassan

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