postgresql - 基于 Postgresql 上的 LSN 跟踪异常事务
问题描述
我的 PostgreSQL 的 Debezium kafka 连接器有问题。它表明我有超过 wal 大小 1GB 的记录。这是完整的错误:
"org.apache.kafka.connect.errors.ConnectException: An exception occurred in the change event producer. This connector will be stopped.
tat io.debezium.pipeline.ErrorHandler.setProducerThrowable(ErrorHandler.java:42)
tat io.debezium.connector.postgresql.PostgresStreamingChangeEventSource.execute(PostgresStreamingChangeEventSource.java:197)
tat io.debezium.pipeline.ChangeEventSourceCoordinator.lambda$start$0(ChangeEventSourceCoordinator.java:101)
tat java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
tat java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
tat java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
tat java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
tat java.base/java.lang.Thread.run(Thread.java:834)
Caused by: org.postgresql.util.PSQLException: ERROR: out of memory
Detail: Cannot enlarge string buffer containing 1073741385 bytes by 2500 more bytes.
Where: slot "debezium", output plugin "wal2json", in the change callback, associated LSN 3D/66648BE8
tat org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2505)
tat org.postgresql.core.v3.QueryExecutorImpl.processCopyResults(QueryExecutorImpl.java:1165)
tat org.postgresql.core.v3.QueryExecutorImpl.readFromCopy(QueryExecutorImpl.java:1072)
tat org.postgresql.core.v3.CopyDualImpl.readFromCopy(CopyDualImpl.java:37)
tat org.postgresql.core.v3.replication.V3PGReplicationStream.receiveNextData(V3PGReplicationStream.java:158)
tat org.postgresql.core.v3.replication.V3PGReplicationStream.readInternal(V3PGReplicationStream.java:123)
tat org.postgresql.core.v3.replication.V3PGReplicationStream.readPending(V3PGReplicationStream.java:80)
tat io.debezium.connector.postgresql.connection.PostgresReplicationConnection$1.readPending(PostgresReplicationConnection.java:402)
tat io.debezium.connector.postgresql.PostgresStreamingChangeEventSource.execute(PostgresStreamingChangeEventSource.java:125)
t... 6 more"
我想追踪引发此错误的“异常”操作在哪里。我只有一个来自错误的 LSN。我对数据库维护尤其是 PostgreSQL 还是很陌生。任何帮助表示赞赏。
更新 这是我从 pg_log 得到的完全相同的消息,感谢@laurenz-albe 指出我应该在哪里搜索问题:
2020-07-08 13:59:13 ICT [25137-23] kafka@aaa ERROR: out of memory
2020-07-08 13:59:13 ICT [25137-24] kafka@aaa DETAIL: Cannot enlarge string buffer containing 1073741385 bytes by 2500 more bytes.
2020-07-08 13:59:13 ICT [25137-25] kafka@aaa CONTEXT: slot "debezium", output plugin "wal2json", in the change callback, associated LSN 3D/66648BE8
但是,如果我无法了解触发事件的 LSN 目前发生了什么,那仍然是一无所知
解决方案
推荐阅读
- azure - 未找到 Azure 市场映像
- python-3.x - tf.print 在 python 3.x 的 IDLE 中不打印任何内容
- swift - 使用 swift async/await api 的 GCD 串行队列方法?
- python - 使用列表中的名称重命名列
- python - 我可以通知 mypy 表达式不会返回 Optional 吗?
- amazon-web-services - 通过 AWS SDK 从 AWS S3 存储桶下载文件会损坏文件
- keras - 在 python 上在 pycharm 上安装 Keras
- node.js - 可重用函数中的 MongoDB 事务会话
- python - Leetcode House Robber 提交 vs 自定义测试用例
- kong - 从 Kong 到达后端 API 时,iv-user 标头值为 null