将数据从 PostgreSQL 复制到自治事务处理

了解如何使用 OCI GoldenGate 将数据从 PostgreSQL 服务器数据库复制到自治事务处理。

开始之前

要成功完成此快速启动,您必须具有以下各项:

环境设置:PostgreSQL

要为此快速入门设置环境,请执行以下操作:
  1. 运行以下命令以 install PostgreSQL
    1. 安装 PostgreSQL 服务器:
      sudo yum install postgresql-server
    2. 安装 postgresql-contrib 模块以避免此 SQL 异常错误
      sudo yum install postgresql-contrib
    3. 创建新的 PostgreSQL 数据库集群:
      sudo postgresql-setup --initdb
    4. 启用 postgresql.service:
      sudo systemctl enable postgresql.service
    5. 启动 postgresql.service:
      sudo systemctl start postgresql.service
  2. 默认情况下,PostgreSQL 仅允许本地连接。允许远程连接至 PostgreSQL
    1. /var/lib/pgsql/data/postgresql.conf 中,准备要复制的数据库
    2. 找到并取消注释 listen_addresses = 'localhost' 并将 localhost 更改为一个星号 (*):
      listen_addresses = '*'
    3. 请如下所示设置以下参数:
      • wal_level = logical
      • max_replication_slots = 1
      • max_wal_senders = 1
      • track_commit_timestamp = on

      注意:

      配置 /var/lib/pgsql/data/pg_hba.conf 以确保客户机验证设置为允许从 Oracle GoldenGate 主机进行连接。例如,添加以下内容:
      #Allow connections from remote hosts
      host    all    all    0.0.0.0/0    md5
      有关更多信息,请参见 The pg_hba.conf File
    4. 重新启动 PostgreSQL 服务器:
      sudo systemctl restart postgresql.service
  3. 如果使用 Oracle Cloud Compute 托管 PostgreSQL,请打开端口 5432:
    sudo firewall-cmd --permanent --add-port=5432/tcp
    sudo firewall-cmd --reload
    sudo firewall-cmd --list-all
  4. 在 VCN 安全列表中打开端口 5432。
  5. 连接到 PostgreSQL
    > sudo su - postgres
    > psql

    注意:

    或者,如果以上示例不起作用,则可以输入 sudo su - postgres psql
  6. 设置 PostgreSQL。
    1. 下载并运行 seedSRCOCIGGLL_PostgreSQL.sql 以设置数据库并加载示例数据。
    2. 运行以下命令来设置用户(确保将 <password> 替换为实际密码):
      create user ggadmin with password '<password>';
      alter user ggadmin with SUPERUSER;
      GRANT ALL PRIVILEGES ON DATABASE ociggll TO ggadmin;

环境设置:自治事务处理 (Autonomous Transaction Processing,ATP)

  1. 下载并解压缩示例数据库方案
  2. 取消锁定 GGADMIN 用户。
    1. 在 Oracle Cloud 控制台中,从“Autonomous Databases(自治数据库)”页中选择您的 ATP 实例以查看其详细信息并访问 Database Actions。
    2. 单击数据库操作,然后单击数据库用户
    3. 找到 GGADMIN ,然后单击其省略号菜单(三个点),然后选择编辑
    4. 在“编辑用户”面板中,输入 GGADMIN 密码,确认密码,然后取消选择帐户已锁定
    5. 单击应用更改
  3. 加载目标示例方案和数据。
    1. 从“数据库操作”菜单中,选择 SQL
    2. 将脚本从 OCIGGLL_OCIGGS_SETUP_USERS_ADW.sql 复制并粘贴到 SQL 工作表中。
    3. 单击运行脚本。“脚本输出”选项卡显示确认消息。
    4. 清除 SQL 工作表,然后从 OCIGGLL_OCIGGS_SRC_MIRROR_USER_SEED_DATA.sql 复制并粘贴 SQL。
    5. 要验证表是否已成功创建,请关闭 SQL 窗口,然后重新打开。在“导航器”选项卡中,查找 SRC_OCIGGLL 方案,然后从各自的下拉列表中选择表。

任务 1:创建 OCI GoldenGate 资源

