You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Terraform创建Oracle RDS实例及跨区域复制报错咨询

Terraform Oracle RDS 副本配置错误修复方案

错误原因

Terraform的aws_db_instance资源中,Oracle RDS只读副本的创建逻辑与MySQL等引擎不同,不支持通过source_db_instance_identifier参数指定源实例,必须使用replicate_source_db嵌套块来配置源实例信息。同时,副本会自动继承源实例的引擎、版本、账号密码等核心配置,无需重复定义这些参数。

修改后的配置代码

同区域副本(us-east-1)

resource "aws_db_instance" "replica" {
  for_each               = { replica1 = 1 }  # 可调整数量或添加更多副本
  identifier             = "my-oracle-replica-${each.key}"
  instance_class         = "db.m5.large"
  publicly_accessible    = false
  skip_final_snapshot    = true
  vpc_security_group_ids = ["sg-0afeaf6497b1f3364"]
  parameter_group_name   = "default.oracle-ee-19.0"

  # 使用replicate_source_db块指定源实例
  replicate_source_db {
    identifier = aws_db_instance.main.identifier
  }

  tags = {
    Name = "mydb-replica-${each.key}"
  }
}

跨区域副本(us-west-1)

跨区域副本需要额外指定源实例所在的区域:

resource "aws_db_instance" "replica_us_west" {
  provider               = aws.us_west
  for_each               = { replica1 = 1 }  # 可调整数量或添加更多副本
  identifier             = "my-oracle-replica-us-west-${each.key}"
  instance_class         = "db.m5.large"
  publicly_accessible    = false
  skip_final_snapshot    = true
  vpc_security_group_ids = ["sg-034dc2c037d48ebbc"]
  parameter_group_name   = "default.oracle-ee-19.0"

  # 跨区域副本需指定源实例的区域
  replicate_source_db {
    identifier = aws_db_instance.main.identifier
    region     = "us-east-1"
  }

  tags = {
    Name = "mydb-replica-us-west-${each.key}"
  }
}

关键注意事项

  • 源Oracle实例必须开启自动备份(默认开启,若手动关闭需重新开启),跨区域副本要求源实例的备份保留期至少为1天。
  • 副本资源中不要重复定义engine、engine_version、username、password,这些配置会从源实例自动继承,手动指定会引发冲突。
  • 跨区域副本需要确保源实例所在区域与目标区域之间的RDS跨区域复制权限已配置(AWS默认允许,若有自定义权限策略需检查)。

内容的提问来源于stack exchange,提问作者sanket kurane

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 09:57:25