使用适用于 RDS Custom for Oracle 的只读副本
您可以为 RDS Custom for Oracle 数据库实例创建只读副本。只读副本的创建与 Amazon RDS 中的创建类似,但有一些重要的区别。有关创建和管理只读副本的一般信息,请参阅 使用只读副本 和 使用适用于 Amazon RDS 的 Oracle 副本。
创建 RDS Custom for Oracle 只读副本时,并非所有选项都受支持。例如,您必须在创建复制副本时将复制副本模式指定为已装载,但随后可以将其更改为只读。有关更多信息,请参阅 create-db-instance-read-replica Amazon CLI 命令的文档。
与适用于 RDS for Oracle 一样,您最多可以拥有六个托管只读副本。您可以创建自己的手动配置(外部)RDS Custom for Oracle 只读副本,这不计入限制,但它们超出了支持外围。有关支持外围的更多信息,请参阅 RDS Custom 支持外围配置和不受支持的配置。
只读副本以数据库唯一名称命名,并按顺序附加字母:
,例如 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 可能无法与只读副本进行通信。
限制
RDS Custom for Oracle 只读副本具有以下限制:
-
必须在已装载模式下创建 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 在手动故障转移时检测到 RDS Custom 管理的只读副本(例如 FSFO)的实例角色更改,但不能检测到外部只读副本的实例角色更改。
角色更改在事件日志中进行了记录。您还可以通过使用 describe-db-instances Amazon CLI 命令查看新状态。
-
RDS Custom 会检测到 RDS Custom 托管的只读副本的高复制滞后,但不能检测到外部只读副本的高复制滞后。
高复制滞后会产生
Replication has stopped
事件。您还可以通过使用 describe-db-instances Amazon CLI 命令查看复制状态,但它的更新可能会延迟。