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
相关推荐
anxiao_m11 分钟前
2026制造业云桌面选型攻略,不同生产场景适配方案汇总
大数据·网络·数据库
土星云SaturnCloud25 分钟前
产线SOP动作级AI监管方案:土星云SE110S-WC8赋能合规识别、预警与效率分析
大数据·服务器·人工智能·ai·边缘计算
许彰午37 分钟前
# 数据库配拦截器,不用改BPMN
数据库
躺不平的理查德1 小时前
嵌入式 Linux 系统移植与 SD 卡量产镜像制作
linux·运维·服务器
lv__pf1 小时前
redis【msb 2026金三银四redis上】
数据库·redis·缓存
布莱克6052 小时前
理解数据库聚簇索引:原理、优势与适用场景
数据库·mysql
Nturmoils3 小时前
只面对一张表:KingbaseES 超表如何简化海量时序数据管理
数据库
starrocks_stella3 小时前
StarRocks 如何查询 Paimon 半结构化数据?Variant、Shredding 与 SQL 实践
数据库
这个DBA有点耶3 小时前
MySQL迁移实战:从mysqldump到专业工具的完整选型指南
数据库·mysql·dba