postgresql及wal2json插件安装

1、安装postgres

安装文档见:https://www.postgresql.org/download/linux/redhat/ 我这里是centos7系统,选择安装postgresql11

# Install the repository RPM:sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm# Install PostgreSQL:sudo yum install -y postgresql11-serversudo yum install -y postgresql11-develsudo yum install -y postgresql11-contrib.x86_64 –这个主要是安装pg_recvlogical# Optionally initialize the database and enable automatic start:sudo /usr/pgsql-11/bin/postgresql-11-setup initdb#设置开机启动sudo systemctl enable postgresql-11#启动pgsudo systemctl start postgresql-11

可以看到pg已经启动

切换到postgres用户:su postgres psql命令进入命令行:

#创建用户CREATE USER dev WITH PASSWORD ‘123456’;创建数据库:createdb mydb

修改配置允许远程访问, vim /var/lib/pgsql/11/data/pg_hba.conf 添加配置:

host all all 0.0.0.0/0 md5

重启pg:sudo systemctl start postgresql-11 即可通过navicat工具,使用dev用户连接pg

2、安装wal2json插件

sudo yum install -y wal2json11

vim /var/lib/pgsql/11/data/postgresql.conf 添加配置:

shared_preload_libraries = ‘wal2json’wal_level = logicalmax_wal_senders = 4max_replication_slots = 8listen_addresses = ‘*’

重启pg:sudo systemctl start postgresql-11

注意,后续pg相关命令需要切换到postgres用户执行 建议把/usr/pgsql-11/bin/加入到环境变量,这样就可以直接执行pg_recvlogical等命令了

#创建slot/usr/pgsql-11/bin/pg_recvlogical -d mydb –slot mydb_test_slot –create-slot -P wal2json#查看slot列表select * from pg_replication_slots;#启动slot,即可监听数据变化/usr/pgsql-11/bin/pg_recvlogical -d mydb –slot mydb_test_slot –start -o pretty-print=1 -o add-msg-prefixes=wal2json -f –

在mydb库下创建表并插入数据:

CREATE TABLE “user” ( “id” int4 NOT NULL, “name” varchar(255) COLLATE “pg_catalog”.”default” NOT NULL DEFAULT ”::character varying, CONSTRAINT “user_pkey” PRIMARY KEY (“id”));INSERT INTO “user” VALUES (1, ‘test’);

可以在slot监听窗口看到刚刚插入的数据

后续通过debezium拉取wal日志数据发到kafka时,会遇到kafka消息中before字段为null的问题 需要执行命令:ALTER TABLE “public”.“user” REPLICA IDENTITY FULL; 默认情况下,REPLICA IDENTITY值为DEFAULT,oldkeys只有主键数据 见下图的前后对比,上面是DEFAULT的情况,oldkeys只有id;下面是FULL的情况,oldkeys包含了name 在这里插入图片描述


比丘资源网 » postgresql及wal2json插件安装

发表回复

提供最优质的资源集合

立即查看 了解详情