我已经创建了我的实例的快照,并在数据库中做了一些不必要的更改。
现在我想从这个快照中恢复我的实例。
当我尝试这样做时 - 除了我拥有的那个之外,它还创建了一个实例。
我指定"数据库实例标识符"然后我得到两个具有相同ID的实例。
所以我的问题:有没有办法将快照恢复到现有实例?
因为在其他情况下 - 使用不同的端点(主机名)创建新实例,我需要更改我的配置以访问数据库。或者有更好的方法来管理这种情况?
答案 0 :(得分:44)
否则您无法将现有数据库实例还原为任何手动备份或时间点快照。
您可以使用手动备份或自动快照的唯一方法是使用它创建新的RDS数据库实例。创建新的数据库实例后,您可以在应用程序/代码中更改数据库的端点并删除旧的数据库实例。
底线:您必须更改应用中的配置设置。别无选择。
答案 1 :(得分:44)
如果有人来这里(就像我一样)只是在不改变配置的情况下恢复数据。
以下是步骤:
答案 2 :(得分:16)
重命名原始实例并使用原始名称命名新实例
https://aws.amazon.com/blogs/aws/endpoint-renaming-for-amazon-rds/
答案 3 :(得分:7)
我今天遇到了同样的问题。我认为您有两个选项而无需更改应用程序的配置设置。
删除Mike建议的旧实例,然后将其恢复。
首先重命名旧实例(重命名时需要选中“立即应用”选项)。
答案 4 :(得分:0)
如@MaXimus所说(我还不能添加评论),您可以:
Renaming to Replace an Existing DB Instance
在此处指定:https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_RenameInstance.html
答案 5 :(得分:0)
使用新名称创建还原的数据库后,可以将当前实例重命名为...- old,这也将重命名数据库URL。更改了URL后,还必须将已还原的数据库重命名为以前使用的名称,请等待直到数据库的URL更改为止。然后,您必须重新启动服务,它们将连接到已还原的数据库。
这完全不会造成中断。
答案 6 :(得分:0)
如果要通过AWS CLI运行的解决方案。将 ORIG_NAME 和 NEW_NAME 替换为您的值
$ aws rds modify-db-instance \
--db-instance-identifier ORIG_NAME \
--new-db-instance-identifier NEW_NAME \
--apply-immediately
$ aws rds restore-db-instance-to-point-in-time \
--source-db-instance-identifier NEW_NAME
--target-db-instance ORIG_NAME \
--restore-time 2020-08-27T00:00:00.000Z \
--publicly-accessible \
--availability-zone us-east-2a \
--db-subnet-group-name SUBNET_NAME \
--vpc-security-group-ids SG_ID
--db-subnet-group-name
--vpc-security-group-ids
--publicly-accessible
因此, aws rds restore-db-instance-to-point-time-时间点的简短版本为:
$ aws rds restore-db-instance-to-point-in-time \
--source-db-instance-identifier NEW_NAME
--target-db-instance ORIG_NAME \
--restore-time 2020-08-27T00:00:00.000Z \