网易首页 > 网易号 > 正文 申请入驻

(文档)第124讲:异构数据库同步利器 — SynchDB使用全攻略

0
分享至

目标

• synchdb概述

• synchdb安装

• synchdb应用案例

Synchdb概述

SynchDB是一个PostgreSQL扩展,旨在实现从多个异构数据库到PostgreSQL的快速且可靠的数据复制。它无需中间件或第三方软件,可直接实现同步,无需额外的编排。

SynchDB是一个双语模块,结合了Java(用于利用DebeziumEmbedded连接器)和C(用于与PostgreSQL核心交互)组件,并且需要Java虚拟机(JVM)和Java本地接口(JNI)共同运行。

Synchdb架构



Synchdb组件

SynchDB扩展由以下主要组件组成:



Synchdb特性

SynchDB扩展有以下主要特性:





• Supports JSON rule file to define custom:

Data type transform rules

Column name transform rules

Table name transform rules

Data expression transform rules

• Supports 2 data apply modes (SPI, HeapAM API)

• Supports several utility functions to perform connector operations:

start

stop

pause

resume

Synchdb安装指南

安装前查看README.md安装指南,里面讲得非常详细,分为以下几个主要部分。

• synchdb简介与支持的异构源数据库软件版本.

•架构介绍.

•依赖软件介绍,所需软件较多.

•构建过程介绍,有多种构建方式

•连接器配置过程

•基本使用介绍

Synchdb构建前提条件

构建和运行SynchDB需要以下软件。

• Java Development Kit 17 or later. (sudo apt install openjdk-17-jdk)

• Apache Maven 3.6.3 or later. ( sudo apt-get install maven)

• PostgreSQL source (16, 17, 18).

• Unix based operating system like Ubuntu 22.04 or MacOS

• libprotobuf-c-dev ( sudo apt-get install libprotobuf-c-dev )

Postgresql软件安装

本次选择源代码方式,安装synchdb前需要满足以下条件。

1、源代码安装Postgresql软件需要包含openssl

$./configure --with-ssl=openssl

2、安装pgcrypto插件

$cd /soft/postgresql-16.3/contrib/pgcrypto

$make

$sudo make install

$psql -U postgres -d postgres

postgres=# create extension pgcrypto;

Synchdb安装

虽然可以使用ezdeploy.sh进行部署,但是里面用到的数据库镜像文件的网站经常失效,看似简单部署,实际上问题重重,不建议用这个方式安装。

1、下载

https://github.com/Hornetlabs/synchdb (Tags选择下载1.3版本)

2、解压软件包,一定要解压到pg安装软件的contrib目录下,并改名为synchdb

$tar -vxf synchdb-1.3.tar.gz -d /soft/ postgresql-16.3/contrib

3、构建和安装debezium runner

$cd /soft/ postgresql-16.3/contrib/synchdb

$make build_dbz

$sudo make install_dbz

4、构建和安装oracle parser

$make oracle_parser

$sudo make install_oracle_parser

5、构建和安装synchdb

$make WITH_OLR=1

$sudo make WITH_OLR=1 install

6、配置linker,告诉linker系统java虚拟机位置

JAVA_PATH=/usr/lib/jvm/java-21-openjdk-amd64

JDK_HOME_PATH=$(readlink -f ${JAVA_PATH} | sed 's:/bin/java::')

JDK_LIB_PATH=${JDK_HOME_PATH}/lib

sudo echo "$JDK_LIB_PATH" | sudo tee -a /etc/ld.so.conf.d/x86_64-linux-gnu.conf

sudo echo "$JDK_LIB_PATH/server" | sudo tee -a /etc/ld.so.conf.d/x86_64-linux-gnu.conf

sudo ldconfig

7、验证

在/soft/postgresql-16.3/contrib/synchdb目录下执行以下命令。

$ldd synchdb.so

结果如下所示:



Synchdb应用

1、安装synchdb插件

postgres=# create extension synchdb;

2、创建数据库连接器

SELECT synchdb_add_conninfo('mysqlconn',

'mysql',

3306,

'mysqluser',

'mysqlpwd',

'inventory',

'postgres',

'null',

'null',

'mysql');