此快速入门示例需要源和目标的部署和连接。
  1. 为源 PostgreSQL 数据库创建部署
  2. 为目标 Autonomous Transaction Processing 实例创建部署
  3. 创建与源 PostgreSQL 数据库的连接
    1. 对于类型,请确保选择 PostgreSQL 服务器
    2. 对于数据库名称,输入 ociggll
    3. 对于主机,输入运行 PostgreSQL 的计算实例的公共 IP。
    4. 对于端口,输入 5432
    5. 有关用户名,请输入 ggadmin
    6. 对于密码,输入密码。
    7. 对于安全协议,选择普通
  4. 为目标 Autonomous Transaction Processing 实例创建连接
  5. 创建与 GoldenGate 的连接,然后将此连接分配给源 PostgreSQL 部署
  6. 将源连接分配给源 PostgreSQL 部署
  7. 将目标连接分配给目标 Oracle 部署

任务 2:启用补充事件记录

要启用补充日志记录,请执行以下操作:
  1. 启动 PostgreSQL GoldenGate 部署控制台:
    1. 在“部署”页中,选择 PostgreSQL 部署以查看其详细信息。
    2. 在 PostgreSQL 部署详细信息页上,单击启动控制台
    3. 在部署控制台登录页上,输入在任务 1 的步骤 1 中提供的 GoldenGate 管理身份证明。
  2. 在 GoldenGate 23ai 中,依次单击左侧导航中的数据库连接、源 PostgreSQL 数据库和 Trandata
  3. 在“TRANDATA”页面上,单击“TRANDATA 信息”旁边的添加 TRANDATA (加号图标)。
  4. 在 Trandata 面板中,为方案名称输入 src_ociggll.*,然后单击提交

    注意:

    使用搜索字段搜索 src_ociggll 并验证是否已添加表。

任务 3:创建提取

  1. 添加 Change Data Capture Extract
    1. 在左侧导航中,单击 Extracts(提取)
    2. 提取页上,单击添加提取(加号图标),然后按如下方式填写字段:
      • 在“提取信息”页面上:
        1. 对于提取类型,选择更改数据捕获提取
        2. 对于进程名,输入提取的名称,例如 ECDC
        3. 单击下一步
      • 提取选项页上:
        1. 对于源凭证,从下拉列表中选择 Oracle GoldenGate
        2. 别名下拉列表中选择源 PostgreSQL 数据库。
        3. 对于提取线索名称,输入两个字符的线索名称,例如 C1
        4. 单击下一步
      • 提取参数页上,将 MAP *.*, TARGET *.*; 替换为以下内容:
        TABLE SRC_OCIGGLL.*;
    3. 单击创建并运行
  2. 添加初始加载提取
    1. 在“提取”页上,单击添加提取,然后按如下方式完成“添加提取”表单:
      • 提取信息页上:
        1. 对于提取类型,选择初始加载提取
        2. 对于进程名,输入名称,例如 EIL
        3. 单击下一步
      • 提取选项页上:
        1. 对于 "Source"(源)凭证,从 Domain(域)下拉列表中选择 Oracle GoldenGate
        2. 别名下拉列表中选择 PostgreSQL 数据库。
        3. 对于提取线索名称,输入两个字符的线索名称,例如 I1
        4. 单击下一步
      • 提取参数页上,将文本区域的内容替换为以下内容:
        EXTRACT EIL
        USERIDALIAS PostgreSQL_Compute, DOMAIN OracleGoldenGate
        EXTFILE I1, PURGE
        TABLE src_ociggll.*;

        注意:

        在继续操作之前,请确保删除 USERIDALIAS 前面的 SOURCEDB 参数。
    2. 单击创建并运行
您可以返回到提取页,在该页中可以观察提取的开始。

