

# RDS for Oracle 副本概述
<a name="oracle-read-replicas.overview"></a>

*Oracle 副本*数据库是主数据库的物理副本。只读模式下的 Oracle 副本称为*只读副本*。装载模式下的 Oracle 副本称为*装载副本*。Oracle 数据库不允许在副本中进行写入操作，但是您可以升级副本以使其可写。提升的只读副本拥有提出提升请求时的已复制数据。

以下视频提供了 RDS for Oracle 灾难恢复的有用概述。

[![AWS Videos](http://img.youtube.com/vi/-XpzhIevwVg/0.jpg)](http://www.youtube.com/watch?v=-XpzhIevwVg)


有关更多信息，请参阅博文 [Managed disaster recovery with Amazon RDS for Oracle cross-Region automated backups - Part 1](https://www.amazonaws.cn/blogs/database/managed-disaster-recovery-with-amazon-rds-for-oracle-cross-region-automated-backups-part-1/) 和 [Managed disaster recovery with Amazon RDS for Oracle cross-Region automated backups - Part 2](https://www.amazonaws.cn/blogs/database/part-2-managed-disaster-recovery-with-amazon-rds-for-oracle-xrab/)。

**Topics**
+ [只读和装载副本](#oracle-read-replicas.overview.modes)
+ [CDB 的只读副本](#oracle-read-replicas.overview.data-guard)
+ [归档重做日志保留](#oracle-read-replicas.overview.log-retention)
+ [Oracle 复制过程中的中断](#oracle-read-replicas.overview.outages)

## 只读和装载副本
<a name="oracle-read-replicas.overview.modes"></a>

创建或修改 Oracle 副本时，可以将其置于以下任一模式：

Read-only  
这是默认值。Active Data Guard 会将源数据库中的更改传输并应用到所有只读副本数据库。  
您可以从一个源数据库实例创建最多 5 个只读副本。有关适用于所有数据库引擎的只读副本的一般信息，请参阅[使用数据库实例只读副本](USER_ReadRepl.md)。有关 Oracle Data Guard 的信息，请参阅 Oracle 文档中的 [Oracle Data Guard 概念和管理](https://docs.oracle.com/en/database/oracle/oracle-database/19/sbydb/oracle-data-guard-concepts.html#GUID-F78703FB-BD74-4F20-9971-8B37ACC40A65)。

挂载模式  
在这种情况下，复制使用 Oracle Data Guard，但副本数据库不接受用户连接。装载副本的主要用途是跨区域灾难恢复。  
装载的副本无法为只读工作负载提供服务。不论存档日志的保留策略为何，装载副本都会在应用存档重做日志文件后删除这些文件。

您可以为同一源数据库实例同时创建装载和只读数据库副本。您可以将只读副本更改为装载模式，或将装载副本更改为只读模式。在两种情况下，Oracle 数据库都会保留存档日志保留设置。

## CDB 的只读副本
<a name="oracle-read-replicas.overview.data-guard"></a>

RDS for Oracle 同时在单租户和多租户配置中对于 Oracle Database 19c 和 21c CDB 支持 Data Guard 只读副本。您可以在 CDB 中创建、管理和提升只读副本，就像在非 CDB 中一样。还支持已装载的副本。您可以获得以下好处：
+ 托管式灾难恢复、高可用性和对副本的只读访问
+ 能够在不同的 Amazon Web Services 区域中创建只读副本。
+ 与现有 RDS 只读副本 API 集成：[CreateDBInstanceReadReplica](https://docs.amazonaws.cn/AmazonRDS/latest/APIReference/API_CreateDBInstanceReadReplica.html)、[PromoteReadReplica](https://docs.amazonaws.cn/AmazonRDS/latest/APIReference/API_PromoteReadReplica.html) 和 [SwitchoverReadReplica](https://docs.amazonaws.cn/AmazonRDS/latest/APIReference/API_SwitchoverReadReplica.html)

要使用此功能，您需要有关副本和主数据库实例的有效 Data Guard 许可证和 Oracle 数据库企业版许可证。没有与使用 CDB 架构相关的额外费用。您只需为数据库实例付费。

有关 CDB 架构的单租户配置和多租户配置的更多信息，请参阅[RDS for Oracle CDB 概述](Oracle.Concepts.CDBs.md)。

## 归档重做日志保留
<a name="oracle-read-replicas.overview.log-retention"></a>

如果主数据库实例没有跨区域只读副本，则 Amazon RDS for Oracle 会在源数据库实例上至少保留两个小时的存档重做日志。无论在 `rdsadmin.rdsadmin_util.set_configuration` 中 `archivelog retention hours` 的设置为何，都是这种情况。

两小时之后或在传递归档日志保留小时数设置之后，RDS 会从源数据库实例中清除日志，以时间较长者为准。传递归档日志保留小时数设置之后，仅当日志已成功应用到数据库时，RDS 才会从只读副本清除日志。

在某些情况下，主数据库实例可能具有一个或多个跨区域只读副本。如果是这样，则 Amazon RDS for Oracle 将保留源数据库实例上的事务日志，直到将它们传输并应用到所有跨区域只读副本为止。有关 `rdsadmin.rdsadmin_util.set_configuration` 的信息，请参阅[保留归档重做日志](Appendix.Oracle.CommonDBATasks.RetainRedoLogs.md)。

## Oracle 复制过程中的中断
<a name="oracle-read-replicas.overview.outages"></a>

当您创建只读副本时，Amazon RDS 会制作源数据库实例的数据库快照，然后开始复制。数据库快照操作开始时，源数据库实例会经历非常短暂的 I/O 暂停。这种 I/O 暂停通常持续大约一秒时间。如果源数据库实例为多可用区部署，则可避免 I/O 暂停，因为在这种情况下，会从辅助数据库实例制作数据库快照。

数据库快照变成 Oracle 副本。Amazon RDS 为源数据库和副本设置必要的参数和权限，而不会中断服务。同样，如果删除副本，也不会发生中断。