

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 使用只读副本 PeopleSoft 在 Amazon RDS Custom 上将 HA 添加到 Oracle
<a name="add-ha-to-oracle-peoplesoft-on-amazon-rds-custom-by-using-a-read-replica"></a>

*Sampath Kathirvel，Amazon Web Services*

## Summary
<a name="add-ha-to-oracle-peoplesoft-on-amazon-rds-custom-by-using-a-read-replica-summary"></a>

要在亚马逊网络服务 (AWS) 上运行 [Oracle PeopleSoft](https://www.oracle.com/applications/peoplesoft/) 企业资源规划 (ERP) 解决方案，您可以使用[亚马逊关系数据库服务 (Amazon RDS) 或 Ama](https://aws.amazon.com/rds/) [zon RDS Custom for Oracle](https://aws.amazon.com/rds/custom/)，后者支持需要访问底层操作系统和数据库环境的传统、自定义和打包应用程序。有关规划迁移时需要考虑的关键因素，请参阅 AWS Prescriptive Guidance 中的 [Oracle 数据库迁移策略](https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-oracle-database/strategies.html)。

在撰写本文时，RDS Custom for Oracle 不支持[多可用区](https://aws.amazon.com/blogs/aws/multi-az-option-for-amazon-rds-oracle/)选项，该选项可作为使用存储复制的[Amazon RDS for Oracle](https://aws.amazon.com/rds/oracle/) 的 HA 解决方案使用。相反，此模式通过使用备用数据库来创建和维护主数据库的物理副本来实现 HA。该模式侧重于使用 Oracle Data Guard 设置只读副本在 Amazon RDS Custom 上运行带高可用性的 PeopleSoft 应用程序数据库的步骤。

此模式还会将只读副本更改为只读模式。将只读副本置于只读模式可带来其他好处：
+ 从主数据库卸载只读工作负载
+ 通过使用 Oracle Active Data Guard 功能从备用数据库中检索正常运行的块，从而自动修复损坏的块
+ 使用 Far Sync 功能使远程备用数据库保持同步，而不会产生与长距离重做日志传输相关的性能开销。

在只读模式下使用副本需要 [Oracle Active Data Guard](https://www.oracle.com/assets/technology-price-list-070617.pdf) 选项，这需要额外付费，因为它是 Oracle Database Enterprise Edition 单独许可的功能。

## 先决条件和限制
<a name="add-ha-to-oracle-peoplesoft-on-amazon-rds-custom-by-using-a-read-replica-prereqs"></a>

**先决条件**
+ Amazon RDS 定制版上的现有 PeopleSoft 应用程序。如果您没有应用程序，请参阅 “[将 Oracle 迁移 PeopleSoft 到 Amazon RDS Custom](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/migrate-oracle-peoplesoft-to-amazon-rds-custom.html)” 模式。
+ 单个 PeopleSoft 应用程序层。但是，您可以调整此模式以使用多个应用程序层。
+ Amazon RDS Custom 配置了至少 8 GB 的交换空间。
+ Oracle Active Data Guard 数据库许可证，用于将只读副本转换为只读模式，并使用它来将报告任务卸载到备用数据库。有关详细信息，请参阅 [Oracle 技术商业价目表](https://www.oracle.com/corporate/pricing/#technology)。

**限制**** **
+ [RDS Custom for Oracle](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/custom-reqs-limits.html#custom-reqs-limits.limits) 的一般限制和不支持的配置
+ [适用于 Oracle 的 Amazon RDS Custom 只读副本](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/custom-rr.html#custom-rr.limitations)的相关限制

**产品版本**
+ 有关 Amazon RDS Custom 支持的 Oracle 数据库版本，请参阅[适用于 Oracle 的 RDS Custom](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.RDS_Fea_Regions_DB-eng.Feature.RDSCustom.html#Concepts.RDS_Fea_Regions_DB-eng.Feature.RDSCustom.ora)。
+ 有关 Amazon RDS Custom 支持的 Oracle 数据库实例类，请参阅[适用于 Oracle 的 RDS Custom 支持的数据库实例类](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/custom-reqs-limits.html#custom-reqs-limits.instances)。

## 架构
<a name="add-ha-to-oracle-peoplesoft-on-amazon-rds-custom-by-using-a-read-replica-architecture"></a>

**目标技术堆栈**
+ 适用于 Oracle 的 Amazon RDS Custom
+ AWS Secrets Manager
+ Oracle Active Data Guard
+ 甲骨文 PeopleSoft 应用程序

**目标架构**

下图显示了 Amazon RDS Custom 数据库实例和 Amazon RDS Custom 只读副本。只读副本使用 Oracle Active Data Guard 复制到另一个可用区。您还可以使用只读副本卸载主数据库上的读取流量并用于报告目的。

![\[VPC 包括 AWS Secrets Manager、Amazon EFS、应用层和数据库层。\]](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/patterns/images/pattern-img/7df4b2d0-b833-4ba3-98e4-a178db395d9d/images/463aefbe-70ad-4cd3-9ddc-0d8347e848c6.png)


有关 PeopleSoft 在 AWS 上使用 Oracle 的代表性架构，请参阅[在 AWS 上设置高可用 PeopleSoft 架构](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/set-up-a-highly-available-peoplesoft-architecture-on-aws.html)。

## 工具
<a name="add-ha-to-oracle-peoplesoft-on-amazon-rds-custom-by-using-a-read-replica-tools"></a>

**Amazon Web Services**
+ [适用于 Oracle 的 Amazon RDS Custom](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/working-with-custom-oracle.html) 是一项托管式数据库服务，适用于需要访问底层操作系统和数据库环境的旧版、自定义和打包应用程序。
+ [AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html) 帮助您将代码中的硬编码凭证（包括密码）替换为对 Secrets Manager 的 API 调用，以便以编程方式检索密钥。在这种模式中，您可以从 Secrets Manager 中使用密钥名称 `do-not-delete-rds-custom-+<<RDS Resource ID>>+-dg` 检索 `RDS_DATAGUARD` 的数据库用户密码。

**其他工具**
+ [Oracle Data Guard](https://docs.oracle.com/en/database/oracle/oracle-database/19/sbydb/preface.html#GUID-B6209E95-9DA8-4D37-9BAD-3F000C7E3590) 可帮助您创建、维护、管理和监控备用数据库。

## 最佳实践
<a name="add-ha-to-oracle-peoplesoft-on-amazon-rds-custom-by-using-a-read-replica-best-practices"></a>

若要实现零数据丢失（RPO=0）目标，请使用 `MaxAvailability` Data Guard 保护模式，并使用重做传输 `SYNC+NOAFFIRM` 设置以获得更好的性能。有关选择数据库保护模式的详细信息，请参阅*其他信息*部分。

## 操作说明
<a name="add-ha-to-oracle-peoplesoft-on-amazon-rds-custom-by-using-a-read-replica-epics"></a>

### 创建只读副本
<a name="create-the-read-replica"></a>


| Task | 说明 | 所需技能 | 
| --- | --- | --- | 
| 创建只读副本。 | 要创建 Amazon RDS Custom 数据库实例的只读副本，请按照 [Amazon RDS 文档](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ReadRepl.html#USER_ReadRepl.Create)中的说明操作，并使用您创建的 Amazon RDS Custom 数据库实例（请参阅*先决条件*部分）作为源数据库。默认情况下，Amazon RDS Custom 只读副本创建为物理备用副本，并处于已装载状态。这样做是为了确保遵守 Oracle Active Data Guard 许可。此模式包含用于设置多租户容器数据库 (CDB) 或非 CDB 实例的代码。 | 数据库管理员 | 

### 将 Oracle 数据卫士保护模式更改为 MaxAvailability
<a name="change-oracle-data-guard-protection-mode-to-maxavailability"></a>


| Task | 说明 | 所需技能 | 
| --- | --- | --- | 
| 访问主数据库上的 Data Guard 代理配置。 | 在此示例中，Amazon RDS Custom 只读副本对于非 CDB 实例为 `RDS_CUSTOM_ORCL_D`，对于 CDB 实例为 `RDS_CUSTOM_RDSCDB_B`。非 CDB 的数据库是 `orcl_a`（主数据库）和 `orcl_d`（备用数据库）。CDB 的数据库名称为 `rdscdb_a`（主数据库）和 `rdscdb_b`（备用数据库）。您可以直接或通过主数据库连接到 RDS Custom 只读副本。您可以在位于 `$ORACLE_HOME/network/admin` 目录中的 `tnsnames.ora` 文件中找到数据库的网络服务名称。RDS Custom for Oracle 会自动为您的主数据库和只读副本填充这些条目。`RDS_DATAGUARD` 用户的密码存储在 AWS Secrets Manager 中，密钥名称为 `do-not-delete-rds-custom-+<<RDS Resource ID>>+-dg`。有关如何使用从 Secrets Manager 检索到的 SSH（安全 Shell）密钥连接到 RDS 自定义实例的更多信息，请参阅[使用 SSH 连接到 RDS 自定义数据库实例](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/custom-creating.html#custom-creating.ssh)。要通过 Data Guard 命令行 (`dgmgrl`) 访问 Oracle Data Guard 代理配置，请使用以下代码。**非 CDB**<pre>$ dgmgrl RDS_DATAGUARD@RDS_CUSTOM_ORCL_D<br />DGMGRL for Linux: Release 19.0.0.0.0 - Production on Fri Sep 30 22:44:49 2022<br />Version 19.10.0.0.0<br />Copyright (c) 1982, 2019, Oracle and/or its affiliates. All rights reserved.<br />Welcome to DGMGRL, type "help" for information.<br />Password:<br />Connected to "ORCL_D"<br />Connected as SYSDG.<br />DGMGRL> <br />DGMGRL> show database orcl_d<br />Database - orcl_d<br />Role: PHYSICAL STANDBY<br />Intended State: APPLY-ON<br />Transport Lag: 0 seconds (computed 0 seconds ago)<br />Apply Lag: 0 seconds (computed 0 seconds ago)<br />Average Apply Rate: 11.00 KByte/s<br />Instance(s):<br />ORCL<br />SUCCESS<br />DGMGRL></pre>**CDB**<pre>-bash-4.2$ dgmgrl C##RDS_DATAGUARD@RDS_CUSTOM_RDSCDB_B<br />DGMGRL for Linux: Release 19.0.0.0.0 - Production on Wed Jan 11 20:24:11 2023<br />Version 19.16.0.0.0<br />Copyright (c) 1982, 2019, Oracle and/or its affiliates. All rights reserved.<br />Welcome to DGMGRL, type "help" for information.<br />Password:<br />Connected to "RDSCDB_B"<br />Connected as SYSDG.<br />DGMGRL><br />DGMGRL> show database rdscdb_b<br />Database - rdscdb_b<br />  Role:               PHYSICAL STANDBY<br />  Intended State:     APPLY-ON<br />  Transport Lag:      0 seconds (computed 1 second ago)<br />  Apply Lag:          0 seconds (computed 1 second ago)<br />  Average Apply Rate: 2.00 KByte/s<br />  Real Time Query:    OFF<br />  Instance(s):<br />    RDSCDB<br />Database Status:<br />SUCCESS<br />DGMGRL></pre> | 数据库管理员 | 
| 通过从主节点连接到 DGMGRL 来更改日志传输设置。 | 将日志传输模式更改为 `FastSync`，对应于重做传输设置 `SYNC+NOAFFIRM`。若要确保在角色切换后具有有效的设置，请同时更改主数据库和备用数据库的设置。**非 CDB**<pre>DGMGRL><br />DGMGRL> edit database orcl_d set property logxptmode=fastsync;<br />Property "logxptmode" updated<br />DGMGRL> show database orcl_d LogXptMode;<br />LogXptMode = 'fastsync'<br />DGMGRL> edit database orcl_a set property logxptmode=fastsync;<br />Property "logxptmode" updated<br />DGMGRL> show database orcl_a logxptmode;<br />LogXptMode = 'fastsync'<br />DGMGRL>   </pre>**CDB**<pre>DGMGRL> edit database rdscdb_b set property logxptmode=fastsync;DGMGRL> edit database rdscdb_b set property logxptmode=fastsync;<br />Property "logxptmode" updated<br />DGMGRL> show database rdscdb_b LogXptMode;<br />  LogXptMode = 'fastsync'<br />DGMGRL> edit database rdscdb_a set property logxptmode=fastsync;<br />Property "logxptmode" updated<br />DGMGRL> show database rdscdb_a logxptmode;<br />  LogXptMode = 'fastsync'<br />DGMGRL></pre> | 数据库管理员 | 
| 将保护模式更改为 MaxAvailability。 | 通过从主节点连接到 `DGMGRL`，将保护模式更改为 `MaxAvailability`。**非 CDB**<pre>DGMGRL> edit configuration set protection mode as maxavailability;<br />Succeeded.<br />DGMGRL> show configuration;<br />Configuration - rds_dg<br />Protection Mode: MaxAvailability<br />Members:<br />orcl_a - Primary database<br />orcl_d - Physical standby database <br />Fast-Start Failover: Disabled<br />Configuration Status:<br />SUCCESS (status updated 38 seconds ago)<br />DGMGRL> </pre>**CDB**<pre>DGMGRL> show configuration<br />Configuration - rds_dg<br />  Protection Mode: MaxAvailability<br />  Members:<br />  rdscdb_a - Primary database<br />    rdscdb_b - Physical standby database <br />Fast-Start Failover:  Disabled<br />Configuration Status:<br />SUCCESS   (status updated 57 seconds ago)<br />DGMGRL></pre> | 数据库管理员 | 

### 将复制副本状态从附加更改为只读，并启用重做应用
<a name="change-the-replica-status-from-mount-to-read-only-and-enable-redo-apply"></a>


| Task | 说明 | 所需技能 | 
| --- | --- | --- | 
| 停止对备用数据库进行重做应用。 | 默认情况下，只读副本是在 `MOUNT` 模式下创建的。要以只读模式打开它，首先需要通过从主节点或备用节点连接到 `DGMGRL` 来关闭重做应用。**非 CDB**<pre>DGMGRL> show database orcl_dDGMGRL> show database orcl_d<br />Database - orcl_d<br />Role: PHYSICAL STANDBY<br />Intended State: APPLY-ON<br />Transport Lag: 0 seconds (computed 1 second ago)<br />Apply Lag: 0 seconds (computed 1 second ago)<br />Average Apply Rate: 11.00 KByte/s<br />Real Time Query: OFF<br />Instance(s):<br />ORCL<br />Database Status:<br />SUCCESS<br />DGMGRL> edit database orcl_d set state=apply-off;<br />Succeeded.<br />DGMGRL> show database orcl_d<br />Database - orcl_d<br />Role: PHYSICAL STANDBY<br />Intended State: APPLY-OFF<br />Transport Lag: 0 seconds (computed 1 second ago)<br />Apply Lag: 42 seconds (computed 1 second ago)<br />Average Apply Rate: (unknown)<br />Real Time Query: OFF<br />Instance(s):<br />ORCL<br />Database Status:<br />SUCCESS<br />DGMGRL></pre>**CDB**<pre>DGMGRL> show configurationDGMGRL> show configuration<br />Configuration - rds_dg<br />  Protection Mode: MaxAvailability<br />  Members:<br />  rdscdb_a - Primary database<br />    rdscdb_b - Physical standby database <br />Fast-Start Failover:  Disabled<br />Configuration Status:<br />SUCCESS   (status updated 57 seconds ago)<br />DGMGRL> show database rdscdb_b;<br />Database - rdscdb_b<br />  Role:               PHYSICAL STANDBY<br />  Intended State:     APPLY-ON<br />  Transport Lag:      0 seconds (computed 1 second ago)<br />  Apply Lag:          0 seconds (computed 1 second ago)<br />  Average Apply Rate: 2.00 KByte/s<br />  Real Time Query:    OFF<br />  Instance(s):<br />    RDSCDB<br />Database Status:<br />SUCCESS<br />DGMGRL> edit database rdscdb_b set state=apply-off;<br />Succeeded.<br />DGMGRL> show database rdscdb_b;<br />Database - rdscdb_b<br />  Role:               PHYSICAL STANDBY<br />  Intended State:     APPLY-OFF<br />  Transport Lag:      0 seconds (computed 1 second ago)<br />  Apply Lag:          0 seconds (computed 1 second ago)<br />  Average Apply Rate: (unknown)<br />  Real Time Query:    OFF<br />  Instance(s):<br />    RDSCDB<br />Database Status:<br />SUCCESS</pre> | 数据库管理员 | 
| 以只读模式打开只读副本实例。 | 使用 TNS 条目连接到备用数据库，然后通过从主节点或备用节点连接到备用数据库，以只读模式打开该数据库。**非 CDB**<pre>$ sqlplus RDS_DATAGUARD@RDS_CUSTOM_ORCL_D as sysdg<br />-bash-4.2$ sqlplus RDS_DATAGUARD@RDS_CUSTOM_ORCL_D as sysdg<br />SQL*Plus: Release 19.0.0.0.0 - Production on Fri Sep 30 23:00:14 2022<br />Version 19.10.0.0.0<br />Copyright (c) 1982, 2020, Oracle. All rights reserved.<br />Enter password: <br />Last Successful login time: Fri Sep 30 2022 22:48:27 +00:00<br />Connected to:<br />Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production<br />Version 19.10.0.0.0<br />SQL> select open_mode from v$database;<br />OPEN_MODE<br />--------------------<br />MOUNTED<br />SQL> alter database open read only;<br />Database altered.<br />SQL> select open_mode from v$database;<br />OPEN_MODE<br />--------------------<br />READ ONLY<br />SQL> </pre>**CDB**<pre>-bash-4.2$ sqlplus C##RDS_DATAGUARD@RDS_CUSTOM_RDSCDB_B as sysdg<br />SQL*Plus: Release 19.0.0.0.0 - Production on Wed Jan 11 21:14:07 2023<br />Version 19.16.0.0.0<br />Copyright (c) 1982, 2022, Oracle.  All rights reserved.<br />Enter password: <br />Last Successful login time: Wed Jan 11 2023 21:12:05 +00:00<br />Connected to:<br />Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production<br />Version 19.16.0.0.0<br />SQL> select name,open_mode from v$database;<br />NAME   OPEN_MODE<br />--------- --------------------<br />RDSCDB   MOUNTED<br />SQL> alter database open read only;<br />Database altered.<br />SQL> select name,open_mode from v$database;<br />NAME   OPEN_MODE<br />--------- --------------------<br />RDSCDB   READ ONLY<br />SQL></pre> | 数据库管理员 | 
| 在只读副本实例上激活重做应用。 | 在主节点或备用节点上使用 `DGMGR` L 在只读副本实例上激活重做应用。**非 CDB**<pre>$ dgmgrl RDS_DATAGUARD@RDS_CUSTOM_ORCL_D<br />DGMGRL for Linux: Release 19.0.0.0.0 - Production on Fri Sep 30 23:02:16 2022<br />Version 19.10.0.0.0<br />Copyright (c) 1982, 2019, Oracle and/or its affiliates. All rights reserved.<br />Welcome to DGMGRL, type "help" for information.<br />Password:<br />Connected to "ORCL_D"<br />Connected as SYSDG.<br />DGMGRL> <br />edit database orcl_d set state=apply-on;<br />DGMGRL> edit database orcl_d set state=apply-on;<br />Succeeded.<br />DGMGRL> show database orcl_d<br />Database - orcl_d<br />Role: PHYSICAL STANDBY<br />Intended State: APPLY-ON<br />Transport Lag: 0 seconds (computed 0 seconds ago)<br />Apply Lag: 0 seconds (computed 0 seconds ago)<br />Average Apply Rate: 496.00 KByte/s<br />Real Time Query: ON<br />Instance(s):<br />ORCL<br />Database Status:<br />SUCCESS<br />DGMGRL></pre>**CDB**<pre>-bash-4.2$ dgmgrl C##RDS_DATAGUARD@RDS_CUSTOM_RDSCDB_B-bash-4.2$ dgmgrl C##RDS_DATAGUARD@RDS_CUSTOM_RDSCDB_B<br />DGMGRL for Linux: Release 19.0.0.0.0 - Production on Wed Jan 11 21:21:11 2023<br />Version 19.16.0.0.0<br />Copyright (c) 1982, 2019, Oracle and/or its affiliates.  All rights reserved.<br />Welcome to DGMGRL, type "help" for information.<br />Password:<br />Connected to "RDSCDB_B"<br />Connected as SYSDG.<br />DGMGRL> edit database rdscdb_b set state=apply-on;<br />Succeeded.<br />DGMGRL> show database rdscdb_b           <br />Database - rdscdb_b<br />  Role:               PHYSICAL STANDBY<br />  Intended State:     APPLY-ON<br />  Transport Lag:      0 seconds (computed 0 seconds ago)<br />  Apply Lag:          0 seconds (computed 0 seconds ago)<br />  Average Apply Rate: 35.00 KByte/s<br />  Real Time Query:    ON<br />  Instance(s):<br />    RDSCDB<br />Database Status:<br />SUCCESS<br />DGMGRL> show database rdscdb_b   <br />Database - rdscdb_b<br />  Role:               PHYSICAL STANDBY<br />  Intended State:     APPLY-ON<br />  Transport Lag:      0 seconds (computed 1 second ago)<br />  Apply Lag:          0 seconds (computed 1 second ago)<br />  Average Apply Rate: 16.00 KByte/s<br />  Real Time Query:    ON<br />  Instance(s):<br />    RDSCDB<br />Database Status:<br />SUCCESS<br />DGMGRL></pre> | 数据库管理员 | 

## 相关的资源
<a name="add-ha-to-oracle-peoplesoft-on-amazon-rds-custom-by-using-a-read-replica-resources"></a>
+ [将 Amazon RDS 配置为 Oracle PeopleSoft 数据库](https://d1.awsstatic.com/whitepapers/configuring-amazon-rds-as-peoplesoft-database.pdf)（AWS 白皮书）
+ [Oracle Data Guard 代理指南](https://docs.oracle.com/en/database/oracle/oracle-database/19/dgbkr/index.html)（Oracle 参考文档）
+ [Data Guard 概念和管理](https://docs.oracle.com/en/database/oracle/oracle-database/19/sbydb/index.html)（Oracle 参考文档）

## 附加信息
<a name="add-ha-to-oracle-peoplesoft-on-amazon-rds-custom-by-using-a-read-replica-additional"></a>

**选择数据库保护模式**

Oracle Data Guard 提供三种保护模式，可根据您的可用性、保护和性能要求配置 Data Guard 环境。下表对这三种模式进行了汇总。


| 
| 
| 保护模式 | 重做传输设置 | 说明 | 
| --- |--- |--- |
| ***最佳性能*** | `ASYNC` | 对于主数据库上发生的事务，重做数据将异步传输并写入备用数据库重做日志。因此，对性能的影响微乎其微。由于异步日志传送，`MaxPerformance` 无法提供 RPO=0。 | 
| ***最大程度的保护*** | `SYNC+AFFIRM` | 对于主数据库上的事务，在确认事务之前，重做数据将同步传输并写入磁盘上的备用数据库重做日志。如果备用数据库不可用，则主数据库将自行关闭，以确保事务受到保护。 | 
| ***最大可用性*** | `SYNC+AFFIRM` | 这类似于 `MaxProtection` 模式，除非未从备用数据库收到确认。在这种情况下，它会像在 `MaxPerformance` 模式下一样运行，以保持主数据库的可用性，直到它能够再次将其重做流写入同步备用数据库。 | 
| `SYNC+NOAFFIRM` | 对于主数据库上的事务，重做将同步传输到备用数据库，并且主数据库仅等待确认已在备用数据库上收到重做，而不是等待重做已写入备用磁盘。此模式（也称为 `FastSync`）可以提供性能优势，但代价是在多个同时发生故障的特殊情况下可能会丢失数据。 | 

RDS Custom for Oracle 中的只读副本是使用最高性能保护模式创建的，这也是 Oracle Data Guard 的默认保护模式。最高性能模式对主数据库的性能影响最小，这可以帮助您满足以秒为单位的恢复点目标（RPO）要求。

要努力实现零数据丢失（RPO=0）目标，可以将 Oracle Data Guard 保护模式自定义为 `MaxAvailability`，并将 `SYNC+NOAFFIRM` 作为重做传输的设置，以获得更好的性能。由于只有在将相应的重做向量成功传输到备用数据库后，才会确认主数据库上的提交，因此主实例和副本之间的网络延迟对于提交敏感型工作负载至关重要。建议对工作负载执行负载测试，以评测将只读副本自定义为在 `MaxAvailability` 模式下运行时对性能的影响。

与在不同的可用区中部署只读副本相比，将只读副本部署在与主数据库相同的可用区中可提供更低的网络延迟。但是，在同一可用区中部署主副本和只读副本可能无法满足您的 HA 要求，因为在极少数情况下，如果可用区不可用，主实例和只读副本实例都会受到影响。