跳到主要内容 跳到补充内容

先决条件

在登陆或复制数据之前,请确保达成以下先决条件:

  • 在数据移动网关服务器上安装所需的 driver

  • 授予数据源所需的权限

  • 配置数据源连接器

驱动程序设置

您可以使用驱动程序安装实用程序(推荐)安装 driver 或手动安装。只有在您遇到驱动程序安装实用程序发生问题的少见情况下,才应尝试手动安装。

使用驱动程序安装实用程序安装驱动程序

本部分介绍如何安装所需的 driver。这个过程包括运行一个脚本,该脚本将自动下载、安装和配置所需的 driver。您还可以根据需要运行脚本来更新和卸载 driver

准备安装

  • 请确保在 数据移动 网关服务器上安装了 Python 3.6 或更高版本。

    Python 预装在大多数 Linux 发行版上。您可以通过运行以下命令来检查系统上安装了哪个 Python 版本。

    python3 --version

安装 driver

下载并安装 driver

  1. 数据移动 网关计算机上,将工作目录更改为:

    opt/qlik/gateway/movement/drivers/bin

  2. 然后运行以下命令:

    语法:

    ./install postgres

    如果无法下载 driver(由于访问限制或技术问题),将显示一条消息,为您指示在 数据移动 网关机器上下载 driver 的位置和复制驱动程序的位置。完成此操作后,请再次运行 install postgres 命令。

    否则,将显示 driver 的 EULA。

  3. 执行以下选项之一:

    • 重复按 [Enter] 可在 EULA 中缓慢滚动。
    • 重复按空格键可快速滚动 EULA。
    • 按 q 退出许可证文本并显示 EULA 接受选项。
  4. 执行以下操作之一:

    • 键入 "y" 并按 [Enter] 接受 EULA 并开始安装。
    • 键入 "n" 并按 [Enter] 拒绝 EULA 并退出安装。
    • 键入“v”并按 [Enter] 以再次查看 EULA。

  5. 将会安装 driver

更新 driver

如果要在安装提供的 driver 之前卸载以前版本的 driver,请运行 update 命令。

下载并更新 driver

  1. 数据移动 网关计算机上,将工作目录更改为:

    opt/qlik/gateway/movement/drivers/bin

  2. 然后运行以下命令:

    语法:

    ./update postgres

    如果无法下载 driver(由于访问限制或技术问题),将显示一条消息,为您指示在 数据移动 网关机器上下载 driver 的位置和复制驱动程序的位置。完成此操作后,请再次运行 update postgres 命令。

    否则,将显示 driver 的 EULA。

  3. 执行以下选项之一:

    • 重复按 [Enter] 可在 EULA 中缓慢滚动。
    • 重复按空格键可快速滚动 EULA。
    • 按 q 退出许可证文本并显示 EULA 接受选项。
  4. 执行以下操作之一:

    • 键入 "y" 并按 [Enter] 接受 EULA 并开始安装。
    • 键入 "n" 并按 [Enter] 拒绝 EULA 并退出安装。
    • 键入“v”并按 [Enter] 可从头开始查看 EULA。
  5. 将卸载旧的 driver,并安装新的 driver

卸载 driver

如果要卸载 driver,请运行 uninstall 命令。

卸载 driver

  1. 停止所有配置为使用此连接器的任务。

  2. 数据移动 网关计算机上,将工作目录更改为:

    opt/qlik/gateway/movement/drivers/bin

  3. 然后运行以下命令:

    语法:

    ./uninstall postgres

    将卸载 driver

手动安装驱动程序

只有在自动驱动程序安装未成功完成的情况下,才应尝试手动安装 driver

安装 数据移动网关 后,下载以下 RPM 文件。您可以在 /opt/qlik/gateway/movement/drivers/manifests/postgres.yaml 中找到 binary-artifacts 下文件的直接下载链接。下载完成后,将文件复制到 数据移动网关 机器上。

在 Red Hat 9.x 上安装 数据移动网关 时:

  • postgresql<version>-libs-<version>PGDG.rhel9.x86_64.rpm
  • postgresql<version>-<version>PGDG.rhel9.x86_64.rpm
  • postgresql<version>-odbc-<version>PGDG.rhel9.x86_64.

在 Red Hat 8.x 上安装 数据移动网关 时:

  • postgresql<version>-libs-<version>PGDG.rhel8.x86_64.rpm
  • postgresql<version>-<version>PGDG.rhel8.x86_64.rpm
  • postgresql<version>-odbc-<version>PGDG.rhel8.x86_64.rpm

数据移动网关 服务器上,打开 shell 提示符并执行以下操作:

  1. 停止 数据移动网关 服务:

    sudo systemctl stop repagent

  2. 可选择确认服务已停止:

    sudo systemctl status repagent

    状态应如下所示:

    Active: inactive (dead) since <timestamp> ago

  3. 安装 RPM 文件。

  4. 将工作目录更改为 <数据移动网关_Install_Dir>/bin.

  5. 如下将驱动程序位置复制到 site_arep_login.sh 文件:

    echo "export LD_LIBRARY_PATH=\$LD_LIBRARY_PATH:/usr/lib:/usr/lib64:/usr/pgsql-<version>/lib" >> site_arep_login.sh

    这将把驱动程序添加到 "LD_LIBRARY_PATH" 并更新 site_arep_login.sh 文件中的驱动程序位置。

  6. 可选择确认已将驱动程序位置复制:

    cat site_arep_login.sh
  7. 确保 /etc/odbcinst.ini 文件包含 PostgreSQL 的条目,如以下示例所示:

    [PostgreSQL]

    Description = PostgreSQL ODBC driver

    Driver = /usr/pgsql-13/lib/psqlodbc.so

    Setup = /usr/pgsql-13/lib/psqlodbcw.so

    UsageCount = 1

  8. 启动 数据移动网关 服务:

    sudo systemctl start repagent

  9. 可选择确认服务已启动:

    sudo systemctl status repagent

    状态应如下所示:

    Active: active (running) since <timestamp> ago

