8.5.4版本newarch配置不起作用,表路由功能用不了

【TiDB 使用环境】 测试环境
【TiDB 版本】v8.5.4
现象:
8.5.4的ticdc节点已经开启newarch,配置文件中已重启生效。

   config:
      newarch: true

以下的changefeed任务启动报错

[filter]
rules = ["database_1.vertical_media_apply_log_detail"]

[sink]
[[sink.dispatchers]]
matcher = ["database_1.vertical_media_apply_log_detail"]
target-schema = "database_2"
target-table = "{table}"

报错内容:

Error: component TiCDC changefeed's config file /data/tidb/to-otherDB/to-aliRDS-vertical_media.toml contained unknown configuration options: sink.dispatchers.target-schema, sink.dispatchers.target-table

请教一下各位大神,我看官方说是8.5.4只要开启该配置就可以实现表路由同步。TiCDC 新架构 | TiDB 社区版

根据你提供的信息,这个问题最可能的根因是:TiCDC 实际仍在以旧架构模式运行,导致配置中的 target-schematarget-table 字段无法被识别。

在 TiCDC 旧架构中,[[sink.dispatchers]] 仅支持 MQ 场景下的 topic/partition 分发配置,不支持 target-schematarget-table 这两个表路由字段。只有新架构(newarch)才扩展支持了表路由功能 。


诊断步骤

1. 确认 TiCDC 二进制版本是否为新架构版本

在 TiCDC 节点上执行:

bash

cd /tidb-deploy/cdc-8300/bin  # 根据实际部署路径调整
./cdc version

新架构版本的输出应包含 -release.1 后缀,例如:

plain

Release Version: v8.5.4-release.1

如果显示的是 v8.5.4(不带 -release.1),说明当前运行的还是旧架构二进制,即使配置了 newarch: true 也无法识别表路由字段

2. 确认 newarch 配置已下发到所有 TiCDC 节点

bash

tiup cluster show-config <cluster-name> | grep -A5 "cdc:"

确保每个 TiCDC 节点的 config 下都有:

yaml

config:
  newarch: true

3. 查看 TiCDC 启动日志确认 newarch 是否生效

bash

grep -i "newarch\|new arch" /tidb-deploy/cdc-8300/log/cdc.log

新架构启动时通常会有相关初始化日志。

我的版本是 Release Version: v8.5.4

看来不支持了

8.5.4还有不同的版本包?

为什么不用最新版本?TiCDC 表路由 8.5.7 才引入的

1 个赞

看你的配置,问题出在newarch开启后,表路由功能不再使用sink.dispatchers这个旧配置结构了。

问题解决了吗楼主