任务 2:配置 Oracle GoldenGate 环境

执行以下步骤以完成此任务:

步骤 2.1:访问部署

要访问部署,请执行以下操作:

步骤 2.2:创建数据库身份证明

使用 Oracle GoldenGate Microservices UI 可使用上述 TNS 别名创建数据库身份证明。以 oggadmin 用户身份添加数据库身份证明:

  1. 登录到 Oracle GoldenGate 管理服务:https://localhost:<localPort>/services/<deployment_name>/adminsrvr/v2/content/。

  2. 在左侧导航菜单中,选择 DB Connections(DB 连接)。

  3. 在“数据库连接”页上,选择添加数据库连接(加号图标)。

  4. 为每个源和目标 CDB 以及 PDB 添加所需信息:

    区域 容器 域 别名 用户 ID
    区域 1 CDB GoldenGate Reg1_CDB c##ggadmin@
    区域 1 PDB GoldenGate Reg1_PDB ggadmin@
    区域 2 CDB GoldenGate Reg2_CDB c##ggadmin@
    区域 2 PDB GoldenGate Reg2_PDB ggadmin@

步骤 2.3:创建自动启动配置文件

创建在 Oracle GoldenGate 管理服务器启动时自动启动提取和复制进程的概要文件,并在放弃任何提取或复制进程时重新启动。在 GoldenGate Microservices 中,配置文件管理自动启动和重新启动。

使用 Oracle GoldenGate 管理服务器 UI,创建要分配给每个 Oracle GoldenGate 进程的概要文件:

  1. 登录到源 GoldenGate 部署的 GoldenGate WebUI。

  2. 在导航菜单中,选择 Managed Process Profiles(管理的进程配置文件)。

  3. 在“托管进程设置”页上选择添加概要文件。

  4. 按如下方式输入详细信息:

    • 配置文件名称:Start_Default

    • 说明:默认自动启动/重新启动配置文件

    • 默认配置文件:是

    • 自动启动:是

    • 自动启动选项

      • 启动延迟:1 分钟

      • 自动重新启动:是

    • 自动重新启动选项

      • 最大重试次数:5

      • 重试延迟:30 秒

      • 重试窗口:30 分钟

      • 仅在失败时重新启动:是

      • 在重试次数用完后禁用任务:是

  5. 选择提交

  6. 在目标 GoldenGate 部署上重复以上步骤。

步骤 2.4:配置 Oracle GoldenGate 进程

使用 Oracle GoldenGate 微服务体系结构创建提取、分发路径和复制进程时,需要在 GGHub 节点之间共享的所有文件都已与存储在共享文件系统上的部署文件共享。

以下是针对提取、分发路径和复制进程在 GGhub 上运行 Oracle GoldenGate 微服务时推荐的基本配置详细信息。

执行以下子步骤以完成此步骤:

步骤 2.5.1:提取配置

使用 Oracle GoldenGate 管理服务界面创建提取时,请将“线索子目录”参数留空,以便自动在共享文件系统上存储的部署目录中创建线索文件。线索文件的缺省位置是 /<deployment directory>/var/lib/data 目录。

