---

title: PostgreSQL wal2json 逻辑解码变更流推送实践

keywords: wal2json, logical decoding, replication slot, pg_recvlogical, pg_logical_slot_get_changes

description: 使用 wal2json 输出插件创建逻辑复制槽并推送变更流,支持命令行与 SQL 方式读取。

tags:

  • PostgreSQL
  • logical decoding
  • pg_logical_slot_get_changes
  • pg_recvlogical
  • replication slot
  • wal2json
  • 数据库
  • 逻辑解码

categories:

  • 文章资讯
  • 技术教程

---

前置配置(postgresql.conf):

wal_level = logical
max_replication_slots = 10
max_wal_senders = 10

创建 wal2json 复制槽(SQL):

SELECT pg_create_logical_replication_slot('slot_wal2json', 'wal2json');

读取变更(SQL 方式):

SELECT data FROM pg_logical_slot_peek_changes('slot_wal2json', NULL, NULL, 'pretty-print', '1');

命令行流式读取:

pg_recvlogical -d app -U replicator --slot slot_wal2json --start -o pretty-print=1 -o include-xids=0 -f -

示例变更(插入触发):

INSERT INTO public.orders(id, amount) VALUES (1, 9.99);

清理复制槽:

SELECT pg_drop_replication_slot('slot_wal2json');

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部