Amazon Relational Database Service
用户指南 (API 版本 2014-10-31)
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

使用适用于 Amazon RDS 的 Oracle 只读副本

一般使用只读副本配置 Amazon RDS 数据库实例之间的复制。有关只读副本的一般信息,请参阅使用只读副本

在本部分中,您可以找到有关使用 Amazon RDS for Oracle 上的只读副本的特定信息。

配置 Oracle 的只读副本

Oracle 只读副本使用 Oracle Data Guard 将数据库更改从源数据库实例复制到其只读副本。有关 Oracle Data Guard 的信息,请参阅 Oracle 文档中的 Oracle Data Guard 概念和管理

数据库实例可充当源数据库实例之前,您必须在源数据库实例上启用自动备份。为此,请将备份保留期设定为非 0 值。我们建议您在数据库实例上启用强制日志模式。若要启用强制日志模式,请连接到数据库实例并运行以下过程。

exec rdsadmin.rdsadmin_util.force_logging(p_enable => true);

有关此过程的更多信息,请参阅 设置强制日志记录

如果您计划对日志配置作出更改,我们建议在将数据库实例设为一个或多个只读副本的源之前先完成更改。您可以使用 Amazon RDS 过程 rdsadmin.rdsadmin_util.add_logfilerdsadmin.rdsadmin_util.drop_logfile 为数据库实例修改日志配置。有关更多信息,请参阅 添加联机重做日志删除联机重做日志。作为最佳实践,我们建议您在创建只读副本之后不要修改日志配置。修改会导致联机重做日志配置与备用日志配置不同步。

创建 Oracle 只读副本不需要中断主数据库实例。Amazon RDS 为源数据库实例和只读副本设置所需的参数和权限,而不中断任何服务。将创建源数据库实例的快照,此快照将变为只读副本。在删除只读副本时不会发生中断。

您可以从一个源数据库实例创建最多 5 个只读副本。创建只读副本之前,确保源数据库实例和只读副本上的 max_string_size 参数的设置相同。您可以通过将它们与相同的参数组关联来实现。如果您为源和只读副本使用不同的参数组,则可以通过将 max_string_size 设置为相同值来实现。

源数据库实例及其所有只读副本的 Oracle 数据库引擎版本必须相同。升级源数据库实例之后,不管只读副本的维护时段是什么,Amazon RDS 都会立即升级只读副本。有关升级数据库引擎版本的更多信息,请参阅升级 Oracle 数据库引擎

为了让只读副本可以接收和应用源数据库实例的更改,它应具有足够的计算和存储资源。如果只读副本达到计算、网络或存储资源容量,则只读副本会停止接收或应用来自其源实例的更改。您可以单独修改某个只读副本的存储和 CPU 资源,不受其源实例及其他只读副本的影响。

只读副本限制 (Oracle)

以下是 Oracle 只读副本的限制:

  • 您必须拥有有效的 Data Guard 许可。

  • Oracle 只读副本仅在 Oracle Enterprise Edition (EE) 引擎中可用。

  • Oracle 只读副本仅适用于 Oracle 版本 12.1.0.2.v10 及更高版本、12.1 版本及所有 12.2 版本。

  • Oracle 只读副本仅适用于 EC2-VPC 平台上的数据库实例。

  • Oracle 只读副本仅适用于在具有两个或更多 vCPU 的数据库实例类上运行的数据库实例。

  • Amazon RDS for Oracle 不会通过干预来缓解源数据库实例及其只读副本之间的高副本滞后。确保源数据库实例及其只读副本在计算和存储容量方面具有适当的大小,可以适合其运营负载。

  • Amazon RDS for Oracle 只读副本与源数据库必须属于同一个选项组。对源选项组或源选项组成员资格作出的修改会传播到只读副本。将这些更改应用到源数据库实例之后,它们也会立即应用到只读副本,而不管只读副本的维护时段是什么。

    有关选项组的更多信息,请参阅 使用选项组

  • 您不能创建跨区域只读副本。

  • 目前,欧洲(斯德哥尔摩) 和 中国 (宁夏) 区域不支持 Oracle 只读副本。

解决 Oracle 只读副本问题

您可以通过查看 Amazon RDS ReplicaLag 指标,在 Amazon CloudWatch 中监控复制滞后。有关使用复制滞后时间的信息,请参阅 监控只读复制

如果复制滞后时间太长,则您可以查询一下视图,了解有关滞后的信息:

  • V$ARCHIVED_LOG – 显示哪些提交已应用到只读副本。

  • V$DATAGUARD_STATS – 显示组成 replicaLag 指标的各个组成部分的详细分解。

  • V$DATAGUARD_STATUS – 显示 Oracle 内部复制过程的日志输出。