How to Skip a DDL in TiCDC

This topic has been translated from a Chinese forum by GPT and might contain errors.

Original topic: ticdc如何跳过一个ddl

| username: TiDB_C罗

[TiDB Usage Environment] Production Environment / Test / Poc
[TiDB Version]
[Reproduction Path] What operations were performed to encounter the issue
[Encountered Issue: Issue Phenomenon and Impact]
[Resource Configuration]
Query Result

  "info": {xxx
    "sink-uri": "mysql://xxx:xxx@xxx:13306/?time-zone=SYSTEM",
    "opts": {
      "_changefeed_id": "sink-verify"
    "create-time": "2023-08-09T08:22:26.457117975Z",
    "start-ts": 443413131555766280,
    "target-ts": 0,
    "admin-job-type": 0,
    "sort-engine": "unified",
    "sort-dir": "",
    "config": {
      "case-sensitive": true,
      "enable-old-value": true,
      "force-replicate": false,
      "check-gc-safe-point": true,
      "filter": {
        "rules": [
        "ignore-txn-start-ts": [
      "mounter": {
        "worker-num": 16
      "sink": {
        "dispatchers": null,
        "protocol": "",
        "column-selectors": null
      "cyclic-replication": {
        "enable": false,
        "replica-id": 0,
        "filter-replica-ids": null,
        "id-buckets": 0,
        "sync-ddl": false
      "scheduler": {
        "type": "table-number",
        "polling-time": -1
      "consistent": {
        "level": "none",
        "max-log-size": 64,
        "flush-interval": 1000,
        "storage": ""
    "state": "normal",
    "error": null,
    "sync-point-enabled": false,
    "sync-point-interval": 600000000000,
    "creator-version": "v5.4.0"
  "status": {
    "resolved-ts": 443413131555766280,
    "checkpoint-ts": 443413131555766280,
    "admin-job-type": 0
  "count": 0,
  "task-status": [
      "capture-id": "1546f04f-a77f-40d4-9790-8ad7ed7ed3d9",
      "status": {
        "tables": {
          "572": {
            "start-ts": 443413131555766280,
            "mark-table-id": 0
        "operation": {},
        "admin-job-type": 0

The CDC log reports [“execute DDL with error, retry later”] [query=“ALTER TABLE xxxx RENAME COLUMN xxxx TO xxx”] [error=“[CDC:ErrMySQLTxnError]MySQL txn error: Error 1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘COLUMN xxxxx TO xxxxx’ at line 1”]
I have already used the change column syntax to rename the column name in MySQL, parsed to position 443413131555766280, and added it to ignore-txn-start-ts. How can this be resolved?

| username: zhanggame1 | Original post link

Can the task start from 443413131555766281? Skip 443413131555766280.

| username: tidb菜鸟一只 | Original post link

Refer to this

| username: yiduoyunQ | Original post link

What happens if a DDL statement fails during TiCDC synchronization and how to recover

| username: TiDB_C罗 | Original post link

Sure, to isolate TiDB, using the TiDB->TiCDC->MySQL solution, the conclusion is that it is a failed synchronization solution. TiDB’s DDL and large updates will often cause synchronization interruptions or delays (progressing very slowly). In summary, MySQL cannot handle TiDB.

| username: system | Original post link

This topic was automatically closed 60 days after the last reply. New replies are no longer allowed.