将RDS实例还原到备份/快照

4
我正在尝试将RDS实例恢复到其先前的备份/快照之一,但按照Amazon提供的指示操作时,它会从备份创建一个新实例,而不是还原现有实例。 我想只需将数据库恢复到现有状态,因为我有一个EC2实例指向它(通过负载均衡器进行管理),而我希望不必进入并指向新的RDS。 如何将RDS实例恢复到以前的某个时间点,而不是从备份/快照创建新实例?

这个回答解决了你的问题吗?Amazon RDS:将快照还原到现有实例 - kellyfj
3个回答

5

恢复到新的RDS实例。然后将原始rds服务器重命名为其他名称并立即应用更改。一旦更改被处理(2-3分钟),将恢复实例重命名为与原始rds相同的名称并立即应用。

在单个帐户中,RDS dns名称仅因初始部分而异,该初始部分取自RDS实例名称。


不是完美的解决方案,但目前来看这是最好的选择。另一个选项是将数据从新实例导出并添加到旧实例中。例如 - mysqldump -> mysqlrestore。 - Josh J

3

0
如果您有 Terraform 经验,我发现这是从快照中进行还原的最可重复的方法。
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]
  }
}

来自terraform文档


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