Skip to content

Commit

Permalink
cherry pick pingcap#4959 to release-4.0
Browse files Browse the repository at this point in the history
Signed-off-by: ti-srebot <ti-srebot@pingcap.com>
  • Loading branch information
liuzix authored and ti-srebot committed Dec 21, 2020
1 parent 8007209 commit b337f49
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 5 deletions.
6 changes: 6 additions & 0 deletions ticdc/manage-ticdc.md
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,12 @@ Info: {"sink-uri":"mysql://root:123456@127.0.0.1:3306/","opts":{},"create-time":

- `--start-ts`:指定 changefeed 的开始 TSO。TiCDC 集群将从这个 TSO 开始拉取数据。默认为当前时间。
- `--target-ts`:指定 changefeed 的目标 TSO。TiCDC 集群拉取数据直到这个 TSO 停止。默认为空,即 TiCDC 不会自动停止。
- `--sort-engine`:指定 changefeed 使用的排序引擎。因 TiDB 和 TiKV 使用分布式架构,TiCDC 需要对数据变更记录进行排序后才能输出。该项支持 `memory`/`unified`/`file`

- `memory`:在内存中进行排序。生产环境中建议优先选择 `memory`
- `unified`:自 v4.0.9 引入的实验特性,优先使用内存排序。内存不足时则自动使用硬盘暂存数据。**不建议用于生产环境**,除非因内存不足 `memory` 无法正常使用。
- `file`:完全使用磁盘暂存数据。**已经停止维护,不建议使用。**

- `--config`:指定 changefeed 配置文件。

#### Sink URI 配置 `mysql`/`tidb`
Expand Down
13 changes: 8 additions & 5 deletions ticdc/troubleshoot-ticdc.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,24 +45,27 @@ aliases: ['/docs-cn/stable/ticdc/troubleshoot-ticdc/','/docs-cn/v4.0/ticdc/troub
- 通过 `cdc cli changefeed list``cdc cli changefeed query` 命令查看同步任务的状态信息。任务状态为 `stopped` 代表同步中断,`error` 项会包含具体的错误信息。任务出错后可以在 TiCDC server 日志中搜索 `error on running processor` 查看错误堆栈,帮助进一步排查问题。
- 部分极端异常情况下 TiCDC 出现服务重启,可以在 TiCDC server 日志中搜索 `FATAL` 级别的日志排查问题。

## TiCDC 的 `gc-ttl` 和文件排序是什么
## TiCDC 的 `gc-ttl` 是什么

从 TiDB v4.0.0-rc.1 版本起,PD 支持外部服务设置服务级别 GC safepoint。任何一个服务可以注册更新自己服务的 GC safepoint。PD 会保证任何小于该 GC safepoint 的 KV 数据不会在 TiKV 中被 GC 清理掉。在 TiCDC 中启用了这一功能,用来保证 TiCDC 在不可用、或同步任务中断情况下,可以在 TiKV 内保留 TiCDC 需要消费的数据不被 GC 清理掉。

启动 TiCDC server 时可以通过 `gc-ttl` 指定 GC safepoint 的 TTL,这个值的含义是当 TiCDC 服务全部挂掉后,由 TiCDC 在 PD 所设置的 GC safepoint 保存的最长时间,该值默认为 86400 秒。

如果同步任务长时间中断,累积未消费的数据比较多,初始启动 TiCDC 可能会发生 OOM。这种情况下可以启用 TiCDC 提供的文件排序功能,该功能会使用文件系统文件进行排序。启用的方式是创建同步任务时在 `cdc cli` 内传入 `--sort-engine=file``--sort-dir=/path/to/sort_dir`,使用示例如下:
## 同步任务中断,尝试再次启动后 TiCDC 发生 OOM,如何处理?

如果同步任务长时间中断,累积未消费的数据比较多,再次启动 TiCDC 可能会发生 OOM。这种情况下可以启用 TiCDC 提供的实验特性 Unified Sorter 排序引擎,该功能会在系统内存不足时使用磁盘进行排序。启用的方式是创建同步任务时在 `cdc cli` 内传入 `--sort-engine=unified``--sort-dir=/path/to/sort_dir`,使用示例如下:

{{< copyable "shell-regular" >}}

```shell
cdc cli changefeed create --pd=http://10.0.10.25:2379 --start-ts=415238226621235200 --sink-uri="mysql://root:123456@127.0.0.1:3306/" --sort-engine="file" --sort-dir="/data/cdc/sort"
cdc cli changefeed update -c [changefeed-id] --sort-engine="unified" --sort-dir="/data/cdc/sort"
```

> **注意:**
>
> + TiCDC(4.0 发布版本)还不支持动态修改文件排序和内存排序。
> + 目前文件排序功能的处理能力有限。如果单表数据量过多导致文件排序失败,可以修改 TiCDC 任务配置过滤掉这张表,通过其他备份恢复工具例如 BR 恢复这张表之后再继续同步该表。
> + TiCDC 从 4.0.9 版本起支持 Unified Sorter 排序引擎。
> + TiCDC(4.0 发布版本)还不支持动态修改排序引擎。在修改排序引擎设置前,请务必确保 changefeed 已经停止 (stopped)。
> + 目前 Unified Sorter 排序引擎为实验特性,在数据表较多 (>= 100) 时可能出现性能问题,影响同步速度,故不建议在生产环境中使用。开启 Unified Sorter 前请保证各 TiCDC 节点机器上有足够硬盘空间。如果积攒的数据总量有可能超过 1 TB,则不建议使用 TiCDC 进行同步。
## 如何处理 TiCDC 创建同步任务或同步到 MySQL 时遇到 `Error 1298: Unknown or incorrect time zone: 'UTC'` 错误?

Expand Down

0 comments on commit b337f49

Please sign in to comment.