3、查看连接器信息

postgres=# select * from synchdb_conninfo;

4、添加表映射(注意源数据库端表必须要有主键约束,否则无法初始化数据)

postgres=#SELECT synchdb_add_objmap('mysqlconn','table','inventory.dept','public.dept');

postgres=#SELECT synchdb_add_objmap('mysqlconn','table','inventory.emp','public.emp');

5、在目标数据库创建跟源数据库表结构相同的表

CREATE TABLE DEPT

(DEPTNO int PRIMARY KEY, DNAME varchar(14) ,LOC varchar(13) ) ;

CREATE TABLE EMP

(EMPNO int primary key,

ENAME varchar(10),

JOB varchar(9),

MGR int,

HIREDATE DATE,

SAL int,

COMM int,

DEPTNO int);

6、启动synchdb engine

连接器可以通过`synchdb_start_engine_bgw()`函数启动。该函数接收一个连接器名称参数,以下命令以默认快照模式启动同步引擎,该模式会复制指定的表模式及其初始数据,并继续流式传输实时变更(CDC)

postgres=#select synchdb_start_engine_bgw('mysqlconn');

7、查看引擎状态

postgres=# select * from synchdb_state_view;

8、查看数据库后台日志信息



9、验证

在mysql数据库端进行dml操作,查看目标端数据库表数据的同步情况。

注意:mysql数据库的binlog必须打开,并且格式为row

mysql> show variables like 'binlog_format';

mysql> show variables like 'log_bin';

注意:目标数据库postgresql.conf配置

listen_addresses = '*‘

port = 5432

pg_hba.conf文件配置

host all all 0.0.0.0/0 md5

DDL复制支持注意事项:

•支持alter table add/drop column

•支持create table(必须是曾经同步过的表被删除后重建可以同步)

•支持drop table

•不支持truncate

•不支持主外键约束(可以在启动连接器后在源数据库再加外键约束,但是不会同步)

•如果synchdb engine无法正常启动,最快的解决办法就是先删除synchdb插件,再添加对象映射,最后启动synchdb engine。



PostgreSQL中文社区认证
CUUG与工信部人才交流中心合作,推出PostgreSQL初/中/高级证书培训考证服务,证书中明确指定适用于信息技术应用创新人才岗位能力评定要求。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
全红婵不对劲,不是她以后不比赛了,而是她今年19岁了,居然开始了自己的精致路线

全红婵不对劲,不是她以后不比赛了,而是她今年19岁了,居然开始了自己的精致路线

LULU生活家
2026-09-30 20:32:43
目不识丁,出尽洋相?于和伟在金鹰奖上的发言,给内娱明星上一课

目不识丁,出尽洋相?于和伟在金鹰奖上的发言,给内娱明星上一课

喜欢历史的阿繁
2026-10-01 12:34:18
5000天!好奇号在火星拍下早晚双景明信片

5000天!好奇号在火星拍下早晚双景明信片

字节漫游指南
2026-09-30 22:57:04
真的太不尊重人了!亚运86公斤举重比赛前,韩国朴惠正说:我以为李雯雯早就退役了

真的太不尊重人了!亚运86公斤举重比赛前,韩国朴惠正说:我以为李雯雯早就退役了

林子说事
2026-10-01 09:26:51
75岁万科创始人王石,出任深圳深石城市更新董事长,此前曾再创业:首家HYROX训练馆每小时收费最高308元

75岁万科创始人王石,出任深圳深石城市更新董事长,此前曾再创业:首家HYROX训练馆每小时收费最高308元

大风新闻
2026-10-01 11:34:03
喋血航班、真人真事:一个普通人可以勇敢冷静到何种程度?

喋血航班、真人真事:一个普通人可以勇敢冷静到何种程度?

呦呦鹿鸣
2026-10-01 15:15:53
C罗大姐转发:葡萄牙不配拥有最好的人才,活该回到C罗前的平庸

C罗大姐转发:葡萄牙不配拥有最好的人才,活该回到C罗前的平庸

懂球帝
2026-10-01 04:18:07
全国外卖单量从2亿跌到1.1亿,美团单量断崖式下滑,骑手和商家最先扛不住

