高可用性

了解实现高可用性的方法,确保尽可能减少 OCI GoldenGate 服务中断。

关于 OCI GoldenGate 中的高可用性

高可用性是系统在很长一段时间内保持运行和可访问的能力。要利用 OCI GoldenGate 实现高可用性,您可以在主部署(本地备用)或不同区域(跨区域备用)的同一区域中创建对等部署。此设置可确保恢复点目标 (Recovery Point Objective,RPO) 为零,恢复点目标是在备用可用性域 (Availability Domain,AD) 中恢复 OCI GoldenGate 之前丢失的最大数据量。恢复时间目标 (Recovery Time Objective,RTO) 是备用 AD 中恢复 OCI GoldenGate 的最大时间量,具体取决于部署中存储的数据量。存储利用率越高,RTO 的使用时间就越长。

请考虑选择与源实例和目标实例相同的备用区域。例如,如果您的 Autonomous AI Database 备用数据库位于法兰克福,请为您的 OCI GoldenGate 部署备用数据库选择法兰克福。

注意:

对等部署按与主部署相同的费率计费。了解有关 OCPU 管理和计费的更多信息。

概念

以下概念对于实现 OCI GoldenGate 高可用性至关重要:

  • 主要部署:首先创建的主要数据复制部署。
  • 对等部署:在发生灾难或服务中断时可以切换到的备用部署。
  • 本地对等端:对等端部署与主部署位于同一区域,但位于不同的可用性域或容错域中。
  • 远程对等部署:驻留在其他区域的对等部署。
  • 恢复点目标 (Recovery Point Objective,RPO):恢复 OCI GoldenGate 之前可能丢失的最大数据量。对于 OCI GoldenGate ,RPO 为零。
  • 恢复时间目标 (Recovery Time Objective,RTO):恢复 GoldenGate 的最大时间量。RTO 取决于部署中存储的数据量。存储利用率越高,RTO 越长。

启用 Data Guard 的基本数据库连接

如果对 OCI GoldenGate 源或目标使用启用了 Data Guard 的基本数据库,则在实施高可用性解决方案时,必须确保数据库连接字符串中的服务名称在对等方之间是相同的。

在创建与启用 Data Guard 的 Oracle Base Database 系统(容器数据库 (Container Database,CDB) 或可插入数据库 (Pluggable Database,PDB) 的 OCI GoldenGate 连接时, OCI GoldenGate 将检索数据库的默认连接字符串并生成适合 Data Guard 环境的合并 Oracle Net 连接描述符。例如:

(DESCRIPTION=
   (FAILOVER=ON)(LOAD_BALANCE=OFF)(CONNECT_TIMEOUT=5)(TRANSPORT_CONNECT_TIMEOUT=3)(RETRY_COUNT=3)
   (ADDRESS_LIST=  
      (ADDRESS=(PROTOCOL=TCP)(HOST=primary-or-scan.example.fqdn)(PORT=1521))    
      (ADDRESS=(PROTOCOL=TCP)(HOST=standby-or-scan.example.fqdn)(PORT=1521))
    )  
   (CONNECT_DATA=(SERVICE_NAME=default-service-name-of-the-selected-db))
 )

OCI GoldenGate 生成一个说明,其中包含对等端点(主端点和备用端点)的 ADDRESS_LIST 和 CONNECT_DATA 的单个 SERVICE_NAME。OCI GoldenGate 的高可用性解决方案要求所有对等节点(主节点和备用节点)使用相同的服务名称。在每个对等点上具有相同名称的基于角色的服务是必需的。

默认 CDB 服务名称通常在对等方之间有所不同,因为它们通常包括每个数据库的唯一名称。OCI GoldenGate 将所选数据库的默认服务名用作合并描述符中的 SERVICE_NAME。因此,必须在每个对等点上重命名基于 PRIMARY 角色的服务名称,以匹配默认服务名称。

默认 PDB 服务通常与其对等项匹配,因此 OCI GoldenGate 可以在合并描述符中使用默认服务名,而无需进行其他更改。但是,如果以后更改 PDB 的服务名称,则 OCI GoldenGate 不会自动获取更改。现在必须手动管理连接。如果以前未创建可以手动输入连接字符串的连接,则必须创建到此数据库的新连接,选择“Enter database information(输入数据库信息)”,然后手动输入数据库连接字符串。

提示:

  • 使用基于角色的服务。定义仅在 PRIMARY 上运行的读/写服务(以及使用 Data Guard 时可选在 PHYSICAL_STANDBY 上运行的只读服务)。
  • 为应用程序服务避免静态监听程序条目。使用动态注册,以便仅当数据库处于正确的角色时才通告服务。
  • 如果使用 srvctl 更改 CDB 或 PDB 服务名称,请确保在 OCI GoldenGate 中创建手动管理的连接(在“创建连接”屏幕中选择输入数据库信息),然后更新连接字符串以进行匹配。