反馈已提交

网络繁忙

PostgreSQL环境准备

  • 文档创建者:Naya
  • 历史版本:3
  • 最近更新:Naya 于 2023-11-02
  • 1. 概述

    通过本地宝连接 PostgreSQL 数据库,在九数云中开启「实时数据」前,需要参考本文在数据源中进行一些配置,为后续开启「实时数据」做好准备。

    2. CDC原理和支持

    2.1 CDC原理

    PostgreSQL 的逻辑解码功能最早出现在9.4版本中,它是一种机制,允许提取提交到事务日志中的更改,并通过输出插件以用户友好的方式处理这些更改。 此输出插件必须在运行 PostgreSQL 服务器之前安装,并与一个复制槽一起启用,以便客户端能够使用更改。

    2.2 CDC支持

    • 逻辑解码(Logical Decoding):用于从 WAL 日志中解析逻辑变更事件

    • 复制协议(Replication Protocol):提供了消费者实时订阅(甚至同步订阅)数据库变更的机制

    • 快照导出(export snapshot):允许导出数据库的一致性快照(pg_export_snapshot)

    • 复制槽(Replication Slot):用于保存消费者偏移量,跟踪订阅者进度。

    所以,根据以上,我们需要安装逻辑解码器,当前FineDataLink 支持 wal2json 解码器,输出格式为 json 。

    3. 操作步骤

    注:当前不支持同步视图。

    3.1 确认当前使用的数据库版本

    当前仅支持 PostgreSQL 9.4及以上的单实例非只读数据库。

    3.2 修改REPLICA IDENTITY

    1)该属性决定了当数据发生UPDATE,DELETE时,日志记录的字段

    • DEFAULT - 更新和删除将包含primary key列的现前值

    • NOTHING - 更新和删除将不包含任何先前值

    • FULL - 更新和删除将包含所有列的先前值

    • INDEX index name - 更新和删除事件将包含名为index name的索引定义中包含的列的先前值 如果有多表合并同步的场景,则Tapdata需要调整该属性为FULL 示例

    修改代码如下:

    alter table schema.tablename REPLICA IDENTITY FULL

    2)windows 版本可以进入 SQL shell,如下图所示:

    1.png

    3)后使用默认的 postgres 账号登录:

    2.png

    4)例如将模式为 public 的表 student 修改设置,则输入如下语句:

    3.png

    3.3 安装插件

    本文提供 windows 版本的安装步骤,Linux 版本需要用户自行安装。

    3.3.1 安装 wal2json

    1)点击获取 wal2json 安装包:wal2json_windows_x64.zip

    2)解压后,从目录中找到对应版本的 wal2json.dll,然后把 wal2json.dll 拷贝到前边安装的 PostgreSQL 的 lib 目录下,如下图所示:

    4.png

    3.3.2 修改配置文件

    1)进入 PosgreSQL 安装目录下的 data 文件夹,进入 data 文件夹中,找到 postgresql.conf 在文件末尾追加以下配置:

    shared_preload_libraries = 'wal2json'
    wal_level = logical
    max_wal_senders = 10
    max_replication_slots = 10

    2)然后在 data 目录下找到 pg_hba.conf,把下图中红圈中的两行前边的 # 去掉

    5.png

    3.4 重启数据库

    进入 windows 系统中的服务下,重启数据库,如下图所示:

    6.png

    3.5 用户权限确认

    以上都是用默认的用户 Postgres 进行,若用其他用户进行配置,则需要该用户为 PostgreSQL replication 角色、PostgreSQL login 角色,并且有需要同步的表的 select / update 权限。

    • 创建用户命令:

    GRANT SELECT ON ALL TABLES IN SCHEMA schemaname TO username;

    注:schemaname 为模式名称,username为用户名称。

    7.png

    • 设置用户账号密码:

    CREATE USER username WITH REPLICATION LOGIN PASSWORD 'password';

    注:username 为用户名,password 为用户密码。

    8.png

    • 赋予用户 replication和login权限命令

    进入安装目录下的 data 文件夹,对配置文件 pg_hba.conf 检查,确保用户拥有这些权限

    9.png

    3.6 检查权限是否可用

    进入 SQL shell 中,输入如下命令,若 slot 信息返回了记录,则说明配置成功:

    select * from pg_create_logical_replication_slot('slot_test', 'wal2json');

    10.png

    4. 后续步骤

    配置好数据库环境后,使用九数云本地宝连接 SQL Server 数据库。详情参见文档:连接数据库

    5. 注意事项

    如果出现启动不了的情况,可以在计算机管理的应用程序下,双击查看错误原因,如下图所示:

    11.png

    对于9.6及以前版本,工具命令pg_resetwal 叫 pg_resetxlog,它的本职工作是清理不需要的WAL文件,可以进入postgresql安装路径下的 bin 文件夹,在这里打开命令行,执行下面的命令:

    .\pg_resetxlog.exe -f ..\data

    在日志重置后,再尝试启动数据库。即:进入postgresql安装路径下的 bin 文件夹,在这里打开命令行,执行下面的命令:

    .\pg_ctl start -D ..\data


    附件列表


    主题: 导入数据源
    已经是第一篇
    已经是最后一篇
    • 有帮助
    • 没帮助
    • 只是浏览

    鼠标选中内容,快速反馈问题

    鼠标选中存在疑惑的内容,即可快速反馈问题,我们将会跟进处理。

    不再提示

    10s后关闭

    联系我们
    在线支持
    获取专业技术支持,快速帮助您解决问题
    工作日9:00-12:00,13:30-17:30在线
    页面反馈
    针对当前网页的建议、问题反馈
    售前咨询
    采购需求/获取报价/预约演示
    或拨打: 400-811-8890 转1
    qr
    热线电话
    咨询/故障救援热线:400-811-8890转2
    总裁办24H投诉:17312781526
    提交页面反馈
    仅适用于当前网页的意见收集,帆软产品问题请在 问答板块提问前往服务平台 获取技术支持