PostgreSQL 到 PostgreSQL 数据迁移同步

[复制链接]
发表于 2024-11-2 18:27:24 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
简述

PostgreSQL 是一个汗青久长且广泛利用的数据库,不但具备标准的关系型数据库能力,还具有相当不错的复杂 SQL 执行能力。用户常常会将 PostgreSQL 应用于在线事件型业务,以及部分数据分析工作,以是 PostgreSQL 到 PostgreSQL 数据迁移同步成为了一个重要工作。
本文主要介绍如何通过 CloudCanal 实现 PostgreSQL 到 PostgreSQL 数据迁移同步。
技术点

利用 PostgreSQL 逻辑复制机制

CloudCanal 利用 PostgreSQL 逻辑复制 (Logical) 机制实现对其增量数据的订阅。
发布(Publication)和同步任务一一关联,任务修改订阅后也会自动增减 Publication 中的表。
Trigger 方式实现 DDL 同步

DDL 同步对于在线数据库灾备等场景必不可少,但 PostgreSQL 逻辑复制并未提供 DDL 操作。
为此,我们采用了行业通用的 Trigger 方式捕获 DDL 操作,并且自动写入一张平凡表 cc_pg_ddl_capture_tab。CloudCanal 正常订阅该表即可获取 DDL 操作,宁静凡 DML 增量订阅机制划一,可准确地保障 DDL 和涉及表 DML 事件顺序。

双向同步防循环能力

数据库多活能力要求常常出如今一些在线数据库核心应用场景中,对于数据同步工具,主要必要做到同步数据无循环。
对于 PostgreSQL 之间的多活同步防循环,我们采用同一事件标记操作方式实现。
通过一张额外的标记表,同步任务写入正常业务数据到对端时,在同一个事件中对标记表做操作。当任务从 PostgreSQL 中获取到该标记表事件时,则忽略当前事件全部操作,即到达防循环目标。

操作示例

步调 1: 修改 PostgreSQL 日记级别


  • 参考 PostgreSQL 必要的权限 文档创建用户和授予权限。
  • 设置 PostgreSQL wal_level 为 logical。自建数据库可修改 postgresql.conf,设置 wal_level=logical 和 wal_log_hints = on。
  • 设置同步账号网络权限。
    自建数据库可修改 pg_hba.conf,添加以下设置:
    host replication 同步账号 CIDR网段 md5
    host 同步库 同步账号 CIDR网段 md5
    host postgres 同步账号 CIDR网段 md5
  • 重启 PostgreSQL 生效。
步调 2: 安装 CloudCanal

请参考 全新安装(Docker Linux/MacOS),下载安装 CloudCanal 私有摆设版本。
步调 3: 添加数据源

登录 CloudCanal 控制台,点击 数据源管理 > 新增数据源。
步调 4: 创建任务


  • 点击 同步任务 > 创建任务。
  • 选择源和目标数据源,并分别点击 测试连接。
  • 选择 数据同步 并勾选 全量初始化。
    勾选 同步 DDL 将会自动创建对应的 DDL 捕获 trigger 和 event,必要较高权限。
  • 选择必要同步的索引。
  • 选择索引对应的列。
    如果必要选择同步的列,可先行在对端创建好表即可。
  • 点击 确认创建。
    任务创建过程将会举行一系列操作,点击 同步设置 > 异步任务,找到任务的创建记录并点击 详情 即可检察。
    PostgreSQL 源端的任务创建会有以下几个步调:

    • 结构迁移
    • 初始化 DDL 捕获触发器和表
    • 初始化 PostgreSQL 增量复制位点
    • 分配任务执行机器
    • 创建任务状态机
    • 完成任务创建

  • 等候任务自动步调流转。
    当任务创建完成,CloudCanal 会自动举行任务流转,其中的步调包括:

    • 结构迁移: 将 PostgreSQL 源端的表结构迁移到对端,如果同名表在对端已存在,则忽略。
    • 全量数据迁移: 已存在的存量数据将会完备迁移到对端,支持断点续传。
    • 增量数据同步: 增量数据将会连续地同步到对端数据库,并且保持实时(秒级别耽误)。

总结

本文简单介绍了如何利用 CloudCanal 举行 PostgreSQL 到 PostgreSQL 数据迁移同步。
PostgreSQL 作为盛行的关系型数据库,通过 CloudCanal 数据迁移同步加持,让数据进出更加便利和顺畅。
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表