将 RDS 实例恢复到 backup/snapshot
Restoring an RDS Instance to a backup/snapshot
我正在尝试 RESTORE 一个 RDS 实例到它之前的一个 backups/snapshots,但是当我按照 Amazon 提供的说明进行操作时 从备份中创建一个新实例,而不是恢复现有实例。
我只想将数据库恢复到现有状态,因为我有一个指向它的 EC2 实例(通过负载均衡器管理),我不想进入并指向新的 RDS .
如何将 RDS 实例恢复到以前的时间点 而不是 从 backup/snapshot
创建新实例
简短的回答是你不能:
You can't restore from a DB snapshot to an existing DB instance; a new
DB instance is created when you restore.
从这里开始:
https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_RestoreFromSnapshot.html
还原到新的 RDS 实例。然后将原始 rds 服务器重命名为其他名称并立即应用更改。处理更改后(2-3 分钟),将还原实例重命名为与原始 rds 相同的名称并立即应用。
单个账户中的RDS dns名称仅在初始部分有所不同,该部分取自RDS实例名称。
如果您有 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]
}
}
我正在尝试 RESTORE 一个 RDS 实例到它之前的一个 backups/snapshots,但是当我按照 Amazon 提供的说明进行操作时 从备份中创建一个新实例,而不是恢复现有实例。
我只想将数据库恢复到现有状态,因为我有一个指向它的 EC2 实例(通过负载均衡器管理),我不想进入并指向新的 RDS .
如何将 RDS 实例恢复到以前的时间点 而不是 从 backup/snapshot
创建新实例简短的回答是你不能:
You can't restore from a DB snapshot to an existing DB instance; a new DB instance is created when you restore.
从这里开始:
https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_RestoreFromSnapshot.html
还原到新的 RDS 实例。然后将原始 rds 服务器重命名为其他名称并立即应用更改。处理更改后(2-3 分钟),将还原实例重命名为与原始 rds 相同的名称并立即应用。
单个账户中的RDS dns名称仅在初始部分有所不同,该部分取自RDS实例名称。
如果您有 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]
}
}