You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Debezium Postgres源连接器心跳事件正常但数据库心跳表未更新

以下是针对该问题的排查和解决建议:

  • 确认数据库账号权限:Debezium配置使用的postgres账号需要拥有inventory schema下heartbeat表的INSERT、UPDATE权限,可手动使用该账号执行配置中的心跳SQL语句验证是否能正常执行成功。
  • 补全心跳SQL的表全限定名:你当前配置的心跳SQL没有指定schema,若数据库的默认schema搜索路径不包含inventory,会导致语句执行时找不到表,建议将heartbeat.action.query修改为:
INSERT INTO inventory.heartbeat (id, ts) VALUES (1, NOW()) ON CONFLICT(id) DO UPDATE SET ts=EXCLUDED.ts;
  • 验证心跳表结构:确认inventory.heartbeat表的id字段设置了主键或者唯一约束,否则ON CONFLICT逻辑不会触发,会导致每次执行SQL都新增行而非更新已有行,可执行SELECT * FROM inventory.heartbeat;查看是否有新数据持续写入。
  • 检查publication配置:你使用了publication.autocreate.mode=filtered,需确认Postgres端的Debezium对应publication已经包含heartbeat表,可在Postgres中执行以下语句验证:
SELECT * FROM pg_publication_tables WHERE pubname = 'debezium';

如果未包含,可手动将表加入publication,或者重新创建连接器触发publication自动更新。

  • 查看连接器运行日志:将Debezium连接器的日志级别调整为DEBUG,搜索关键词heartbeat、action query,可直接定位到心跳SQL执行时的具体报错信息(如表不存在、权限不足、语法错误等)。

*注:基础心跳事件写入Kafka仅代表心跳触发逻辑正常,不代表heartbeat.action.query执行成功,二者是独立流程,执行异常会在日志中打印错误,不会影响基础心跳事件的生成。

内容的提问来源于stack exchange,提问作者javaguru

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 03:00:03