我创建了示例的快照,并在DB中做了一些不需要的更改。现在,我希望从此快照恢复我的示例。当我尝试这样做的时候--它会给我再创建一个示例,除了我已经拥有的那个。我指定了“DB示例标识符”,然后我得到了两个具有相同ID的示例。所以我的问题是:是否有办法将快照恢复到现有示例?因为在其他情况下-新的示例是用不同的端点(主机名)创建的,我需要改变我的配置来访问数据库。或者有一个更好的方法来管理这种情况?
mbyulnm01#
不,您不能将现有的数据库示例恢复到手动备份或时间点快照中的任何一个。使用手动备份或自动快照的唯一方法是使用该快照创建新的RDS DB示例。创建新的DB示例后,您可以在应用/代码中更改DB的端点并删除旧的DB示例。底线:你必须更改应用中的配置设置。没有其他选项。
rggaifut2#
如果有人来这里(就像我一样)只是恢复数据而不改变您的配置。步骤如下:
sbtkgmzw3#
重命名原始示例并使用原始名称命名新示例https://aws.amazon.com/blogs/aws/endpoint-renaming-for-amazon-rds/
kzipqqlq4#
我今天遇到了同样的问题。我认为你有两个选择,而不改变应用程序的配置设置。1.按照Mike的建议删除旧示例,然后恢复它。1.先重命名旧示例(重命名时需要选中“立即应用”选项)。
omvjsjqw5#
解决方案。请将 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-in-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
8zzbczxx6#
正如@MaXimus所说(我还不能添加评论),您可以:1.先重命名原始示例1.从快照恢复并分配原始示例名称如Renaming to Replace an Existing DB Instance中所述:https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_RenameInstance.html
Renaming to Replace an Existing DB Instance
qacovj5a7#
很晚才回答,但在研究时我发现了一种避免任何应用程序级别更改的方法。正如建议的那样,已经没有将快照导入到现有RDS的选项。一个可能的解决方案:
一次性工作
1.在路由53中创建一个私有域[在您的VPC中解析]。1.使用域/子域来指向RDS示例。1.在应用程序中使用指向的域/子域。
每次恢复快照时
1.使用快照创建新的RDS示例。1.将域/子域指向新RDS示例。1.方便时删除旧示例。
ilmyapht8#
使用新名称创建还原的数据库后,可以将当前示例重命名为... -old,这也会重命名数据库URL。URL也更改后,必须将还原的数据库重命名为以前使用的名称,等待数据库的URL更改。然后必须重新启动服务,它们将连接到还原的数据库。这根本不会导致停机。
8条答案
按热度按时间mbyulnm01#
不,您不能将现有的数据库示例恢复到手动备份或时间点快照中的任何一个。
使用手动备份或自动快照的唯一方法是使用该快照创建新的RDS DB示例。创建新的DB示例后,您可以在应用/代码中更改DB的端点并删除旧的DB示例。
底线:你必须更改应用中的配置设置。没有其他选项。
rggaifut2#
如果有人来这里(就像我一样)只是恢复数据而不改变您的配置。
步骤如下:
sbtkgmzw3#
重命名原始示例并使用原始名称命名新示例
https://aws.amazon.com/blogs/aws/endpoint-renaming-for-amazon-rds/
kzipqqlq4#
我今天遇到了同样的问题。我认为你有两个选择,而不改变应用程序的配置设置。
1.按照Mike的建议删除旧示例,然后恢复它。
1.先重命名旧示例(重命名时需要选中“立即应用”选项)。
omvjsjqw5#
解决方案。请将 ORIG_NAME 和 NEW_NAME 替换为您的值
--db-subnet-group-name
--vpc-security-group-ids
--publicly-accessible
因此,aws rds restore-db-instance-to-point-in-time的简短版本将是:
8zzbczxx6#
正如@MaXimus所说(我还不能添加评论),您可以:
1.先重命名原始示例
1.从快照恢复并分配原始示例名称
如
Renaming to Replace an Existing DB Instance
中所述:https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_RenameInstance.htmlqacovj5a7#
很晚才回答,但在研究时我发现了一种避免任何应用程序级别更改的方法。正如建议的那样,已经没有将快照导入到现有RDS的选项。一个可能的解决方案:
一次性工作
1.在路由53中创建一个私有域[在您的VPC中解析]。
1.使用域/子域来指向RDS示例。
1.在应用程序中使用指向的域/子域。
每次恢复快照时
1.使用快照创建新的RDS示例。
1.将域/子域指向新RDS示例。
1.方便时删除旧示例。
ilmyapht8#
使用新名称创建还原的数据库后,可以将当前示例重命名为... -old,这也会重命名数据库URL。URL也更改后,必须将还原的数据库重命名为以前使用的名称,等待数据库的URL更改。然后必须重新启动服务,它们将连接到还原的数据库。
这根本不会导致停机。