【发布时间】:2022-08-18 23:45:57
【问题描述】:
在使用 Debezium Postgres 连接器捕获 Aurora Postgres 上的更改数据时,我们看到所有 INSERT 操作都正确获取了捕获的数据。 但是对于 UPDATE 操作,我们看到我们没有任何之前/旧数据,只是获取之后/新数据。 同样对于 DELETE 操作,我们只填写主键值,其余字段设置为 null。
我们在 apache camel 中对 debezium 连接器的配置如下:
String uri = \"debezium-postgres:dbz-test-1?\" +
\"databaseHostName=\" + host +
\"&databaseUser=\" + username +
\"&databasePassword=\" + password +
\"&databasePort=\" + port +
\"&databaseDbname=\" + dbName +
\"&slotName=\" + dbName +
\"&databaseSslMode=require\" +
\"&databaseServerName=my-server1\" +
\"&offsetStorageFileName=offset-file-1.dat\" +
\"&snapshotMode=initial\" +
\"&pluginName=pgoutput\" +
\"&eventProcessingFailureHandlingMode=warn\" +
\"&tombstonesOnDelete=false\" +
\"&databaseHistoryFileFilename=history-file-1.dat\";
我们基本上尝试过的两件事:
- 将
tombstonesOnDelete显式设置为false...但这并没有太大帮助。 - 将特定表的 REPLICA_IDENTITY 设置为值 FULL。但是在设置此值之后,更新导致复制状态设置为关闭。基本上,PG 逻辑复制出现故障。
有人可以帮忙吗?我的要求是在 UPDATE 和 DELETE 操作期间获取所有之前/旧数据。
标签: postgresql apache-camel debezium