From 89ff00f2e814b6bcbd18e3be4127f6c9eb1f27bb Mon Sep 17 00:00:00 2001 From: dongmen <20351731+asddongmen@users.noreply.github.com> Date: Sun, 7 Apr 2024 15:22:49 +0800 Subject: [PATCH] ticdc: refine changefeed related documentations (#16717) --- releases/release-7.5.0.md | 1 + ticdc/ticdc-changefeed-config.md | 6 ++++++ ticdc/ticdc-changefeed-overview.md | 2 +- ticdc/ticdc-ddl.md | 4 ++++ 4 files changed, 12 insertions(+), 1 deletion(-) diff --git a/releases/release-7.5.0.md b/releases/release-7.5.0.md index 20337f9b49ca..94a5d8bc1e33 100644 --- a/releases/release-7.5.0.md +++ b/releases/release-7.5.0.md @@ -180,6 +180,7 @@ TiDB 7.5.0 为长期支持版本 (Long-Term Support Release, LTS)。 | BR | [`--ignore-stats`](/br/br-snapshot-manual.md#备份统计信息) | 新增 | 用于备份和恢复数据库统计信息。当指定该参数值为 `false` 时,BR 备份工具支持备份和恢复数据库的列、索引、和表级别的统计信息。 | | TiCDC | [`case-sensitive`](/ticdc/ticdc-changefeed-config.md) | 修改 | 经进一步的测试后,默认值由 `true` 改为 `false`,即默认情况下 TiCDC 配置文件中涉及的表名、库名大小写不敏感。 | | TiCDC | [`sink.dispatchers.partition`](/ticdc/ticdc-changefeed-config.md) | 修改 | 控制增量数据的 Kafka Partition 分发策略,可选值新增 `columns` 选项,即使用明确指定的列值计算 partition 编号。 | +| TiCDC | [`changefeed-error-stuck-duration`](/ticdc/ticdc-changefeed-config.md) | 新增 | 控制 changefeed 发生内部错误和异常时允许自动重试的时间。 | | TiCDC | [`encoding-worker-num`](/ticdc/ticdc-changefeed-config.md) | 新增 | 控制 redo 模块中编解码 worker 的数量。 | | TiCDC | [`flush-worker-num`](/ticdc/ticdc-changefeed-config.md) | 新增 | 控制 redo 模块中上传文件 worker 的数量。 | | TiCDC | [`sink.column-selectors`](/ticdc/ticdc-changefeed-config.md) | 新增 | 控制 TiCDC 将增量数据分发到 Kafka 时,只发送指定的列的数据变更事件。 | diff --git a/ticdc/ticdc-changefeed-config.md b/ticdc/ticdc-changefeed-config.md index fca3bbd63d95..7b566edad131 100644 --- a/ticdc/ticdc-changefeed-config.md +++ b/ticdc/ticdc-changefeed-config.md @@ -71,6 +71,12 @@ case-sensitive = false # 详情请参考:https://docs.pingcap.com/zh/tidb/stable/ticdc-bidirectional-replication#ticdc-双向复制 # bdr-mode = false +# changefeed 发生内部错误或异常时允许自动重试的时间,默认值为 30 分钟。 +# 若 changefeed 发生内部错误或异常,且持续时间超过该参数设置的时间,changefeed 会进入 Failed 状态。 +# 当 changefeed 处于 failed 状态时,需要手动重启 changefeed 才能恢复。 +# 配置格式为 "h m s",例如 "1h30m30s"。 +changefeed-error-stuck-duration = "30m" + [mounter] # mounter 解码 KV 数据的线程数,默认值为 16 # worker-num = 16 diff --git a/ticdc/ticdc-changefeed-overview.md b/ticdc/ticdc-changefeed-overview.md index 69f0b6d3b5c6..354b85aa6f9c 100644 --- a/ticdc/ticdc-changefeed-overview.md +++ b/ticdc/ticdc-changefeed-overview.md @@ -17,7 +17,7 @@ Changefeed 是 TiCDC 中的单个同步任务。Changefeed 将一个 TiDB 集群 - Normal:同步任务正常进行,checkpoint-ts 正常推进。处于这个状态的 changefeed 会阻塞 GC 推进。 - Stopped:同步任务停止,由于用户手动暂停 (pause) changefeed。处于这个状态的 changefeed 会阻挡 GC 推进。 -- Warning:同步任务报错,由于某些可恢复的错误导致同步无法继续进行。处于这个状态的 changefeed 会不断尝试继续推进,直到状态转为 Normal。最大重试时间为 30 分钟,超过该时间,changefeed 会进入 failed 状态。 处于这个状态的 changefeed 会阻挡 GC 推进。 +- Warning:同步任务报错,由于某些可恢复的错误导致同步无法继续进行。处于这个状态的 changefeed 会不断重试,试图继续推进,直到状态转为 Normal。默认重试时间为 30 分钟(可以通过 [`changefeed-error-stuck-duration`](/ticdc/ticdc-changefeed-config.md) 调整),超过该时间,changefeed 会进入 Failed 状态。处于这个状态的 changefeed 会阻挡 GC 推进。 - Finished:同步任务完成,同步任务进度已经达到预设的 TargetTs。处于这个状态的 changefeed 不会阻挡 GC 推进。 - Failed:同步任务失败。处于这个状态的 changefeed 不会自动尝试恢复。为了让用户有足够的时间处理故障,处于这个状态的 changefeed 会阻塞 GC 推进,阻塞时长为 `gc-ttl` 所设置的值,其默认值为 24 小时。在此期间,如果导致任务失败的问题被修复,用户可以手动恢复 changefeed。超过了 `gc-ttl` 时长后,如果 changefeed 仍然处于 Failed 状态,则同步任务无法恢复。 diff --git a/ticdc/ticdc-ddl.md b/ticdc/ticdc-ddl.md index 21e4ea375fd8..982c75b0fe04 100644 --- a/ticdc/ticdc-ddl.md +++ b/ticdc/ticdc-ddl.md @@ -100,6 +100,10 @@ rules = ['test.t*'] | `RENAME TABLE test.t1 TO ignore.t1, test.t2 TO test.t22;` | 报错 | 新的库名 ignore 不符合 filter 规则 | | `RENAME TABLE test.t1 TO test.t4, test.t3 TO test.t1, test.t4 TO test.t3;` | 报错 | 在一条 DDL 中交换 test.t1 和 test.t3 两个表的名字,TiCDC 无法正确处理。请参考错误提示提示信息处理。 | +### DDL 语句注意事项 + +当在上游执行跨数据库的 DDL 语句(如 `CREATE TABLE db1.t1 LIKE t2`)时,建议在 DDL 语句中显式地指定所有相关的库名(如 `CREATE TABLE db1.t1 LIKE db2.t2`)。否则,由于缺少库名信息,跨数据库的 DDL 语句可能无法正确地在下游执行。 + ### SQL 模式 TiCDC 默认采用 TiDB 的默认 SQL 模式来解析 DDL 语句。如果你的上游 TiDB 集群使用了非默认的 SQL 模式,你需要在 TiCDC 的配置文件中指定 SQL 模式,否则 TiCDC 可能无法正确解析 DDL。关于 TiDB SQL 模式的更多信息,请参考 [SQL 模式](/sql-mode.md)。