根据你提供的信息,这个问题最可能的根因是: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
新架构启动时通常会有相关初始化日志。