使用 Autonomous Data Guard 保护关键数据库免受故障和灾难影响
使用自治数据卫士功能,即使出现故障、灾难、人为错误或数据损坏,您仍可以保持关键生产数据库可供关键任务应用使用。此类功能通常称为灾难恢复。
在专用 Exadata 基础结构上的 Autonomous AI Database 中,您可以在自治容器数据库级别配置和管理 Autonomous Data Guard。
关于 Autonomous Data Guard
Autonomous Data Guard 创建和维护两个完全独立的数据库副本:一个是您的应用连接和使用的主数据库,一个是主数据库的同步副本的备用数据库。然后,如果主数据库因任何原因不可用,Autonomous Data Guard 可以将备用数据库转换为主数据库,因此,它将开始为应用提供服务。
主数据库和备用数据库通常称为相互的对等数据库。每个自治容器数据库至多可以有两个备用数据库。
注:必须将应用配置为使用透明应用连续性 (Transparent Application Continuity,TAC),以充分利用 Autonomous Data Guard 提供的数据库可用性功能。
下图显示了如何使每个备用数据库与主数据库保持同步。

插图 autonomous-data-guard.png 的说明
对主数据库所做的更改会记录在主数据库的重做日志中。Autonomous Data Guard 将这些重做记录作为流通过网络传输到备用数据库的重做日志。然后,备用数据库将这些记录应用于备用数据库。这样,备用数据库就会与主数据库保持同步。
同步几乎是瞬时的,但正如刚才描述的过程所暗示的那样,有两个操作会占用时间:将重做记录传输到备用数据库并将重做记录应用到备用数据库。其中第一个称为 transport lag ,另一个称为 apply lag 。您可以从 Autonomous Data Guard 下的数据库的“详细信息”页面查看自治 AI 数据库的当前滞后值。您可以通过容器数据库的“详细信息”页面,以类似的方式查看容器数据库中所有自治 AI 数据库的当前滞后值。
注:对于多个备用数据库,不支持级联重做传输。
配置 Autonomous Data Guard
在专用 Exadata 基础结构上的 Autonomous AI Database 中,您可以在自治容器数据库 (ACD) 级别配置和管理 Autonomous Data Guard。您可以使用 Oracle Cloud Infrastructure 控制台为已预配的 ACD 启用 Autonomous Data Guard,并从其详细信息页面最多添加两个备用 ACD。有关说明,请参阅在自治容器数据库上启用 Autonomous Data Guard 和添加第二个备用自治容器数据库。
-
现在,您可以在 Oracle Cloud Infrastructure (OCI) 中的 ACD 与 Amazon Web Services (AWS) 中的 ACD 之间创建和管理 Autonomous Data Guard。
-
您可以将 AWS 区域中的备用 ACD 添加到 OCI 区域中已预配的 ACD。或者,您可以将 OCI 区域中的备用 ACD 添加到 AWS 区域中已预配的 ACD。
在配置 Autonomous Data Guard 之前,请注意以下事项:
-
在 Exadata Cloud@Customer 上部署的自治 AI 数据库必须打开端口 1522 ,以便在 Autonomous Data Guard 设置中允许主数据库与备用数据库之间的 TCP 流量。
-
无法在安排了未来三天内活动维护运行的 ACD 上启用 Autonomous Data Guard。您可以先运行活动维护,然后启用 Autonomous Data Guard,或者更改维护运行计划,以便在添加第二个备用数据库之前不会开始维护。
-
添加第二个备用数据库需要对第一个备用数据库进行自动非滚动重新启动。主数据库不受此非滚动重新启动的影响。
使用客户管理的密钥配置 Autonomous Data Guard
在专用 Exadata 基础结构上的自治 AI 数据库中,您可以在自治容器数据库 (ACD) 级别使用客户管理的密钥配置和管理 Autonomous Data Guard。您可以使用 Oracle Cloud Infrastructure 控制台为已预配的 ACD 启用 Autonomous Data Guard,并从其“详细信息”页面最多添加两个备用 ACD。有关说明,请参阅在自治容器数据库上启用 Autonomous Data Guard 和添加第二个备用自治容器数据库。
在使用客户管理的密钥配置 Autonomous Data Guard 之前,请注意以下事项:
-
如果您使用的是 Oracle Cloud Infrastructure Key Management System (OCI KMS),并且希望启用跨区域 Autonomous Data Guard:
-
您首先需要将 OCI Vault 复制到要添加备用数据库的区域。有关详细信息,请参见 Replicating Vaults and Keys 。
-
主数据库和备用数据库最多只能位于 2 个区域。也就是说,如果您要添加第二个备用数据库,并且已将跨区域用于第一个备用数据库,则第二个备用数据库需要位于主区域或第一个备用区域。
注:在引入跨区域 Vault 复制功能之前创建的虚拟 Vault 无法跨区域复制。如果您的 Vault 需要在其他区域中复制,并且该 Vault 不支持复制,则创建新的 Vault 和新密钥。但是,所有专用 Vault 都支持跨区域复制。有关详细信息,请参见 Virtual vault cross-region replication 。
-
-
如果您使用的是 Oracle Key Vault (OKV),并且希望启用跨区域 Autonomous Data Guard,请确保已在密钥库中为您的 OKV 集群添加了连接 IP 地址。
注:如果要在 OCI 区域中的 ACD 和 AWS 区域中的 ACD 之间配置 Autonomous Data Guard,则只能使用 Oracle 管理的密钥或 Oracle Key Vault。无法使用 OCI KMS 密钥或 AWS KMS 密钥。
角色转换和操作
创建自治容器数据库 (Autonomous Container Database,ACD) 后,您可以使用切换或故障转移操作更改对等数据库的角色。如果启用了自动故障转移,则只要主数据库因任何原因不可用,Autonomous Data Guard 就会自动执行故障转移操作。
切换是主数据库与其备用数据库之间的角色转换。切换可确保不会丢失数据。在切换期间,主数据库将转换为备用角色,备用数据库将转换为主数据库角色。要执行切换操作,请参见 Switch Roles in an Autonomous Data Guard Configuration 。
故障转移是指主数据库不可用。故障转移将导致备用数据库转换为主数据库角色。如果未启用自动故障转移,则可以执行手动故障转移,如 Fail Over to the Standby in an Autonomous Data Guard Configuration 中所述。
故障转移操作后数据库的可用性和状态具有以下两个恢复目标:
-
Recovery Time Objective,RTO(恢复时间目标)。RTO 是故障转移后数据库可供应用程序使用所需的最大时间量,在一定程度上与失败时的应用滞后有关。对于 Autonomous Data Guard,RTO 最多需要几秒钟。
-
恢复点目标 (Recovery Point Objective,RPO) 。RPO 是从发生故障的主数据库丢失潜在数据的最长持续时间,在某种程度上与发生故障时的传输滞后有关。对于 Autonomous Data Guard,RPO 几乎为零。
故障转移后,发生故障的主数据库将成为禁用的备用数据库,并且对任何数据库连接均不可用。您可以重新启用它,并通过执行恢复操作将其变为健康的备用数据库。故障主数据库恢复为备用数据库后,您可以执行切换以将其恢复为原始主数据库角色。要执行恢复操作,请参见 Reinstate the Disabled Standby in an Autonomous Data Guard Configuration 。
自动故障转移或快速启动故障转移
通过自动故障转移,每当主 ACD 因区域故障、可用性域故障、Exadata 基础结构或自治 Exadata VM 集群 (AVMC) 发生故障或 ACD 本身发生故障而变得不可用时,它就会自动故障转移到备用 ACD。这也称为快速启动故障转移。
在 ACD 上配置 Autonomous Data Guard 时,无法启用自动故障转移。只能在从 ACD 详细信息页面更新 Autonomous Data Guard 设置时启用或禁用自动故障转移。
注:无法为部署在具有跨区域 Autonomous Data Guard 设置的 Exadata Cloud@Customer 中的自治 AI 数据库启用自动故障转移。
无法为第一个备用 ACD 添加启用了自动故障转移的第二个备用 ACD。因此,在创建第二个备用 ACD 之前,请使用 Update Autonomous Data Guard Settings 禁用自动故障转移,并在以后根据需要重新启用它。
高性能和最高可用性保护模式都支持自动故障转移:
-
在最高可用性模式下,自动故障转移可确保零数据丢失。
-
在最高性能模式下,自动故障转移可确保备用数据库不会落后于主数据库,超出了为快速启动故障转移滞后限制指定的值。缺省情况下, Fast Start failover lag limit 设置为 30 秒,仅适用于 "Maximum performance" 模式。在这种情况下,只有在备用数据库的应用滞后(潜在数据丢失)不超过配置的滞后限制时,才能进行自动故障转移。您可以将快速启动故障转移滞后限制修改为介于 5 和 3600 之间的任何值。
有关详细信息,请参阅更新 Autonomous Data Guard 设置。
除了硬件故障、可用性域中断和区域中断外,还有一些数据库健康状况可以触发快速启动故障转移,如下所示:
| 数据库健康状况条件 | 说明 |
|---|---|
| 损坏的控制文件 | 由于磁盘出现故障,控制文件被永久损坏。 |
| 损坏的字典 | 关键数据库字典损坏。当前,仅当数据库处于打开状态时才能检测到此状态。 |
| 数据文件写入错误 | 任何数据文件(包括临时文件、系统数据文件和还原文件)中都遇到写入错误。 |
由于自动故障转移,发生故障的主数据库的角色变为“Disabled Standby(已禁用备用)”,在短时间内,备用数据库将承担主数据库的角色。自动故障转移结束后,禁用的备用数据库的详细信息页面上会显示一条消息,通知您发生了故障转移。
在服务解决以前的主要自治容器数据库问题后,您可以执行手动切换,将两个数据库恢复为其初始角色。预配备用数据库后,可以执行与备用数据库相关的各种管理任务,包括:
-
手动将主数据库切换到备用数据库
-
将主数据库手动故障转移到备用数据库。
-
在故障转移后将主数据库恢复为备用数据库角色。
-
终止备用数据库。
在具有多个备用数据库和自动故障转移的 Autonomous Data Guard 设置中:
-
手动故障转移要求您手动恢复原始主数据库,该主数据库将成为新的备用数据库。
-
每当发生自动故障转移时,专用 Exadata 基础结构上的自治 AI 数据库都会尝试将旧主数据库恢复为备用数据库。但是,如果该尝试失败,则必须手动恢复该尝试。
快照备用数据库
快照备用数据库是一种通过将备用自治容器数据库 (ACD) 转换为快照备用 ACD 而创建的完全可更新备用数据库,有关分步说明,请参见 Convert Physical Standby to Snapshot Standby 。
快照备用数据库会接收和归档(但不应用)主数据库的重做的数据。但是,它会增加恢复时间目标 (Recovery Time Objective,RTO),因为不会应用来自主数据库的实时更改。
快照备用功能支持各种用例,但以下是主要用例:
-
以读写模式将主和备用应用程序实例连接到主和备用数据库以执行初始配置。
-
首先为快照备用数据库打补丁,然后使用备用应用程序实例进行测试以确认补丁程序稳定性。这需要先将物理备用数据库转换为快照备用数据库,以便可以在快照备用数据库上应用补丁程序。
注:无法将物理备用自治容器数据库转换为启用了自动故障转移的快照备用数据库。
转换为快照备用数据库时,您可以激活仅在快照模式下处于活动状态的新数据库服务,也可以使用与主数据库使用的同一组服务。但是,激活快照备用数据库上的主数据库服务可能会导致将快照备用连接请求转发到主数据库,反之,如果您使用的数据库连接字符串不正确。因此,连接到主数据库和快照备用数据库时,必须小心使用适当的连接字符串。
注:使用快照备用数据库创建新服务时,将更新快照备用 ACD 中所有自治 AI 数据库的 wallet。要访问数据库,请从备用自治 AI 数据库重新加载钱包并使用快照备用连接字符串。
您可以手动将快照备用 ACD 从 Oracle Cloud Infrastructure (OCI) 转换为物理备用 ACD。有关详细说明,请参见 Convert Snapshot Standby to Physical Standby 。如果未手动将快照备用数据库转换为物理备用数据库,则将在创建 7 天后自动将其转换回物理备用数据库。无论如何,将快照备用数据库转换回物理备用数据库将放弃对快照备用数据库的所有本地更新,并应用从主数据库接收的重做数据。
备用 ACD 处于快照备用模式时,无法对主 ACD 执行以下操作:
-
创建或终止自治 AI 数据库
-
纵向扩展或收缩自治 AI 数据库
-
还原自治 AI 数据库
如果情况需要,您可以从主数据库手动将故障转移到快照备用数据库。在这种情况下,故障转移将快照备用数据库转换为物理备用数据库,方法是放弃对快照备用数据库所做的所有本地更新并应用主数据库中的数据。有关分步说明,请参见 Fail Over to the Standby in an Autonomous Data Guard Configuration 。
不允许在主数据库与其快照备用数据库之间进行切换。尝试切换之前,必须手动将快照备用数据库转换为物理备用数据库。
从客户机应用程序访问备用数据库
在 Autonomous Data Guard 配置中,客户机应用程序通常连接到主数据库并在主数据库上执行操作。
连接到物理备用数据库
除了此普通连接外,Autonomous Data Guard 还提供在备用数据库上执行只读操作的客户端应用程序连接选项。为了利用此选项,客户机应用程序使用包含 "_RO" 的数据库服务名称(对于“只读”)连接到数据库,如 Predefined Database Service Names for Autonomous AI Database 中所述。
连接到快照备用数据库
Autonomous Data Guard 还允许您将执行读写操作的客户端应用程序连接到快照备用数据库。这些操作是快照备用数据库的本地操作,不会修改其主数据库。要连接到快照备用数据库,客户机应用程序可以使用包含 "_SS"(用于“快照备用”)的数据库服务名称,如 Predefined Database Service Names for Autonomous AI Databases 中所述。
注:当备用数据库处于快照备用模式时,所有在其名称中包含 "_RO" 服务的数据库服务都处于非活动状态,无法用于连接。
监视滞后时间
在使用 Autonomous Data Guard 的数据库运行时,您可以通过选择 Autonomous Data Guard Groups(自治数据卫士组),从数据库(或容器数据库的“详细信息”页面监视传输滞后并应用滞后时间。您还可以使用 OCI 控制台或观测 API 来监视传输滞后并配置预警和通知。有关详细信息,请参阅使用自治 AI 数据库度量进行数据库观测。
随着数据库的工作量 ebbs 和流量的增加,您应该会看到随时间推移的小幅波动。但是,如果您注意到滞后时间持续上升趋势,则可以采取以下操作解决这种情况:
-
应用滞后中的向上趋势。 应用延迟的持续上升趋势表明备用数据库没有足够的容量来跟上来自主数据库的重做记录。要解决此问题,请扩展数据库的 OCPU,如 Add CPU or Storage Resources to a Dedicated Autonomous AI Database 中所述。
-
运输滞后的上升趋势。 传输滞后的持续上升趋势表明存在网络性能问题。Oracle Cloud 运营人员会持续监视网络性能,因此您应该看到这种情况无需采取任何操作即可自行解决。但是,如果需要,您可以通过提出服务请求将情况提交给操作人员,如 Create a Service Request in My Oracle Support 中所述。
Autonomous Data Guard 配置选项
配置 Autonomous Data Guard 时,您可以指定要在其中创建备用数据库的 Exadata 基础结构和 Autonomous Exadata VM Cluster 资源,并指定要使用的数据保护模式。
指定要用于备用数据库的 Exadata 基础结构和自治 Exadata VM 集群资源时,可以选择以下选项:
-
在与主数据库的 Exadata 基础结构和自治 Exadata VM 集群不同的区域中:
此选项提供最高级别的灾难防护,包括外部网络连接或整个区域的电源灾难性丢失。
要充分利用此跨区域保护,还需要对您的应用层进行配置以支持跨区域保护。因此,如果您的应用层已按此配置,或者您愿意重新配置它以支持跨区域保护,Oracle 建议您选择此选项。
如果您选择将备用数据库定位到其他区域,Oracle 建议您使用高性能保护模式。
-
在与主数据库的 Exadata 基础结构和自治 Exadata VM 集群不同的可用性域 (AD) 中:
此选择可提供高水平的灾难防护,包括外部网络连接灾难性丢失或区域内可用性域断电。
此选项可在应用层的数据保护和配置简单性之间实现良好平衡。
如果您选择在其他可用性域中查找备用数据库,Oracle 建议您使用高可用性保护模式。
-
在与主数据库的 Exadata 基础结构和自治 Exadata VM 集群相同的可用性域 (AD) 中:
此选项提供了针对灾难的最低级别保护,Oracle 建议您不要选择该选项。
如果主数据库的 Exadata 基础结构和自治 Exadata VM 集群资源所在的区域只有一个可用性域,则 Oracle 建议您使用“在其他区域中”选项。
如果您选择在同一可用性域中查找备用数据库,Oracle 建议您使用高可用性保护模式。
-
在与主数据库的 Exadata 基础结构和自治 Exadata VM 集群不同的租户中:
适用于:
仅限 Oracle Public Cloud此选项允许您在与主数据库不同的租户中添加备用数据库,从而允许数据库故障转移或切换到该跨租户备用数据库。您还可以在远程租户中创建快照备用数据库。拥有跨租户备用数据库有助于跨租户进行数据库迁移。
跨租户备用数据库:
-
可以通过 ECPU 或 OCPU 计算模型启用。备用数据库必须使用与主数据库相同的计算模型。
-
支持自动故障转移。但是,无法为部署在具有跨区域 Autonomous Data Guard 设置的 Exadata Cloud@Customer 中的自治 AI 数据库启用自动故障转移。
-
无法使用 Oracle Cloud Infrastructure 控制台添加。您只能使用 CLI 或 REST API 添加跨租户备用数据库。添加备用数据库后,您可以查看跨租户备用数据库,从 Oracle Cloud Infrastructure 控制台执行故障转移或切换到跨租户备用数据库。
-
关于保护模式
Autonomous Data Guard 提供了以下数据保护模式:
-
最高可用性。 该保护模式在不牺牲主数据库可用性的情况下尽可能提供最高级别的数据保护。
主数据库在收到备用数据库上已收到数据的确认(不是已将其写入磁盘)之前不会提交事务。如果主数据库在 30 秒内未收到此确认,则其运行方式就好像处于最高性能模式,以保持主数据库可用性,直到它及时再次收到确认。
此保护模式可确保零数据丢失,但某些双重故障(例如备用数据库发生故障后主数据库发生故障)除外。
-
最高性能。 这是默认的保护模式。它提供最高级别的数据保护,在不影响主数据库性能的情况下提供最高级别的数据保护。
当这些事务处理生成的所有重做数据都写入其联机重做日志时,主数据库将立即提交事务处理。它还会将重做数据发送到备用数据库,但这是在事务处理提交方面异步完成的,因此主数据库性能不受将重做数据写入备用数据库的延迟影响。
此保护模式提供的数据保护略低于最高可用性模式,并且对主数据库性能的影响极小。
您可以从 Oracle Cloud Infrastructure (OCI) 控制台更改 Autonomous Data Guard 设置中的保护模式。有关分步说明,请参阅更新 Autonomous Data Guard 设置。
有关 Oracle Data Guard 中的保护模式(作为 Autonomous Data Guard 功能的基础)的更多信息,请参阅 Oracle Data Guard Concepts and Administration 中的 Oracle Data Guard Protection Modes 。
配置 Autonomous Data Guard 时的最佳实践
Autonomous AI Database 允许您使用 Autonomous Data Guard 最多创建两个备用 ACD,但您可以根据您的需求选择使用单个或多个备用 ACD。但是,要使用自治 AI 数据库提供的最具弹性的灾难恢复选项,您可以添加一个本地备用 ACD 和一个远程或跨区域备用 ACD,并将最高可用性作为数据保护模式。
让我们了解此设计的益处:
-
本地备用:
-
自动故障转移到同一区域中的本地备用数据库可显著简化本地灾难隔离和应用故障转移。
-
本地备用数据库的业务价值体现在零数据丢失故障转移和应用停机时间缩短到几秒钟。
-
应用会自动透明地故障转移到本地备用数据库,从而保持应用服务器与数据库之间的延迟。这对于 OLTP 和程序包应用尤为重要,因为更高的延迟会显著影响吞吐量和整个应用响应时间。
-
-
远程备用:
-
如果区域灾难导致无法访问主备用系统和本地备用系统,则应用和数据库可能会故障转移到远程备用系统。
-
尽管发生区域灾难时数据库停机时间仍然很低,但由于向辅助区域执行 DNS、应用和数据库故障转移操作所需的额外编排,应用停机时间可能会更高。
-
-
最高可用性:
-
如果启用了自动故障转移或快速启动故障转移 (FSFO),则每当主 ACD 不可用时,Autonomous Data Guard 都会故障转移到本地备用数据库,不会丢失数据,也不会更改应用中的数据库延迟。
-
如果启用了自动故障转移或快速启动故障转移 (fast start failover,FSFO),则每当无法访问整个主区域时,系统都会故障转移到远程备用数据库,并可能丢失数据。
-
Autonomous Data Guard 如何影响标准管理操作
在某些情况下,您在自治容器数据库上执行的标准管理操作在自治数据卫士配置中的主容器数据库和备用容器数据库上的工作方式与标准容器数据库不同。以下列表介绍了这些差异。
-
更改维护计划
主容器数据库及其备用数据库的维护计划已链接:备用数据库上的维护在主数据库上进行维护前几天执行。默认值为 7 天;您可以在创建主容器数据库时选择 1 到 7 天,也可以稍后通过编辑其维护详细信息进行选择。
-
更改维护类型
主容器数据库的维护类型及其备用数据库必须相同。在创建主容器数据库时或者以后通过编辑主容器数据库的维护详细信息来选择主容器数据库和备用数据库的维护类型。
-
禁止自动备份
在使用 Autonomous Data Guard 预配自治容器数据库 (Autonomous Container Database,ACD) 时,您无法禁用自动备份。
-
管理安排的维护
您可以单独管理主容器数据库及其备用数据库的调度维护。但是,由于链接了这两者的维护,如果选择改写计划维护时间,则必须在主数据库之前对备用数据库执行计划维护。
-
移至其他区间
您可以单独和独立地将主容器数据库和备用容器数据库移动到不同的区间,就像它们是标准容器数据库一样。但是,与标准容器数据库一样,在移动容器数据库时应格外谨慎,以确保容器数据库始终可供相应的云用户组访问。
-
重新启动
您可以单独和独立地重新启动主容器数据库和备用容器数据库,就像它们是标准容器数据库一样。
-
轮换加密密钥
可以从主 ACD 或主数据库轮换加密密钥。
-
终止
您可以单独终止主容器数据库和备用容器数据库。但是,终止主容器数据库和终止备用容器数据库的后果不同:
-
终止主容器数据库将终止主容器数据库和备用容器数据库。无法终止包含自治 AI 数据库的主容器数据库。
-
终止备用容器数据库将终止备用容器数据库,并将其从 Autonomous Data Guard 配置中删除。如果仅剩一个主数据库,则会删除 Autonomous Data Guard 配置,从而将主数据库转换为独立的容器数据库。
-
分步指南
有关在自治容器数据库中管理 Autonomous Data Guard 配置的分步指导,请参阅:
您还可以使用 API 查看和管理 Autonomous Data Guard 配置。有关更多详细信息,请参见 API to Manage Autonomous Data Guard Configuration 。