RDS Custom for Oracle 复制的指南和限制 - Amazon Relational Database Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

RDS Custom for Oracle 复制的指南和限制

创建 RDS Custom for Oracle 副本时,并非所有 RDS Oracle 副本选项都受支持。

RDS Custom for Oracle 复制的一般指南

使用 RDS Custom for Oracle 时,请遵循以下指南:

  • 您只能在 Oracle Enterprise Edition 中使用 RDS Custom for Oracle 复制。不支持 Standard Edition 2。

  • 强烈建议您实施 VPN 隧道来加密主实例和备用实例之间的通信。有关更多信息,请参阅 在 RDS Custom for Oracle 主实例和副本实例之间配置 VPN 隧道

  • 不要修改 RDS_DATAGUARD 用户。此用户保留用于 RDS Custom for Oracle 自动化。修改此用户可能会导致不希望的结果,例如无法为 RDS Custom for Oracle 数据库实例创建 Oracle 副本。

  • 不要更改复制用户密码。管理 RDS Custom 主机上的 Oracle Data Guard 配置需要使用此密码。如果您更改密码,RDS Custom for Oracle 可能会将您的 Oracle 副本置于支持外围之外。有关更多信息,请参阅 RDS Custom 支持外围

    此密码存储在 Amazon Secrets Manager 中,用数据库资源 ID 进行标记。每个 Oracle 副本在 Secret Manager 中都有自己的密钥。密钥使用以下任一命名格式。

    do-not-delete-rds-custom-db-DB_resource_id-uuid-dg rds-custom!oracle-do-not-delete-DB_resource_id-uuid-dg
  • 不要更改主数据库实例的 DB_UNIQUE_NAME。更改名称会导致任何还原操作卡住。

  • 不要在 RDS Custom CDB 的 CREATE PLUGGABLE DATABASE 命令中指定子句 STANDBYS=NONE。这样,如果发生失效转移,您的备用 CDB 将包含所有 PDB。

RDS Custom for Oracle 复制的一般限制

RDS Custom for Oracle 副本具有以下限制:

  • 无法在只读模式下创建 RDS Custom for Oracle 副本。但是,您可以将已挂载副本的模式手动更改为只读,以及从只读更改为已挂载。有关更多信息,请参阅 create-db-instance-read-replica Amazon CLI 命令的文档。

  • 您无法创建跨区域 RDS Custom for Oracle 副本。

  • 您无法更改 Oracle Data Guard CommunicationTimeout 参数的值。对于 RDS Custom for Oracle 数据库实例,此参数设置为 15 秒。

RDS Custom for Oracle 复制的网络要求和限制

确保您的网络配置支持 RDS Custom for Oracle 副本。请考虑以下事项:

  • 确保为主数据库实例和其所有副本的虚拟私有云(VPC)内的入站和出站通信启用端口 1140。这对于只读副本之间的 Oracle Data Guard 通信是必需的。

  • RDS Custom for Oracle 会在创建 Oracle 副本时对网络进行验证。如果主数据库实例和新副本无法通过网络连接,则 RDS Custom for Oracle 不会创建副本并将其置于 INCOMPATIBLE_NETWORK 状态。

  • 对于外部 Oracle 副本,例如您在 Amazon EC2 或本地创建的只读副本,请使用另一个端口和侦听器进行 Oracle Data Guard 复制。尝试使用端口 1140 可能会导致与 RDS Custom 自动化发生冲突。

  • /rdsdbdata/config/tnsnames.ora 文件包含映射到侦听器协议地址的网络服务名称。请注意以下要求和建议:

    • 当处理 Oracle 副本操作时,tnsnames.ora 中前缀为 rds_custom_ 的条目保留用于 RDS Custom。

      tnsnames.ora 中创建手动条目时,不要使用此前缀。

    • 在某些情况下,您可能希望手动切换或进行失效转移,或者使用快速启动失效转移 (FSFO) 等失效转移技术。如果是这样,请确保将 tnsnames.ora 条目从主数据库实例手动同步到所有备用实例。此建议同时适用于 RDS Custom 管理的 Oracle 副本和外部 Oracle 副本。

      RDS Custom 自动化只会更新主数据库实例上的 tnsnames.ora 条目。请务必在添加或删除 Oracle 副本时也要进行同步。

      如果您不同步 tnsnames.ora 文件并且手动切换或失效转移,主数据库实例上的 Oracle Data Guard 可能无法与 Oracle 副本进行通信。

RDS Custom for Oracle 的外部副本限制

RDS Custom for Oracle 外部副本(包括本地副本)具有以下限制:

  • RDS Custom for Oracle 在手动失效转移(如 FSFO)时不会检测到外部 Oracle 副本的实例角色更改。

    RDS Custom for Oracle 的确会检测托管式副本的更改。角色更改在事件日志中进行了记录。您还可以通过使用 describe-db-instances Amazon CLI 命令查看新状态。

  • RDS Custom for Oracle 不检测到外部 Oracle 副本的高复制滞后。

    RDS Custom for Oracle 的确会检测托管式副本的滞后。高复制滞后会产生 Replication has stopped 事件。您还可以通过使用 describe-db-instances Amazon CLI 命令查看复制状态,但它的更新可能会延迟。

  • 如果您删除主数据库实例,RDS Custom for Oracle 不会自动提升外部 Oracle 副本。

    自动提升功能仅适用于托管式 Oracle 副本。有关手动提升 Oracle 副本的信息,请参阅白皮书在 Amazon RDS Custom for Oracle 上使用 Data Guard 启用高可用性