TiCDC 可以实现把TiDB 的A库 同步到MySQL的B库吗?

TiCDC 可以实现把TiDB 的A库 同步到MySQL的B库吗?

支持,参考从 TiDB 集群迁移数据至兼容 MySQL 的数据库

没找到呀,我的需求是 把TiDB 的A库 全量+增量 迁移同步到MySQL的B库。数据库名称会发生变化。

目前正在做 Schema/table routing support for ticdc · Issue #3700 · pingcap/ticdc · GitHub

好的,谢谢

TiCDC v7.3.0 不支持原生的 schema/database 重命名(库名映射) 功能,具体表现为:

  • 同步到 MySQL 时,下游的库名必须与上游 TiDB 的库名完全一致(例如上游 A 库只能同步到下游 A 库)。
  • 不支持上游 A 库直接映射为下游 B 库,也不支持表级别的重命名。

理解错了 :joy:

当前不可以,可以中转下,tidb a → cdc → mysql a → dm → tidb b

从 TiCDC 的能力与配置项来看,changefeed 主要提供的是 选择要同步的表(table filter) 、以及 过滤某些事件类型(event filter) 的能力;并没有提供在同步过程中把事件里的 schema/database 名称改写 成另一个名称(db_a → db_b)的机制(例如 sink URI 参数做 schema mapping、或 event transformer 改写 schema 名称)。TiCDC 本身是把上游的变更转换成下游可执行的 SQL/事件并写入下游,因此通常要求下游对象(库/表)与上游保持一致,否则容易出现 DDL/DML 找不到对象或 schema 不一致导致的错误。

目前好像不支持

tidb支持MySQL协议

这个后续应该是会优化的

只能先搞到mysql的A库然后通过mysql的同步工具再处理吗

对,或者搞到kafka消费这种策略,目前ticdc还没有路由的能力

嗯,搞到kafka消费看起来更现实,前面那种要在mysql中放两份数据

可以,ticdc从tidb同步到mysql\kafka等地方,DM从mysql导入到tidb

对的,厉害

mysql只用放一份数据即可,不用放两份,kafka消费的话也需要自己处理消费逻辑

TiCDC 完全支持:上游 TiDB 的 A 库 → 下游 MySQL 的 B 库 实时增量同步。

目前看来 只能这样了。
看上边大佬的恢复,TiCDC目前也正在晚上 异库迁移同步