在数据库系统上使用 Oracle Data Guard

Oracle Data Guard 可确保企业数据的高可用性, 数据保护和灾难恢复。

Data Guard 实施需要两个数据库:一个是主数据库角色,另一个是备用数据库角色。两个数据库(主数据库和备用数据库)共同建立了数据卫士关联。大多数应用程序访问主数据库,而备用数据库是与主数据库在事务处理上保持一致的副本。

Data Guard 通过从主数据库传输和应用重做数据来维护备用数据库。如果主数据库变得不可用,则可以使用数据卫士将备用数据库切换到主数据库角色或将其故障转移到主数据库。

注意:

OCI 中的备用数据库是物理备用数据库。

本文介绍了如何使用控制台管理数据库系统中的数据卫士关联。

有关 Data Guard 的详细信息,请参阅 Oracle Data Guard 简介

必需的 IAM 策略

要使用 Oracle Cloud Infrastructure,必须由管理员在策略中为您授予安全访问权限。无论您是将控制台或 REST API 与 SDK、CLI 还是其他工具结合使用,都需要进行此访问。如果您收到一则表明您无权访问或未经授权的消息,请向管理员确认您具有哪些类型的访问权限以及要使用哪些区间

如果您刚接触策略,请参阅策略入门常见策略

先决条件和一般信息

数据卫士实施需要两个数据库系统,一个包含主数据库,另一个包含备用数据库。为数据库启用数据卫士时,将创建一个具有备用数据库的新数据库系统,并将其与主数据库关联。

注意:

对于每个主数据库,Data Guard 配置仅限于一个备用数据库。

要求详细信息如下:

  • 两个数据库系统必须位于同一区间中。
  • 数据库版本和版本必须相同。对于 23ai 数据库,主数据库和备用数据库必须处于同一主发行版版本,而备用数据库可以处于较高的次要版本。
  • Data Guard 不支持 Oracle Database Standard Edition。(Active Data Guard 需要 Enterprise Edition Extreme Performance。)
  • 数据卫士关联中的每个数据库必须具有一个唯一的名称 (DB_UNIQUE_NAME) 值,该值不能由存储数据卫士关联的数据库系统中的其他数据库使用。但是,主数据库和备用数据库可以使用相同的数据库名称 DB_NAME 值。
  • 数据库版本确定是否可以使用 Active Data Guard (ADG)。ADG 仅适用于 Enterprise Edition Extreme Performance。如果您使用的是 BYOL 许可模式,并且您的许可不包括 ADG,则必须确保在配置 Data Guard for Enterprise Edition Extreme Performance 时未启用 ADG。或者,您也可以使用 Enterprise Edition 或 Enterprise Edition High Performance(默认情况下不启用 ADG)。请参见 Use Oracle Data Guard with the Database CLI
  • 如果主数据库和备用数据库位于同一区域中,则两者必须使用相同的虚拟云网络 (VCN)。
  • 如果主数据库和备用数据库位于不同的区域,则必须对等每个数据库的虚拟云网络 (virtual cloud network,VCN)。请参阅使用 RPC 的远程 VCN 对等连接
  • 主数据库和备用数据库可能位于不同的区域中,但它们必须位于同一领域中。
  • 主数据库和备用数据库的 SYS 密码和 TDE wallet 密码必须相同。
  • 如果数据库将 OCI Vault 用于 TDE 密钥,则还支持跨区域 Data Guard。
  • 为数据卫士关联中两个数据库系统的子网配置安全列表入站和出站规则,以允许 TCP 流量在适用的端口之间移动。确保您创建的规则是有状态(默认值)。

    例如,如果主数据库系统的子网使用源 CIDR 10.0.0.0/24,备用数据库系统的子网使用源 CIDR 10.0.1.0/24,则创建规则,如后续示例中所示。

注意:

示例中的出站规则显示了如何仅为端口 1521 启用 TCP 通信,这是数据卫士工作的最低要求。如果您的所有传出端口 (0.0.0.0/0) 上都已启用 TCP 流量,则无需显式添加这些特定的出站规则。

已知问题

  • 在跨区域数据卫士中,执行切换后,无法在新主数据库上轮换数据库 KMS 密钥。
  • 在跨区域数据卫士中,执行切换后,无法在新的主数据库上创建 PDB。

主数据库系统上子网的安全列表

Ingress Rules:
	Stateless: No
	Source: 10.0.1.0/24
	IP Protocol: TCPSource Port Range: All 
	Destination Port Range: 1521
	Allows: TCP traffic for ports: 1521

Egress Rules:
	Stateless: No
	Destination: 10.0.1.0/24 
	IP Protocol: TCP 
	Source Port Range: All
	Destination Port Range: 1521
	Allows: TCP traffic for ports: 1521	

备用数据库系统上子网的安全列表

Ingress Rules:	
	Stateless: No
	Source: 10.0.0.0/24 
	IP Protocol: TCP 
	Source Port Range: All 
	Destination Port Range: 1521
	Allows: TCP traffic for ports: 1521

Egress Rules:
	Stateless: No
	Destination: 10.0.0.0/24 
	IP Protocol: TCP 
	Source Port Range: All
	Destination Port Range: 1521
	Allows: TCP traffic for ports: 1521	

有关创建和编辑规则的信息,请参阅安全列表

Oracle Data Guard 的可用性域和容错域注意事项

Oracle 建议包含备用数据库的数据库系统位于与包含主数据库的数据库系统不同的可用性域中,以改进可用性和灾难恢复。如果您为数据库启用 Oracle Data Guard,并且备用数据库与主数据库位于同一可用性域中(可以选择,或者因为您在单个可用性域区域中工作),则 Oracle 建议您将备用数据库置于与主数据库不同的容错域中。

注意:

如果主数据库和备用数据库是双节点 Oracle RAC 数据库,并且二者位于同一可用性域,则备用数据库的两个节点中的一个只能位于容错域中,该容错域不包括主数据库或备用数据库的任何其他节点这是因为每个可用性域只有三个容错域,而主数据库和备用数据库的总共四个节点。有关可用性域和容错域的更多信息,请参见区域和可用性域

使用 API

有关使用 API 和签名请求的信息,请参阅 REST API安全身份证明。有关 SDK 的信息,请参见 Software Development Kits and Command Line Interface

使用以下 API 操作管理 Data Guard 关联:

  • CreateDataGuardAssociation
  • GetDataGuardAssociation
  • ListDataGuardAssociations
  • SwitchoverDataGuardAssociation
  • FailoverDataGuardAssociation
  • ReinstateDataGuardAssociation
  • TerminateDbSystem

有关数据库服务的 API 的完整列表,请参阅数据库服务 API