Debezium Postgres连接器错误获取DELETE/UPDATE操作的before数据始终为null



在使用Debezium Postgres连接器捕获Aurora Postgres上的更改数据时,我们看到对于所有INSERT操作,我们都能正确地获得捕获的数据。但是对于UPDATE操作,我们看到我们没有任何before/old数据,只有获取after/new数据。同样对于DELETE操作,我们只填充主键值,其余字段设置为null。

我们在apachecamel中对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";

我们基本上尝试过的两件事:

  1. tombstonesOnDelete显式设置为false。。。但这并没有多大帮助
  2. 将特定表的REPLICA_IDENTITY设置为值FULL。但在设置此值后,更新会导致复制状态被设置为关闭。基本上,PG逻辑复制失败

有人能帮忙吗?我的要求是在UPDATE和DELETE操作期间获取所有以前/旧的数据。

你赢了吗。如果是的话,请问是怎么解决的。

edit:fix是在postgres表上运行alter命令。更改表表名副本完整

相关内容

最新更新