任务 4:为 Initial Load 提取创建 Distribution Path

  1. 在“部署”页上,选择目标 Autonomous Database 部署。
  2. 在部署详细信息页上,单击启动控制台,然后以管理员用户身份登录。
  3. 如果使用 IAM 身份证明存储,请继续执行“创建 Distribution Path”步骤。如果使用 GoldenGate 身份证明存储,则创建源 GoldenGate 用于连接到目标 GoldenGate 的用户。
    1. 在导航菜单中,单击用户管理
    2. 单击添加新用户(加号图标),按如下所示填写字段,然后单击提交
      • 对于用户名,请输入 ggsnet
      • 对于角色,选择运算符
      • 输入口令两次以进行验证。
  4. PostgreSQL 部署控制台中,为在上一步中创建的用户创建路径连接。
    1. 在导航菜单中,单击路径连接
    2. 单击添加路径连接(加号图标),按如下所示填写字段,然后单击提交
      • 对于身份证明别名,输入 dpuser
      • 对于用户 ID,输入 ggsnet
      • 对于“密码”,输入上一步中使用的相同密码。
  5. 创建 Distribution Path
    1. 在服务菜单栏中,单击 Distribution Service ,然后单击添加 Distribution Path (加号图标)。
    2. 按以下操作完成“添加路径”表单:
      • 在“路径信息”页上:
        1. 对于路径名,输入此路径的名称。
        2. 单击下一步
      • 在“来源选项”页面上:
        1. 对于Extract ,留空。
        2. 对于线索名称,输入 Initial Load Extract 线索名称 (I1)。
        3. 单击下一步
      • 在“目标选项”页面上:
        1. 对于 Target(目标),选择 wss
        2. 对于目标主机,输入不带 https:// 或任何尾随斜杠的目标部署 URL。
        3. 对于端口号,输入 443
        4. 线索名称中,输入 I1
        5. 对于目标验证方法,选择 UserID 别名
        6. 对于,输入在上一步中创建的域名。
        7. 对于别名,输入在上一步 (dpuser) 中创建的别名。
        8. 单击下一步
    3. 单击创建并运行
    您可以返回到 Distribution Service 页面,在其中可以查看创建的路径。
  6. target Autonomous Database 部署控制台中,查看由于分发路径而创建的接收器路径:
    1. 单击 Receiver Service
    2. 查看 Distribution Path 详细信息。

任务 5:为 Initial Load 添加 Replicat

  1. 目标 Autonomous Database 部署中,添加一个 Checkpoint 表。
    1. 在导航菜单中,单击数据库连接
    2. 依次选择目标 Autonomous Database 实例和 Checkpoints
    3. Checkpoints 页面上,单击添加检查点(加号图标)。
    4. Checkpoint 面板中,对于方案表,输入 SRCMIRROR_OCIGGLL.CHECKTABLE
    5. 单击提交
  2. 添加 Replicat
    1. 在导航菜单中,单击 Replicats
    2. Replicats 页面上,单击添加 Replicat (加号图标),然后按如下所示填写“添加 Replicat”字段:
      • 在“Replicat 信息”页面上:
        1. 对于 Replicat 类型,选择 Nonintegrated Replicat
        2. 对于进程名,输入名称,例如 RIL
        3. 单击下一步
      • 在“Replicat 选项”页面上:
        1. 对于 Replicat 线索名称,输入任务 2 中的线索名称 (I1)。
        2. 对于目标身份证明,选择用于 Autonomous Database 连接的别名
        3. 对于检查点表,选择在步骤 1 中创建的检查点表。
        4. 单击下一步
      • 在“参数文件”页上,将 MAP *.*, TARGET *.*; 替换为以下内容:
        MAP SRC_OCIGGLL.*, TARGET SRCMIRROR_OCIGGLL.*;
    3. 单击创建并运行
      您可以返回到 Replicats 页面,在其中可以查看 Replicat 详细信息。
  3. 选择 Replicat ( RIL ) 并查看其详细信息
  4. 单击统计信息并查看插入数。刷新页。
    • 如果插入数未更改,则已加载 Initial Load 中的所有记录,您可以停止 Replicat ( RIL )
    • 如果插入数继续增加,则继续刷新页面,直到加载完 Initial Load 记录后再继续。
  5. 验证 Initial Load
    1. Oracle Cloud 控制台的 Autonomous Database 详细信息页面上,单击数据库操作,然后单击 SQL
    2. 在 SQL 工具中,在工作表中输入以下每个语句,然后单击运行语句
      SELECT * FROM SRCMIRROR_OCIGGLL.SRC_CITY;
      SELECT * FROM SRCMIRROR_OCIGGLL.SRC_CUSTOMER;
    输出应返回由于 Initial Load 而加载到目标数据库表中的数据。

