我正在尝试将RDS实例恢复到其先前的备份/快照之一,但按照Amazon提供的指示操作时,它会从备份创建一个新实例,而不是还原现有实例。
我想只需将数据库恢复到现有状态,因为我有一个EC2实例指向它(通过负载均衡器进行管理),而我希望不必进入并指向新的RDS。
如何将RDS实例恢复到以前的某个时间点,而不是从备份/快照创建新实例?
恢复到新的RDS实例。然后将原始rds服务器重命名为其他名称并立即应用更改。一旦更改被处理(2-3分钟),将恢复实例重命名为与原始rds相同的名称并立即应用。
在单个帐户中,RDS dns名称仅因初始部分而异,该初始部分取自RDS实例名称。
简短的回答是你不能:
在现有的DB实例中无法从数据库快照还原;还原时会创建一个新的DB实例。
详见:
https://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/USER_RestoreFromSnapshot.html
resource "aws_db_instance" "prod" {
allocated_storage = 10
engine = "mysql"
engine_version = "5.6.17"
instance_class = "db.t2.micro"
name = "mydb"
username = "foo"
password = "bar"
db_subnet_group_name = "my_database_subnet_group"
parameter_group_name = "default.mysql5.6"
}
data "aws_db_snapshot" "latest_prod_snapshot" {
db_instance_identifier = aws_db_instance.prod.id
most_recent = true
}
# Use the latest production snapshot to create a dev instance.
resource "aws_db_instance" "dev" {
instance_class = "db.t2.micro"
name = "mydbdev"
snapshot_identifier = data.aws_db_snapshot.latest_prod_snapshot.id
lifecycle {
ignore_changes = [snapshot_identifier]
}
}