ticdc在连接创建任务的时候,创建不成功报错some tables are not eligible to replicate([kiki.sele_demo]), if you want to ignore these tables, please set ignore_ineligible_table

之前连接创建任务的时候是没问题的今天突然创建任务的时候就出问题了

有些表不符合复制条件([kiki.sele_demo]),如果你想忽略这些表,请设置ignore_ineligible_table

1 个赞

直接部署的ticdc源码在哪修改呢

应该是kiki.sele_demo这个表没有主键导致的,ticdc不支持同步没有主键的表

1 个赞

那我得在哪里修改呢我是用go部署的

这个不用改ticdc源代码,是创建changefeed时候,URL里多加一个ignore_ineligible_table=true就可以了。不过,要记得,这时候cdc会跳过kiki.sele_demo这个表的变更的

1 个赞

这个办法可以不忽略这些表吗

https://docs.pingcap.com/zh/tidb/stable/ticdc-manage-changefeed#同步没有有效索引的表

同步没有有效索引的表,可以配置两个参数,但是有一些注意事项需要关注下。可以看看上面的官网描述。

1 个赞

以下是设置了 ignore_ineligible_table 选项的示例配置文件:

{
    "changefeed-id": "example-changefeed",
    "sink-uri": "mysql://user:password@localhost:3306/test",
    "enable-old-value": true,
    "start-ts": 425091232384233219,
    "target-ts": 425091232384233219,
    "filter": {
        "rules": [
            {
                "pattern": "test.*",
                "ignore-txn-start-ts": 0,
                "action": "include"
            }
        ]
    },
    "config": {
        "case-sensitive": false,
        "enable-old-value": true,
        "dispatch-safety-checker": true,
        "filter": {
            "rules": [
                {
                    "pattern": "kiki.sele_demo",
                    "ignore-txn-start-ts": 0,
                    "action": "ignore"
                }
            ]
        },
        "mounter": {
            "worker-num": 16
        },
        "cdc": {
            "batch-size": 4096,
            "region-concurrency": 10,
            "enable-old-value": true
        }
    }
}

在上面的配置文件中,filter部分用于包含test数据库中的所有表,config.filter部分用于忽略[kiki.sele_demo]表。

将配置文件保存到系统上的某个位置,例如 /path/to/config.json,然后使用以下命令创建任务:
cdc cli --start-task --config /path/to/config.json
这将创建具有指定配置的任务,并且应该忽略不合格的表。