注:要从多租户数据库获取数据,必须使用在根级别配置的提取数据(使用 c## 账户)。要将数据应用于多租户数据库,每个 PDB 需要一个单独的复制,因为复制在 PDB 级别连接,并且无法访问该 PDB 之外的对象。

对于使用重做传输 "Maximum Performance" 或 "Maximum Availability" 模式的 Data Guard 配置的 GoldenGate 提取进程,必须将以下参数添加到主系统上的提取进程参数文件中,以避免丢失事务处理并导致逻辑数据不一致:

TRANLOGOPTIONS HANDLEDLFAILOVER

此参数阻止 Extract 从尚未应用于 Data Guard 备用数据库的重做中提取事务处理数据。这对于防止 Oracle GoldenGate 将数据复制到源备用数据库中不存在的目标数据库至关重要。

如果未指定此参数,则在源数据库发生数据丢失故障转移后,目标数据库中可能存在源数据库中不存在的数据,从而导致逻辑数据不一致。

默认情况下,在 60 秒后,提取由于无法查询备用数据库应用的 SCN 信息而停滞时,将向提取报告文件写入警告消息。例如:

WARNING OGG-02721  Extract has been waiting for the standby database for 60 seconds.

可使用提取参数“TRANLOGOPTIONS HANDLEDLFAILOVER STANDBY_WARNING”调整将警告消息写入提取报告文件之前的时间量。

如果提取在 30 分钟后仍无法查询备用数据库应用的 SCN 信息(默认值),则提取处理将异常终止,在提取报告文件中记录以下消息:

ERROR   OGG-02722  Extract abended waiting for 1,800 seconds for the
    standby database to be accessible or caught up with the primary database.

如果备用数据库在默认的 30 超时到期之前变为可用,则提取将继续从源数据库挖掘数据,并将以下消息报告到报告文件:

INFO    OGG-02723  Extract resumed from stalled state and started processing LCRs.

可以使用提取参数 "TRANLOGOPTIONS HANDLEDLFAILOVER STANDBY_ABEND " 调整 30 分钟的超时值,其中值是异常终止前备用数据库无法使用的秒数。

如果备用数据库在较长时间内(例如在计划内维护停机期间)不可用,并且您希望 Extract 继续从主数据库提取数据,请从 Extract 参数文件中删除 "TRANLOGOPTIONS HANDLEDLFAILOVER" 参数,然后重新启动 Extract(请参阅图 4 到图 6 中的示例)。记得在备用数据库可用后设置参数。

注:如果在备用数据库不可用时继续从主数据库提取数据,则在备用数据库可用后可能会导致数据丢失故障转移,并且并非在故障转移之前应用了所有主重做。GoldenGate 目标数据库将包含源数据库中不存在的数据。

如果提取处理已分配自动重新启动概要文件,则在 Data Guard 角色转换之后,提取处理将自动重新启动。提取将继续从新主数据库挖掘重做数据,忽略新备用数据库的当前状态,直到默认的 5 分钟超时期限到期。在此时间之后,如果备用数据库不可用,则提取将异常终止,并出现以下错误:

INFO    OGG-25053  Timeout waiting for 300 seconds for standby database
 reinstatement. Now enforcing HANDLEDLFAILOVER.
ERROR   OGG-06219  Unable to extract data from the Logmining server OGG$CAP_XXXXX.
ERROR   OGG-02078  Extract encountered a fatal error in a processing thread and is
 abending.

提取将根据 GoldenGate 微服务自动重新启动概要文件继续自动重新启动,并且由于达到 HANDLEDLFAILOVER 超时而失败,直到达到重试次数或新备用数据库可用为止。

在数据库角色转换后的超时期限内,会自动暂停 HANDLEDLFAILOVER 参数,因此数据将复制到 Oracle GoldenGate 副本数据库,而不会考虑源备用数据库未保持最新。可以使用提取参数 TRANLOGOPTIONS DLFAILOVER_TIMEOUT 调整要在提取异常终止之前启动的备用数据库的超时时段。

建议将 DLFAILOVER_TIMEOUT 默认为 5 分钟,以允许旧主数据库转换为备用数据库。如果新备用数据库在较长的时间内不可用或完全消失,则为了使提取能够启动并保持运行,必须从提取参数文件中删除 HANDLEDLFAILOVER 参数。删除该参数后,提取将不再等待,直到在提取数据之前将重做应用于备用数据库。

在备用数据库恢复联机并应用主数据库中的所有重做所需的时间内,该数据库与 Oracle GoldenGate 副本数据库之间存在数据差异。当备用数据库是最新的时,将解决此问题。此时,将 HANDLEDLFAILOVER 参数重新添加到集成的提取进程参数文件中,然后停止并重新启动提取。

禁用 Oracle Data Guard 快速启动故障转移后,如果主数据库丢失,中介可以自动故障转移到备用数据库,则必须指定下面显示的附加集成提取参数。

TRANLOGOPTIONS FAILOVERTARGETDESTID n

此参数标识 Oracle GoldenGate 提取进程必须保留的备用数据库,以及未提取尚未应用于备用数据库的重做数据。

如果禁用了 Oracle Data Guard 快速启动故障转移,并且您未指定额外的集成提取参数 FAILOVERTARGETDESTID,则提取将异常终止,并出现以下错误:

ERROR OGG-06219 Unable to extract data from the Logmining server OGG$CAP_XXXXX.
ERROR OGG-02078 Extract encountered a fatal error in a processing thread and is abending.

要确定 FAILOVERTARGETDESTID 的正确值,请使用 GoldenGate 源数据库中的 LOG_ARCHIVE_DEST_N 参数,该参数用于将重做发送到源备用数据库。例如,如果 LOG_ARCHIVE_DEST_2 指向备用数据库,则使用值 2。

以主数据库系统上的 oracle 用户身份执行以下命令:

[opc@exapri-node1 ~]$ sudo su - oracle
[oracle@exapri-node1 ~]$ source <db_name>.env
[oracle@exapri-node1 ~]$ sqlplus / as sysdba

SQL> show parameters log_archive_dest

NAME                  TYPE        VALUE
--------------------- ----------- ---------------------------------------------------
log_archive_dest_1    string      location=USE_DB_RECOVERY_FILE_DEST,
                                  valid_for=(ALL_LOGFILES, ALL_ROLES)

log_archive_dest_2    string      service="<db_name>", SYNC AFFIRM delay=0
                                  optional compression=disable max_failure=0 reopen=300
                                  db_unique_name="<db_name>" net_timeout=30,
                                  valid_for=(online_logfile,all_roles)

在此示例中,提取参数将设置为以下值:

TRANLOGOPTIONS FAILOVERTARGETDESTID 2

创建提取:

  1. 登录到源 Oracle GoldenGate。

  2. 在导航菜单中,选择提取。

  3. 在“提取”页上,选择添加提取。

  4. 按如下方式完成“添加提取”表单:

    1. 对于提取信息:

      • 提取类型:集成提取。

      • 进程名称:EXT_1

      • 说明:为区域 1 CDB 提取

    2. 对于提取选项:

      • 身份证明域:GoldenGate

      • 身份证明别名:Reg1_CDB

      • 注册到 PDB:PDB 名称

      • 意图:单向

      • 开始:现在

      • 线索名称:aa

  5. 选择 Next

  6. 如果使用 PDB 中的 CDB 根捕获,则添加带有 PDB 名称的 SOURCECATALOG 参数

  7. 选择创建并运行

步骤 2.5.2- 复制配置

Oracle 通常建议使用集成的并行复制,当 GGHUB 与目标 Oracle GoldenGate 数据库位于同一区域时,它可为大多数工作负载提供更好的应用性能。

当 GGHUB 与目标数据库之间的网络延迟尽可能低时,可以实现最佳应用性能。对于在 Oracle GGHUB 上运行的远程复制,建议使用以下配置。

步骤 2.5.2.1 - 创建检查点表

检查点表是 Oracle GoldenGate Replicat 进程的必需组件。从管理服务的“身份证明”页连接到数据库后,可以创建检查点表。

在目标部署中创建检查点表:

  1. 登录到 Oracle GoldenGate Web UI。

  2. 在导航菜单中,选择 DB Connections(DB 连接),然后连接到目标数据库。

  3. 成功连接到目标数据库后,选择检查点表。

  4. 选择添加检查点(加号图标)。此时将显示 "Add Checkpoint"(添加检查点)页面。

  5. 对于检查点表,输入 ggadmin.chkp_table。

  6. 选择提交

请参阅添加检查点表。

步骤 2.5.2.2 - 添加复制

设置数据库连接并验证数据库连接后,您可以按照以下步骤为部署添加复制:

  1. 在导航菜单中,选择 Replicats 。

  2. 在 "Replicats"(复制)页面上,选择 Add Replicat(添加复制)(加上图标)。此时将显示 "Add Replicat"(添加复制)页面。

  3. 选择复制类型,然后选择下一步。

  4. 按如下方式输入详细信息:

    • 进程名称:REP_1

    • 说明:区域 2 PDB 的复制

    • 意图:单向

    • 身份证明域:GoldenGate

    • 身份证明别名:Reg2_PDB

    • 来源:线索

    • 线索名称:aa

    • 开始:日志中的位置

    • 检查点表:“GGADMIN”CHKP_TABLE

  5. 选择下一步

  6. 在操作菜单中,选择开始。

步骤 2.5.3 - 分发路径配置

仅当需要将线索文件发送到其他区域(甚至是相同的区域)中的其他 Oracle GoldenGate Hub 时,才需要分发路径,如下图所述。

图 1:Oracle GoldenGate 分发路径

后面是图像的说明

将 Oracle GoldenGate 分发路径与 NGINX 反向代理一起使用时,必须执行其他步骤以确保配置路径客户机和服务器证书。

有关详细信息,请参阅分发服务路径。以下视频提供了分步示例:“使用 NGINX 将本地部署 Oracle GoldenGate 连接到 OCI GoldenGate”,以正确配置证书。

下面是此子步骤中执行的步骤:

步骤 2.5.3.1 - 下载目标服务器的根证书,然后将其上载到源 Oracle GoldenGate

下载目标部署服务器的根证书并将 CA 证书添加到源部署服务管理器。

  1. 登录到目标 GoldenGate 的 GoldenGate Web UI。

  2. 使用 NGINX 将本地部署 Oracle GoldenGate 连接到 OCI GoldenGate 视频中的“Step 2 - Download the target server's root certificate”。

步骤 2.5.3.2 - 在目标部署中创建要使用的源 Oracle GoldenGate 的用户

  1. 在目标 GoldenGate Web UI 中,从左侧导航中选择用户管理。

  2. 选择添加新用户,然后完成以下操作:

    1. 验证者:从下拉列表中选择“密码”。

    2. 角色:从下拉列表中选择“运算符”。

    3. 用户名:输入您的用户名。

    4. Password 和 Verify Password :输入与此用户关联的密码。

  3. 选择提交。

步骤 2.5.3.3 - 在源 Oracle GoldenGate 中创建路径连接

在将目标部署与上一步中创建的用户连接在一起的源部署中创建路径连接。例如,域 OP2C 和别名 WSSNET。

  1. 登录到源 Oracle GoldenGate。

  2. 在导航菜单中,选择路径连接。

  3. 在“路径连接”页上,选择添加路径连接,然后完成以下操作:

    1. 身份证明别名:输入别名。

    2. 用户 ID :输入在步骤 2.5.3.2 中创建的用户的名称。

    3. Password 和 Verify Password :输入步骤 2.5.3.2 中与此用户关联的密码。

  4. 选择提交。

步骤 2.5.3.4 - 在源 Oracle GoldenGate 上创建到目标部署的分发路径

创建路径以将线索文件从分发服务器发送到接收服务器。您可以从分发服务创建路径。要为源部署添加路径,请执行以下操作:

  1. 在源 Oracle GoldenGate 中,从导航菜单中选择 Distribution Service Paths(分配服务路径)。

  2. 选择添加路径(加号图标)。此时将显示 "Add Path"(添加路径)页面。

  3. 按如下方式输入详细信息:

    1. 输入 Path Name(路径名)。

    2. 对于源,从下拉列表中选择提取名称。

    3. 对于 Generated Source URI ,输入 localhost 作为服务器的名称。这使得分发路径可以从任何 Oracle RAC 节点启动。

    4. 对于目标验证方法,选择 UserID 别名。

    5. 对于目标,选择 wss (安全 Web 套接字)。

    6. 对于目标主机,输入要用于连接到目标系统的目标主机名/VIP。

    7. 对于 Port Number(端口号),输入 NGINX 配置的端口号(默认值为 443)。

    8. 对于域,选择在步骤 2.3.3.3 中创建的身份证明域。

    9. 对于 Alias ,选择在步骤 2.3.3.3 中也创建的身份证明别名 wssnet 。

    10. 对于自动重新启动选项,将分发路径设置为在分发服务器自动启动时重新启动。这是必需的,因此在重新定位分发服务器的 RAC 节点后不需要手动干预。

    11. 对于重试次数,输入 10。

    12. 对于 Delay ,即在两次重新启动尝试之间暂停的时间(分钟),输入 1。

  4. 选择创建路径。

  5. 从“操作”菜单中,选择开始。