全国外卖单量从2亿跌到1.1亿,美团单量断崖式下滑,骑手和商家最先扛不住

帝都观日记
2026-09-29 14:35:08
鸿蒙智行被小米小鹏反超,网友留言不忍直视

鸿蒙智行被小米小鹏反超,网友留言不忍直视

ZAKER新闻
2026-10-01 19:55:26
C罗退队不到1天!4000万飞翼官宣接过葡萄牙队7号 遭质疑:蓄谋已久

C罗退队不到1天!4000万飞翼官宣接过葡萄牙队7号 遭质疑:蓄谋已久

我爱英超
2026-10-01 17:23:59
反转又反转!美国女死囚被注射两剂致死药物后仍活着还打鼾,紧急送医治疗

反转又反转!美国女死囚被注射两剂致死药物后仍活着还打鼾,紧急送医治疗

澎湃新闻
2026-10-01 16:10:04
比黄金还稀缺!A股:真正高股息现金牛,全市场仅9家,低至4元

比黄金还稀缺!A股:真正高股息现金牛,全市场仅9家,低至4元

长风价值掘金
2026-10-01 13:44:39
就在今天,鲁比奥向中方发来贺电,与前任国务卿比,措辞略有不同

就在今天,鲁比奥向中方发来贺电,与前任国务卿比,措辞略有不同

原谅你
2026-10-01 15:23:04
中国柔道名将亚运会被罚下判负!咬对手手臂20秒不松口 牙印曝光

中国柔道名将亚运会被罚下判负!咬对手手臂20秒不松口 牙印曝光

念洲
2026-10-01 20:55:42
亚运会冷知识:6个亚洲国家不参加亚运会,反而加入欧洲体育体系

亚运会冷知识:6个亚洲国家不参加亚运会,反而加入欧洲体育体系

安海客
2026-10-01 05:29:30
宇信科技董事长洪卫东去世,上个月其还率队赴海外开拓市场,公司官网已变黑白

宇信科技董事长洪卫东去世,上个月其还率队赴海外开拓市场,公司官网已变黑白

海峡网
2026-10-01 01:22:00
C罗为何被激怒?名记:世界杯后本想离队,两次被热苏斯背叛

C罗为何被激怒?名记:世界杯后本想离队,两次被热苏斯背叛

奥拜尔
2026-10-01 17:09:07
刘欢为啥爱办家宴?高晓松爆料:北京三里屯的一件事,让他没办法

刘欢为啥爱办家宴?高晓松爆料:北京三里屯的一件事,让他没办法

寒士之言本尊
2026-10-01 15:07:02
你最好确定以色列拿不到“证据”

你最好确定以色列拿不到“证据”

走读新生
2026-10-01 17:44:04
重磅!北大法学院赵宏教授大放厥词,公开场合胡言乱语

重磅!北大法学院赵宏教授大放厥词,公开场合胡言乱语

平老师666
2026-10-01 13:28:41
2026-10-02 00:56:49
CUUG
CUUG
北京神脑资讯技术有限公司
742文章数 19关注度
往期回顾 全部

科技要闻

5999元起!华为Mate 90系列发布

头条要闻

美国一女囚犯被执行死刑 注射两剂药物后其"鼾声大作"

头条要闻

美国一女囚犯被执行死刑 注射两剂药物后其"鼾声大作"

体育要闻

“今天的表现,我们可以昂首离开球场”

娱乐要闻

奚梦瑶晒四太豪礼!22只龙凤镯近300万

财经要闻

智谱发上亿Token 能挽回开发者信任吗?

汽车要闻

2027款极氪001将于明年一季度上市 现款猎装同步推新配色

态度原创

本地
房产
艺术
健康
公开课

本地新闻

中秋逛白塔寺,体验国医妙荟雅集

房产要闻

4000+/平!华侨城,直接把海口楼市的地板给掀了!

艺术要闻

他历尽苦难,却画出最令人心碎的女人!艾斯特凡笔下的女性,美到不敢直视!

刷酸祛痘,为什么有人翻车?

公开课

李玫瑾:为什么性格比能力更重要?

无障碍浏览 进入关怀版