Skip to content

Commit

Permalink
ticdc: refine changefeed related documentations (#16717) (#18913)
Browse files Browse the repository at this point in the history
  • Loading branch information
ti-chi-bot authored Oct 29, 2024
1 parent 02a5212 commit 2b9fb36
Show file tree
Hide file tree
Showing 4 changed files with 17 additions and 1 deletion.
1 change: 1 addition & 0 deletions releases/release-6.5.6.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ TiDB 版本:6.5.6
- [`sql-mode`](https://docs.pingcap.com/zh/tidb/v6.5/ticdc-changefeed-config):你可以设置 TiCDC 同步数据时解析 DDL 语句所使用的 [SQL 模式](https://docs.pingcap.com/zh/tidb/v6.5/ticdc-ddl#sql-模式) [#9876](https://github.com/pingcap/tiflow/issues/9876) @[asddongmen](https://github.com/asddongmen)
- [`encoding-worker-num`](https://docs.pingcap.com/zh/tidb/v6.5/ticdc-changefeed-config)[`flush-worker-num`](https://docs.pingcap.com/zh/tidb/v6.5/ticdc-changefeed-config):你可以根据不同的机器规格,设置 redo 模块不同的并发参数 [#10048](https://github.com/pingcap/tiflow/issues/10048) @[CharlesCheung96](https://github.com/CharlesCheung96)
- [`compression`](https://docs.pingcap.com/zh/tidb/v6.5/ticdc-changefeed-config):你可以设置 redo log 文件的压缩行为 [#10176](https://github.com/pingcap/tiflow/issues/10176) @[sdojjy](https://github.com/sdojjy)
- [`changefeed-error-stuck-duration`](https://docs.pingcap.com/zh/tidb/v6.5/ticdc-changefeed-config):你可以设置 changefeed 发生内部错误和异常时允许自动重试的时间 [#9875](https://github.com/pingcap/tiflow/issues/9875) @[asddongmen](https://github.com/asddongmen)
- [`sink.cloud-storage-config`](https://docs.pingcap.com/zh/tidb/v6.5/ticdc-changefeed-config):你可以设置同步数据到对象存储时自动清理历史数据的功能 [#10109](https://github.com/pingcap/tiflow/issues/10109) @[CharlesCheung96](https://github.com/CharlesCheung96)

## 改进提升
Expand Down
11 changes: 11 additions & 0 deletions ticdc/ticdc-changefeed-config.md
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,17 @@ enable-old-value = true
# 默认值和 TiDB 的默认 SQL 模式一致
# sql-mode = "ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

# 默认值为 false,表示不处于 BDR 模式。
# 如果要使用 TiCDC 搭建 BDR 集群,需要将该参数设置为 true,同时要将 TiDB 集群设置为 BDR 模式。
# 详情请参考:https://docs.pingcap.com/zh/tidb/stable/ticdc-bidirectional-replication#ticdc-双向复制
# bdr-mode = false

# 从 v6.5.6 开始引入。changefeed 发生内部错误或异常时允许自动重试的时间,默认值为 30 分钟。
# 若 changefeed 发生内部错误或异常,且持续时间超过该参数设置的时间,changefeed 会进入 Failed 状态。
# 当 changefeed 处于 failed 状态时,需要手动重启 changefeed 才能恢复。
# 配置格式为 "h m s",例如 "1h30m30s"。
changefeed-error-stuck-duration = "30m"

[mounter]
# mounter 解码 KV 数据的线程数,默认值为 16
# worker-num = 16
Expand Down
2 changes: 1 addition & 1 deletion ticdc/ticdc-changefeed-overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ Changefeed 是 TiCDC 中的单个同步任务。Changefeed 将一个 TiDB 集群

- Normal:同步任务正常进行,checkpoint-ts 正常推进。
- 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 小时。对于 v6.5.6 或更高的 v6.5 补丁版本,如果在此期间导致任务失败的问题被修复,用户可以手动恢复 changefeed。超过了 `gc-ttl` 时长后,如果 changefeed 仍然处于 Failed 状态,则同步任务无法恢复。

Expand Down
4 changes: 4 additions & 0 deletions ticdc/ticdc-ddl.md
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,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)
Expand Down

0 comments on commit 2b9fb36

Please sign in to comment.