CAI01
(Ti D Ber Mhmp8yq Z)
1
【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-schema 和 target-table 字段无法被识别。
在 TiCDC 旧架构中,[[sink.dispatchers]] 仅支持 MQ 场景下的 topic/partition 分发配置,不支持 target-schema 和 target-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
新架构启动时通常会有相关初始化日志。
CAI01
(Ti D Ber Mhmp8yq Z)
3
我的版本是 Release Version: v8.5.4
看来不支持了
TiDBer_wk
(Ti D Ber Os7emy Bg)
5
为什么不用最新版本?TiCDC 表路由 8.5.7 才引入的
1 个赞
kang
6
看你的配置,问题出在newarch开启后,表路由功能不再使用sink.dispatchers这个旧配置结构了。