postgresql(windows版本) 插件wal2json 通过 Visual Studio 2019 编译
下载相关插件:
Visual Studio 2019下载地址
https://visualstudio.microsoft.com/zh-hans/?rr=https://www.baidu.com/link?url=b1goBv9_kKk8djltygQxPnrrNv9bLT0nHhZI-ObZF5K_N2CFwyTfueqQ4lpifd__&wd=&eqid=b61cf6640024f438000000065d351fd3
安装
下载成功后 会有一个 类似 vs_community__1812561284.1563769498.exe的文件 ,然后进行简易安装即可
wal2json 下载地址 zip 包然后解压
https://github.com/eulerto/wal2json
wal2json 编译
Visual Studio导入 wal2json 项目
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HyTdRoDd-1574669265741)(C:%5CUsers%5Cyx%5CAppData%5CRoaming%5CTypora%5Ctypora-user-images%5Cimage-20191118212341680.png)]
添加postgresql 相关的依赖
- 右键–>属性
- 添加 附加包
- 添加 postgres.lib
- 编译:右键项目 -->生成
- 生成目录如下
- 将生成的wal2json 复制到 postgresql 的lib 目录下(最好是把 wal2json 、wal2json.exp 一起 )
配置 debezium 的 postgresql 连接器
下载地址
https://repo1.maven.org/maven2/io/debezium/debezium-connector-postgres/ #选择自己对应的版本
解压 debezium-connector-postgres-0.10.0.Final-plug… 会有如下文件 将4个 *.jar 文件
将 *.jar 文件 复制到 confluent
**/confluent-4.0.0/share/java/kafka/
创建 postgresql 连接
curl 'http://10.100.11.**:8083/connectors' -X POST -i -H "Content-Type:application/json" -d '{"name": "pg_connector171","config": {"connector.class": "io.debezium.connector.postgresql.PostgresConnector","database.hostname": "10.2.2.171","database.port": "5432","database.user": "repuser","database.password": "****","database.dbname" : "zcdb","database.server.name": "pg","table.whitelist": "public.yx_test2","plugin.name":"wal2json"}}'
问题:
Caused by: io.debezium.jdbc.JdbcConnectionException: ERROR: could not load library "D:/zcsys_v3/postgresql/lib/wal2json.dll": The specified module could not be found.
Caused by: org.postgresql.util.PSQLException: ERROR: could not load library "D:/zcsys_v3/postgresql/lib/wal2json.dll": The specified module could not be found.
尝试过以下几种方式(不知道是哪个是正解………不要打我 我也不知道怎么好的。。):
方式1:将 wal2json.dll 放在系统C:\Windows\System32\ 下面
方式2:在使用wal2json 服务器上安装了 vs2019
方式3:更改过wal2json 在服务区的权限
io.debezium.jdbc.JdbcConnectionException: FATAL: no pg_hba.conf entry for replication connection from host \"10.100.11.37\", user \"repuser\", SSL
主要是添加 replication 用户