使用适用于 RDS Custom for Oracle 的只读副本 - Amazon Relational Database Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

使用适用于 RDS Custom for Oracle 的只读副本

您可以为 RDS Custom for Oracle 数据库实例创建只读副本。只读副本的创建与 Amazon RDS 中的创建类似,但有一些重要的区别。有关创建和管理只读副本的一般信息,请参阅 使用只读副本使用适用于 Amazon RDS 的 Oracle 副本

创建 RDS Custom 只读副本时,并非所有选项都受支持。有关更多信息,请参阅 create-db-instance-read-replica Amazon CLI 命令的文档。

与适用于 RDS for Oracle 一样,您最多可以拥有六个托管只读副本。您可以创建自己的手动配置(外部)RDS Custom for Oracle 只读副本,这不计入限制,但它们超出了支持外围。有关支持外围的更多信息,请参阅 响应不受支持的配置

只读副本以数据库唯一名称命名,并按顺序附加字母:DB_UNIQUE_NAME_X,例如 ORCL_A。前六个字母 A–F 是为 RDS Custom 保留的。数据库参数从主数据库实例复制到副本。有关更多信息,请参阅 Oracle 文档中的 DB_UNIQUE_NAME

预设情况下,RDS Custom 只读副本使用与主数据库实例相同的备份保留期。您可以修改备份保留期。支持备份、还原和时间点恢复 (PITR)。有关备份和还原 RDS Custom 数据库实例的更多信息,请参阅 备份和还原 Amazon RDS Custom 数据库实例

网络注意事项

确保您的网络配置支持只读副本。请了解以下注意事项:

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

  • 创建只读副本期间需要执行网络验证步骤。如果主数据库实例和新副本之间的端到端网络连接不可能,只读副本创建将失败。副本被放入 INCOMPATIBLE_NETWORK 状态。

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

tnsnames.ora 文件的注意事项

tnsnames.ora 文件包含映射到侦听器协议地址的网络服务名称。在 RDS Custom for Oracle 上,此文件位于 /rdsdbdata/config 目录中。请了解以下注意事项:

  • 当处理只读副本操作时,前缀为 rds_custom_tnsnames.ora 中的条目为 RDS Custom 保留。

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

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

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

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

Limitations

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

  • 不支持跨区域只读副本。

  • 不支持删除只读副本的主数据库实例。首先删除只读副本,然后删除主副本。

  • 不支持使用 promote-read-replica Amazon CLI 命令提升只读副本,但是您可以手动提升只读副本。

    有关手动提升只读副本的信息,请参阅白皮书在 Amazon RDS Custom for Oracle 上使用 Data Guard 启用高可用性

  • RDS Custom 使用 RDS_DATAGUARD 数据库用户来管理数据库实例的 Oracle Data Guard 配置。此用户被保留用于 RDS Custom 自动化。

    请勿修改 RDS_DATAGUARD 用户。这样做可能会导致不希望的结果,例如无法为 RDS Custom 数据库实例创建只读副本。

  • Oracle Data Guard CommunicationTimeout 参数针对 RDS Custom 数据库实例设置为 15 秒,且无法更改。

  • 复制用户密码存储在 Amazon Secrets Manager 中,用数据库资源 ID 进行标记。每个只读副本在 Secret Manager 中都有自己的密钥。管理主机上的 Oracle Data Guard 配置需要使用此密码。密钥的格式如下。

    do-not-delete-rds-custom-db-DB_resource_id-6-digit_UUID-dg

    不要更改密码,因为这可能会将只读副本置于支持外围之外。有关更多信息,请参阅 响应不受支持的配置

  • 在 RDS Custom 创建只读副本时,RDS Custom 自动化会暂时暂停重做日志的清理。它这样做是为了在新只读副本可用时将这些日志应用于新只读副本。

  • RDS Custom 在手动故障转移时检测到 RDS Custom 管理的只读副本(例如 FSFO)的实例角色更改,但不能检测到外部只读副本的实例角色更改。

    角色更改在事件日志中进行了记录。您还可以通过使用 describe-db-instances Amazon CLI 命令查看新状态。

  • RDS Custom 会检测到 RDS Custom 托管的只读副本的高复制滞后,但不能检测到外部只读副本的高复制滞后。

    高复制滞后会产生 Replication has stopped 事件。您还可以通过使用 describe-db-instances Amazon CLI 命令查看复制状态,但它的更新可能会延迟。