RDS for Oracle 副本概述
Oracle 副本数据库是主数据库的物理副本。只读模式下的 Oracle 副本称为只读副本。装载模式下的 Oracle 副本称为装载副本。Oracle 数据库不允许在副本中进行写入操作,但是您可以升级副本以使其可写。提升的只读副本拥有提出提升请求时的已复制数据。
以下视频提供了 RDS for Oracle 灾难恢复的有用概述。
有关更多信息,请参阅博文 Managed disaster recovery with Amazon RDS for Oracle cross-Region automated backups - Part 1
只读和装载副本
创建或修改 Oracle 副本时,可以将其置于以下任一模式:
- Read-only
-
这是默认模式。Active Data Guard 会将源数据库中的更改传输并应用到所有只读副本数据库。
您可以从一个源数据库实例创建最多 5 个只读副本。有关适用于所有数据库引擎的只读副本的一般信息,请参阅使用数据库实例只读副本。有关 Oracle Data Guard 的信息,请参阅 Oracle 文档中的 Oracle Data Guard 概念和管理
。 - 挂载模式
-
在这种情况下,复制使用 Oracle Data Guard,但副本数据库不接受用户连接。装载副本的主要用途是跨区域灾难恢复。
装载的副本无法为只读工作负载提供服务。不论存档日志的保留策略为何,装载副本都会在应用存档重做日志文件后删除这些文件。
您可以为同一源数据库实例同时创建装载和只读数据库副本。您可以将只读副本更改为装载模式,或将装载副本更改为只读模式。在两种情况下,Oracle 数据库都会保留存档日志保留设置。
CDB 的只读副本
RDS for Oracle 仅对单租户配置的 Oracle Database 19c 和 21c CDB 支持 Data Guard 只读副本。您可以在 CDB 中创建、管理和提升只读副本,就像在非 CDB 中一样。还支持已装载的副本。您可以获得以下好处:
-
托管式灾难恢复、高可用性和对副本的只读访问
-
能够在不同的 Amazon Web Services 区域中创建只读副本。
-
与现有 RDS 只读副本 API 集成:CreateDBInstanceReadReplica、PromoteReadReplica 和 SwitchoverReadReplica
要使用此功能,您需要有关副本和主数据库实例的有效 Data Guard 许可证和 Oracle 数据库企业版许可证。没有与使用 CDB 架构相关的额外费用。您只需为数据库实例付费。
有关 CDB 架构的单租户配置和多租户配置的更多信息,请参阅RDS for Oracle CDB 概述。
归档重做日志保留
如果主数据库实例没有跨区域只读副本,则 Amazon RDS for Oracle 会在源数据库实例上至少保留两个小时的存档重做日志。无论在 rdsadmin.rdsadmin_util.set_configuration
中 archivelog retention hours
的设置为何,都是这种情况。
两小时之后或在传递归档日志保留小时数设置之后,RDS 会从源数据库实例中清除日志,以时间较长者为准。传递归档日志保留小时数设置之后,仅当日志已成功应用到数据库时,RDS 才会从只读副本清除日志。
在某些情况下,主数据库实例可能具有一个或多个跨区域只读副本。如果是这样,则 Amazon RDS for Oracle 将保留源数据库实例上的事务日志,直到将它们传输并应用到所有跨区域只读副本为止。有关 rdsadmin.rdsadmin_util.set_configuration
的信息,请参阅保留归档重做日志。
Oracle 复制过程中的中断
当您创建只读副本时,Amazon RDS 会制作源数据库实例的数据库快照,然后开始复制。数据库快照操作开始时,源数据库实例会经历非常短暂的 I/O 暂停。这种 I/O 暂停通常持续大约一秒时间。如果源数据库实例为多可用区部署,则可避免 I/O 暂停,因为在这种情况下,会从辅助数据库实例制作数据库快照。
数据库快照变成 Oracle 副本。Amazon RDS 为源数据库和副本设置必要的参数和权限,而不会中断服务。同样,如果删除副本,也不会发生中断。