使用import into导入数据提示PreCheck failed: found CDC changefeed

【TiDB 使用环境】/测试/ Poc
【TiDB 版本】 v8.5.2

使用import into的方式导入数据时 ,提示检查失败有cdc服务,

-- 因为 TiDB 本地文件路径:必须为绝对路径,数据文件后缀必须为 .csv、.sql 或 .parquet。确保该路径对应的文件存储在当前用户连接的 TiDB 节点上,且当前连接的用户有 FILE 权限。

-- 路径对应的文件存储在当前用户连接的 TiDB 节点上 ,问题

MySQL [ceshi_uat]> import into wb_user_page from '/tidb/backup/ceshi_uat/ceshi_uat.wb_user_page.0000000010000.sql';
ERROR 8158 (HY000): The URI of data source is invalid. Reason: stat /tidb/backup/ceshi_uat: no such file or directory. Please provide a valid URI, such as 's3://import/test.csv?access-key={your_access_key_id ID}&secret-access-key={your_secret_access_key}&session-token={your_session_token}'
MySQL [ceshi_uat]> 


MySQL [ceshi_uat]> 
MySQL [ceshi_uat]> 
MySQL [ceshi_uat]> import into wb_user_page from '/tidb/backup/ceshi_uat/ceshi_uat.wb_user_page.0000000010000.sql';
ERROR 8173 (HY000): PreCheck failed: found CDC changefeed(s): cluster/namespace: default/default changefeed(s): [pingcap-01], 
MySQL [ceshi_uat]> 
MySQL [ceshi_uat]> 
MySQL [ceshi_uat]> import into wb_user_page from '/tidb/backup/ceshi_uat/ceshi_uat.wb_user_page.0000000010000.sql';
ERROR 8173 (HY000): PreCheck failed: found CDC changefeed(s): cluster/namespace: default/default changefeed(s): [pingcap-01], 
MySQL [ceshi_uat]> 


在官方的文档中,也提到了使用限制,
https://pingkai.cn/docs/tidb/stable/sql-statement-import-into/

问题是,我的测试环境中CDC 已经scale-in 掉了,多次尝试import into 还是提示问题。

2 个赞

你这个表是空表吗?

2 个赞

tiup ctl:<集群版本> cdc -u http://<任意CDC节点IP>:8300 changefeed list 若返回结果中仍存在 pingcap-01 等任务,需强制删除

如何强制删除呢,cdc 都已经scale-in了呢,我觉得已经不存在cdc相关的信息呢, chagefeed-id 的确是测试环境使用的id。

在scale-in 之前有没有把changefeed先删除啊?

我也是疑问啊,changefeed 应该在做完测试后就已经remove掉了,就留下了cdc的节点在集群里。

重新scale-out 了cdc ,list可以看到已有的changefeed的,是可以remove掉的。

[tidb@tidb01 ~]$  tiup cdc cli changefeed list --server=http://192.168.2.72:8300
Starting component cdc: /home/tidb/.tiup/components/cdc/v8.5.2/cdc cli changefeed list --server=http://192.168.2.72:8300
[
  {
    "id": "pingcap-01",
    "namespace": "default",
    "summary": {
      "state": "failed",
      "tso": 461985127723696129,
      "checkpoint": "2025-11-05 17:03:23.487",
      "error": {
        "time": "2025-11-10T09:18:50.045020616+08:00",
        "addr": "192.168.2.72:8300",
        "code": "CDC:ErrGCTTLExceeded",
        "message": "[CDC:ErrGCTTLExceeded]the checkpoint-ts(461985127723696129) lag of the changefeed(default/pingcap-01) has exceeded the GC TTL and the changefeed is blocking global GC progression"
      }
    }
  }
]
[tidb@tidb01 ~]$ 
[tidb@tidb01 ~]$ 
[tidb@tidb01 ~]$  tiup cdc cli changefeed remove  --server=http://192.168.2.72:8300 -c pingcap-01
Starting component cdc: /home/tidb/.tiup/components/cdc/v8.5.2/cdc cli changefeed remove --server=http://192.168.2.72:8300 -c pingcap-01
Changefeed remove successfully.
ID: pingcap-01
CheckpointTs: 461985127723696129
SinkURI: mysql://rep_drainer:xxxxx@192.168.2.82:4000/
[tidb@tidb01 ~]$ 
1 个赞

你这个报错应该和cdc没什么关系,你这sql文件为什么不直接source进去

1 个赞

命令格式

tiup ctl:<你的集群版本> cdc -u http://<地址>:<端口> changefeed --destroy --changefeed-id <任务ID>

示例

tiup ctl:v8.5.4 cdc -u http://192.168.1.10:2379 changefeed --destroy --changefeed-id pingcap-01

1 个赞

CDC 虽然已 scale-in 节点,但 changefeed 任务(pingcap-01)未彻底删除,导致 import into 预检查失败。

1 个赞

当然是可以source ,也这么做了。

就是想验证import into from file 这个方法,文档中提到方式。在remove changefeed 后也没有import成功 ,ERROR 1292 (22007)

ticdc 缩容前,有删除 changefeed 的么?
你可以试试扩容一个 ticdc,然后查看是否有 changefeed 残留。如果有删除掉。
如果没有你创建一个同名的 changefeed 删除,再缩容掉 cdc 试试。

是不是还有其他的信息没有提供,因为从提示信息种来看,级别都是读取信息异常啊