开发者社区> 问答> 正文

TableMetaTSDB开启- create table ...like...建表,数据同步有问题

环境信息

canal 1.1.4 mysql 5.7

问题描述

使用 " create table xxx1 (like xxx)" 创建副本表, canal内存表结构镜像无法自动更新,导致主从表不一致问题,com.alibaba.otter.canal.parse.exception.CanalParseException: parse row data failed.

原提问者GitHub用户leegaox

展开
收起
山海行 2023-04-28 15:11:47 145 0
2 条回答
写回答
取消 提交回答
  • 值得去的地方都没有捷径

    这个问题可能是由于tablemetatsdb没有及时更新导致的。tablemetatsdb是canal用于存储表元数据的数据库,包括表结构、索引等信息。当您使用 “create table xxx1 like xxx” 创建副本表时,canal无法自动检测到表结构的更改,因此无法正确解析数据。

    解决此问题的方法是在执行 “create table xxx1 (like xxx)” 命令后,手动更新tablemetatsdb中的表结构信息。您可以使用canal提供的api,手动更新tablemetatsdb。具体步骤如下:

    在canal的配置文件中,启用tablemetatsdb。找到以下配置项:

    是否开启 tablemetatsdb

    canal.instance.tsdb.enable = false 将 “canal.instance.tsdb.enable” 的值设置为 “true”,并保存配置文件。

    重启canal实例,以便使配置更改生效。

    执行 “create table xxx1 (like xxx)” 命令后,使用canal提供的api手动更新tablemetatsdb中的表结构信息。您可以使用canal的admin api或sdk api来更新tablemetatsdb。具体操作请参考canal的官方文档。

    确认tablemetatsdb中的表结构信息已更新。您可以使用canal提供的admin api或sdk api来查询tablemetatsdb中的表结构信息,以确保它已更新。

    确认数据同步正常。在tablemetatsdb中更新表结构信息后,canal应该可以正确解析数据并将其同步到目标端。您可以监视canal的日志,以确保数据同步正常。

    2023-04-29 14:41:59
    赞同 展开评论 打赏
  • druid升级为1.2.6已解决

    原回答者GitHub用户agapple

    2023-04-28 15:33:33
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载