任务 6:为 Change Data Capture Extract 创建 Distribution Path

  1. PostgreSQL 部署控制台中,单击 Distribution Service
  2. 单击添加 Distribution Path
  3. 按以下操作完成“添加路径”表单:
    1. 在“路径信息”页上:
      1. 对于路径名,输入名称。
      2. 单击下一步
    2. 在“来源选项”页面上:
      1. 对于Extract ,选择 Change Data Capture Extract (ECDC))。
      2. 对于线索名称,选择 Change Data Capture 线索文件 (C1)。
      3. 单击下一步
    3. 在“目标选项”页面上:
      1. 对于 Target(目标),选择 wss
      2. 对于目标主机,输入目标部署控制台 URL(您可以在部署详细信息页上找到此 URL,不带 https:// 或任何尾随斜杠)。
      3. 对于端口号,输入 443
      4. 对于线索名称,输入 C1
      5. 对于目标验证方法,选择 UserID 别名
      6. 中,输入域名。
      7. 对于别名,请输入别名。
    4. 单击创建路径并运行
  4. 在目标 Autonomous Database 部署控制台中,单击接收器服务,然后查看创建的接收器路径。

任务 7:为 Change Data Capture 添加 Replicat

  1. 目标 Autonomous Database 部署控制台中,添加一个 Replicat
    1. 在“管理服务”导航菜单中,单击 Replicats
    2. Replicats 页面上,单击“添加 Replicat”(加号图标),然后按如下所示填写“添加 Replicat”表单:
      • 在“Replicat Information(复制信息)”页面上:
        1. 对于 Replicat 类型,选择 Nonintegrated Replicat
        2. 对于进程名,输入名称,例如 RCDC
        3. 单击下一步
      • 在“Replicat 选项”页面上:
        1. 对于 Replicat 线索名称,输入任务 3 中的线索名称 (C1)。
        2. 对于目标身份证明,选择 Autonomous Database 连接的域和别名。
        3. 对于 Checkpoint Table ,选择 "Checkpoint" 表。
      • 在“Replicat 参数”页上,将 MAP *.*, TARGET *.*; 替换为以下映射:
        MAP SRC_OCIGGLL.*, TARGET SRCMIRROR_OCIGGLL.*;
    3. 单击创建。不运行 Replicat
  2. Replicats 页上,为 Initial Load ( RIL ) 选择 Replicat 并查看其详细信息
  3. 单击统计信息并查看插入数。刷新页。
    • 如果插入数未更改,则已加载 Initial Load 中的所有记录,您可以停止 Replicat (RIL)
    • 如果插入数继续增加,则继续刷新页面,直到加载完 Initial Load 记录后再继续。

    注意:

    如果未看到任何插入,请单击性能度量服务,选择提取,然后单击数据库统计信息
  4. 返回到 Replicats 页,然后为 Change Data Capture (RCDC) 启动 Replicat
  5. Change Data Capture 启动 Replicat 后,请查看其详细信息统计信息以查看插入数。
  6. 验证复制:
    1. 运行以下脚本以对 PostgreSQL 数据库执行插入:
      Insert into src_ociggll.src_city (CITY_ID,CITY,REGION_ID,POPULATION) values (1000,'Houston',20,743113);
      Insert into src_ociggll.src_city (CITY_ID,CITY,REGION_ID,POPULATION) values (1001,'Dallas',20,822416);
      Insert into src_ociggll.src_city (CITY_ID,CITY,REGION_ID,POPULATION) values (1002,'San Francisco',21,157574);
      Insert into src_ociggll.src_city (CITY_ID,CITY,REGION_ID,POPULATION) values (1003,'Los Angeles',21,743878);
      Insert into src_ociggll.src_city (CITY_ID,CITY,REGION_ID,POPULATION) values (1004,'San Diego',21,840689);
      Insert into src_ociggll.src_city (CITY_ID,CITY,REGION_ID,POPULATION) values (1005,'Chicago',23,616472);
      Insert into src_ociggll.src_city (CITY_ID,CITY,REGION_ID,POPULATION) values (1006,'Memphis',23,580075);
      Insert into src_ociggll.src_city (CITY_ID,CITY,REGION_ID,POPULATION) values (1007,'New York City',22,124434);
      Insert into src_ociggll.src_city (CITY_ID,CITY,REGION_ID,POPULATION) values (1008,'Boston',22,275581);
      Insert into src_ociggll.src_city (CITY_ID,CITY,REGION_ID,POPULATION) values (1009,'Washington D.C.',22,688002);
    2. 在源 PostgreSQL 部署控制台中,选择 Change Data Capture Extract (ECDC),然后单击统计信息。验证 src_ociggll.src_city 是否具有 10 个插入。

      注意:

      如果 Extract 未捕获任何插入,则重新启动 ECDC Extract
    3. 在目标 Autonomous Database 部署控制台中,选择 Replicat 名称 (RCDC),查看其详细信息,然后检查统计信息。验证 SRCMIRROR_OCIGGLL.SRC_CITY 是否具有 10 个插入。

任务 8:监控和维护流程

  1. 监视性能
  2. 管理线索文件