PostgreSql 提供了两种方式支持变更捕获,wal2json 及 pgoutput:

  • wal2json 是逻辑解码插件,需要自行安装
  • pgoutput 支持9.4及以后版本,不需要额外安装

1.开启逻辑复制


ALTER SYSTEM SET wal_level = logical

提供了逻辑解码和逻辑复制。逻辑订阅时必须打开。
从WAL记录的角度来看,此级别实际上与replica级别相同:添加了与复制源相关的记录,以及应用程序可以添加到WAL的任意逻辑记录。但是逻辑解码主要取决于有关正在执行的事务的信息,因为需要创建数据快照来跟踪对系统目录的更改。

注意:需要重启数据库。

2.修改表级别参数,更改复制标识

ALTER TABLE test2 REPLICA IDENTITY FULL

REPLICA IDENTITY有四个值可选择:
DEFAULT - 更新和删除将包含primary key列的现前值
NOTHING - 更新和删除将不包含任何先前值
FULL - 更新和删除将包含所有列的先前值
INDEX index name - 更新和删除事件将包含名为index name的索引定义中包含的列的先前值。