端口

默认情况下,需要打开端口 5432 以便在 数据移动网关 服务器上进行出站通信。您可以在连接器设置中更改此项。

从客户安装的 PostgreSQL 数据库捕获更改

  • 必须将 Data Movement gateway 计算机的 IP 地址添加到 pg_hba.conf 配置文件,其在数据库字段中具有 "replication" 关键字。

    示例:

    host replication all 176.123.1.212/32 trust

  • 确保安装了 test_decoding 输出插件(位于 postgresql12-contrib 包中)。

  • 必须向连接设置中指定的用户授予对源数据库的读写权限,以允许在数据库上创建“席位”。需要席位才能读取更改。

  • 必须在 postgresql.conf 配置文件中设置以下参数和值。

    wal_level = logical
    max_replication_slots = number of replication slots

    其中 number of replication slots 必须大于一,并应根据要运行的任务数进行设置。例如,要运行五个需要设置 max_replication_slots = 5 的任务。席位在任务开始时自动打开,并保持打开状态,即使任务不再运行。请注意,需要手动删除打开的插槽。

    max_wal_senders = number of concurrent tasks

    其中 number of concurrent tasks 必须大于一,并且应该根据并发运行的任务数进行设置。例如,要同时运行三个任务,您需要设置max_wal_senders = 3

  • wal_sender_timeout 参数终止非活动时间超过指定毫秒数的连接。默认超时为 60 秒。要禁用超时机制(可选),请将此参数设置为零。

    信息注释

    默认情况下,服务器将 wal_sender_timeout 参数的值解释为毫秒。要显式指定秒数,请在值后面加上 “s”,如下例所示:

    wal_sender_timeout=60s

有关配置参数的更多信息,请参阅 PostgreSQL 联机帮助中服务器配置下的 Replication 部分。

从 Amazon RDS for PostgreSQL 捕获更改

您可以将 PostgreSQL 数据库实例的 AWS 主用户帐户用作 Amazon RDS for PostgreServer 源端点的用户。主用户帐户具有所需的角色,允许其设置更改数据捕获 (CDC) 。

如果您不想使用主用户帐户,您希望使用的帐户必须具有 rds_superuser 角色和 rds_replication 角色。rds_replication 角色授予管理逻辑插槽和使用逻辑插槽流式传输数据的权限。

要为 Amazon RDS PostgreSQL 数据库实例启用逻辑复制,请执行以下操作:

  1. 使用以下配置创建新参数组:
    1. 设置数据库参数组中的 rds.logical_replication 参数设置为 1
    2. max_wal_senders – 可以并行运行的任务数。
    3. max_replication_slots – 每个连接(即任务)创建一个新时隙;此参数配置可以建立到数据库的同时连接的数量。
  2. 将 Amazon RDS 实例链接到参数组。

从 Microsoft Azure for PostgreSQL 捕获更改

为了能够从 Microsoft Azure for PostgreSQL 捕获更改,您需要将“Replication”属性设置为“逻辑”,如下面步骤所述。

  1. 打开 Azure CLI 并运行以下命令:

    信息注释

    您可以下载 CLI 或通过 Azure 门户上的 shell 命令进行连接。

    az postgres server configuration set --resource-group resource-group --server-name server-name --name azure.replication_support --value logical

    az postgres server configuration set --resource-group azuredb --server-name qlik-azure-pg --name azure.replication_support --value logical

     

  2. 重新启动数据库(使用命令行或通过门户)。

从 Google Cloud SQL for PostgreSQL 捕获更改

信息注释此功能需要 数据移动网关 2022.11.42 或更高版本。

为了能够从数据库中捕获更改,您需要设置逻辑复制。

要设置逻辑复制,请执行以下操作:

  1. 在 Google Cloud 平台上,在 PostgreSQL 设置中设置以下标志:

    • cloudsql.logical_decoding=on
    • max_replication_slots:每个连接(即任务)创建一个新时隙;此参数配置可以建立到数据库的同时连接的数量。如果遇到性能问题,增加此值可能会有所帮助。
    • max_wal_senders:可以并行运行的任务数。如果遇到性能问题,增加此值可能会有所帮助。

    有关这些参数的详细信息,请参阅 https://www.postgresql.org/docs/current/runtime-config-replication.html

  2. 在数据库上,更改 connector 设置 (username) 中指定的用户以支持复制:

    ALTER USER username WITH REPLICATION;

本页面有帮助吗?

如果您发现此页面或其内容有任何问题 – 打字错误、遗漏步骤或技术错误 – 请告诉我们如何改进!