debezium在LANG=zh_CN.UTF-8下,无法解析timestamp类型的列值为BC的字段

文章目录

环境

系统平台:N/A

版本:14

症状

1.debezium日志报错无法解析

debezium日志显示无法解析2002-01-01 00:00:00 BC的字段值

复制代码
cat /hgsoft/dbz/logs/connector.log
[2026-02-14 13:21:05,343] ERROR [hg-dbz_test-sdb-V1|task-0] WorkerSourceTask{id=hg-dbz_test-sdb-V1-0} Task threw an uncaught and unrecoverable exception. Task is being killed and will not recover until manually restarted (org.apache.kafka.connect.runtime.WorkerTask:195)
Caused by: org.apache.kafka.connect.errors.ConnectException: java.time.format.DateTimeParseException: Text '2002-01-01 00:00:00 BC' could not be parsed, unparsed text found at index 19
        at io.debezium.connector.postgresql.connection.wal2json.DateTimeFormat$ISODateTimeFormat.format(DateTimeFormat.java:166)
        at io.debezium.connector.postgresql.connection.wal2json.DateTimeFormat$ISODateTimeFormat.timestampToInstant(DateTimeFormat.java:172)
        at io.debezium.connector.postgresql.connection.AbstractColumnValue.asInstant(AbstractColumnValue.java:81)
        at io.debezium.connector.postgresql.connection.ReplicationMessageColumnValueResolver.resolveValue(ReplicationMessageColumnValueResolver.java:111)
        at io.debezium.connector.postgresql.connection.pgoutput.PgOutputReplicationMessage.getValue(PgOutputReplicationMessage.java:97)
        at io.debezium.connector.postgresql.connection.pgoutput.PgOutputMessageDecoder$1.getValue(PgOutputMessageDecoder.java:733)
        at io.debezium.connector.postgresql.PostgresChangeRecordEmitter.columnValues(PostgresChangeRecordEmitter.java:184)
        at io.debezium.connector.postgresql.PostgresChangeRecordEmitter.getNewColumnValues(PostgresChangeRecordEmitter.java:127)
        at io.debezium.relational.RelationalChangeRecordEmitter.emitCreateRecord(RelationalChangeRecordEmitter.java:69)
        at io.debezium.relational.RelationalChangeRecordEmitter.emitChangeRecords(RelationalChangeRecordEmitter.java:47)
        at io.debezium.connector.postgresql.PostgresChangeRecordEmitter.emitChangeRecords(PostgresChangeRecordEmitter.java:96)
        at io.debezium.pipeline.EventDispatcher.dispatchDataChangeEvent(EventDispatcher.java:209)
 ... 17 more

2.核对查看数据类型及值

sql 复制代码
dbz_test=# \d test1
                    数据表 "public.test1"
栏位 |              类型              | 校对规则 |  可空的  | 预设 
------+--------------------------------+----------+----------+------
c1   | integer                        |          | not null | 
c2   | character varying(100)         |          |          | 
c3   | timestamp(3) without time zone |          |          | 
索引:
 "test1_pkey" PRIMARY KEY, btree (c1)
发布:
 "dbz_test_pub"

dbz_test=# select * from  test1;
c1 |  c2   |           c3           
----+-------+------------------------
1 | test1 | 2002-01-01 00:00:00 BC

问题原因

debezium 启动引用操作系统环境LANG,当环境变量为LANG=zh_CN.UTF-8无法解析PostgreSQL及瀚高数据库列类型为timestamp值为BC 标识的列。debezium启动环境改为en_US.utf-8 可以正常解析该字段值。

解决方案

修改debezium语言环境为en_US.UTF8,并重启debezium

复制代码
root#vi /usr/lib/systemd/system/dbz.service
[Install]
WantedBy=multi-user.target
[Unit]
Description=dbz
After=syslog.target network.target
[Service]
Type=simple
User=root
Group=root
# Start the hghac process
ExecStart= /usr/bin/sh /hgsoft/dbz/dbzServer.sh
# Send HUP to reload from dbz
ExecReload=/bin/kill -s HUP $MAINPID
#Restart=on-failure
KillMode=process
[Install]
WantedBy=multi-user.target

root#vi /hgsoft/dbz/dbzServer.sh

export LANG=en_US.UTF-8 
/hgsoft/dbz/bin/connect-distributed.sh    /hgsoft/dbz/config/connect-distributed.properties >> /hgsoft/dbz/logs/connect.log
root#systemctl daemon-reload
root#ssystemctl restart dbz
相关推荐
刘~浪地球1 小时前
MongoDB索引优化实战:让查询飞起来
数据库·mongodb
志栋智能1 小时前
超自动化巡检:敏捷运维体系中的重要一环
运维·服务器·网络·云原生·容器·kubernetes·自动化
小杰3121 小时前
网络框架源码阅读技巧
服务器·网络·c++·reactor·zlmediakit·zltoolkit
LinuxGeek10241 小时前
Linux内核“Dirty Frag”漏洞(CVE-2026-43284)修复方案
linux·运维·服务器
AstartesEternal1 小时前
REDIS下载及安装教程
数据库·redis·缓存
曦夜日长1 小时前
Linux系统篇,权限(一):用户创建与切换、权限及角色定义与修改、文件权限二进制表示
linux·运维·服务器
原来是猿1 小时前
应用层【协议再识/序列化与反序列化】
linux·运维·服务器·网络·网络协议·tcp/ip
Allen_LVyingbo1 小时前
面向医疗群体智能的协同诊疗与群体决策支持系统(上)
数据结构·数据库·人工智能·git·python·动态规划
实心儿儿2 小时前
Linux —— 库的制作和原理(3)
linux·运维·服务器