Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

cdc: update cdc cli doc #3141

Merged
merged 17 commits into from
May 26, 2020
Merged
Show file tree
Hide file tree
Changes from 13 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
218 changes: 104 additions & 114 deletions ticdc/manage-ticdc.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ aliases: ['/docs-cn/dev/reference/tools/ticdc/manage/']

## 使用 `cdc cli` 工具来管理集群状态和数据同步

以下内容介绍如何使用 `cdc cli` 工具来管理集群状态和数据同步。
以下内容介绍如何使用 `cdc cli` 工具来管理集群状态和数据同步。在以下接口描述中,假设 PD 的监听 IP 地址为 `127.0.0.1`,端口为 `2379`。

### 管理 TiCDC 服务进程 (`capture`)

Expand All @@ -19,7 +19,7 @@ aliases: ['/docs-cn/dev/reference/tools/ticdc/manage/']
{{< copyable "shell-regular" >}}

```shell
cdc cli capture list
cdc cli capture list --pd=http://127.0.0.1:2379
```

```
Expand All @@ -37,61 +37,115 @@ aliases: ['/docs-cn/dev/reference/tools/ticdc/manage/']

### 管理同步任务 (`changefeed`)

- 创建 `changefeed`:
#### 创建同步任务

{{< copyable "shell-regular" >}}
使用以下命令来创建同步任务:

```shell
cdc cli changefeed create --sink-uri="mysql://root:123456@127.0.0.1:3306/"
create changefeed ID: 28c43ffc-2316-4f4f-a70b-d1a7c59ba79f info {"sink-uri":"mysql://root:123456@127.0.0.1:3306/","opts":{},"create-time":"2020-03-12T22:04:08.103600025+08:00","start-ts":415241823337054209,"target-ts":0,"admin-job-type":0,"config":{"filter-case-sensitive":false,"filter-rules":null,"ignore-txn-commit-ts":null}}
```
{{< copyable "shell-regular" >}}

- 查询 `changefeed` 列表:
```shell
cdc cli changefeed create --pd=http://127.0.0.1:2379 --sink-uri="mysql://root:123456@127.0.0.1:3306/"
create changefeed ID: 28c43ffc-2316-4f4f-a70b-d1a7c59ba79f info {"sink-uri":"mysql://root:123456@127.0.0.1:3306/","opts":{},"create-time":"2020-03-12T22:04:08.103600025+08:00","start-ts":415241823337054209,"target-ts":0,"admin-job-type":0,"config":{"filter-case-sensitive":false,"filter-rules":null,"ignore-txn-start-ts":null}}
```

{{< copyable "shell-regular" >}}
#### 查询同步任务列表

```shell
cdc cli changefeed list
```
使用以下命令来查询同步任务列表:

```
[
{
"id": "28c43ffc-2316-4f4f-a70b-d1a7c59ba79f"
}
]
```
{{< copyable "shell-regular" >}}

```shell
cdc cli changefeed list --pd=http://127.0.0.1:2379
```

- 查询特定 `changefeed`,对应于某个同步任务的信息和状态:
```
[
{
"id": "28c43ffc-2316-4f4f-a70b-d1a7c59ba79f"
}
]
```

{{< copyable "shell-regular" >}}
#### 查询特定同步任务

```shell
cdc cli changefeed query --changefeed-id=28c43ffc-2316-4f4f-a70b-d1a7c59ba79f
```
使用以下命令来查询特定同步任务:
TomShawn marked this conversation as resolved.
Show resolved Hide resolved

```
{
"info": {
"sink-uri": "mysql://root:123456@127.0.0.1:3306/",
"opts": {},
"create-time": "2020-03-12T22:04:08.103600025+08:00",
"start-ts": 415241823337054209,
"target-ts": 0,
"admin-job-type": 0,
"config": {
"filter-case-sensitive": false,
"filter-rules": null,
"ignore-txn-commit-ts": null
}
},
"status": {
"resolved-ts": 415241860902289409,
"checkpoint-ts": 415241860640145409,
"admin-job-type": 0
}
}
```
{{< copyable "shell-regular" >}}

```shell
cdc cli changefeed query --pd=http://127.0.0.1:2379 --changefeed-id=28c43ffc-2316-4f4f-a70b-d1a7c59ba79f
```

```
{
"info": {
"sink-uri": "mysql://root:123456@127.0.0.1:3306/",
"opts": {},
"create-time": "2020-03-12T22:04:08.103600025+08:00",
"start-ts": 415241823337054209,
"target-ts": 0,
"admin-job-type": 0,
"config": {
"filter-case-sensitive": false,
"filter-rules": null,
"ignore-txn-start-ts": null
}
},
"status": {
"resolved-ts": 415241860902289409,
"checkpoint-ts": 415241860640145409,
"admin-job-type": 0
}
}
```

以上命令中:

- `admin-job-type` 代表一个 changefeed 的状态:
zier-one marked this conversation as resolved.
Show resolved Hide resolved
overvenus marked this conversation as resolved.
Show resolved Hide resolved
- `0`: 状态正常,也是初始状态。
- `1`: 任务暂停。停止任务后所有同步 `processor` 会结束退出,同步任务的配置和同步状态都会保留,可以从 `checkpoint-ts` 恢复任务。
- `2`: 任务恢复,同步任务从 `checkpoint-ts` 继续同步。
- `3`: 任务已删除,接口请求后会结束所有同步 `processor`,并清理同步任务配置信息。同步状态保留,只提供查询,没有其他实际功能。

### 停止同步任务

使用以下命令来停止同步任务:

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

```shell
cdc cli changefeed pause --pd=http://127.0.0.1:2379 --changefeed-id 28c43ffc-2316-4f4f-a70b-d1a7c59ba79f
```

以上命令中:

- `--changefeed=uuid` 为需要操作的 `changefeed` ID。

### 恢复同步任务

使用以下命令恢复同步任务:

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

```shell
cdc cli changefeed resume --pd=http://127.0.0.1:2379 --changefeed-id 28c43ffc-2316-4f4f-a70b-d1a7c59ba79f
```

以上命令中:

- `--changefeed=uuid` 为需要操作的 `changefeed` ID。

### 删除同步任务

使用以下命令删除同步任务:

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

```shell
cdc cli changefeed remove --pd=http://127.0.0.1:2379 --changefeed-id 28c43ffc-2316-4f4f-a70b-d1a7c59ba79f
```

- `--changefeed=uuid` 为需要操作的 `changefeed` ID。

### 管理同步子任务处理单元 (`processor`)
kissmydb marked this conversation as resolved.
Show resolved Hide resolved

Expand All @@ -100,7 +154,7 @@ aliases: ['/docs-cn/dev/reference/tools/ticdc/manage/']
{{< copyable "shell-regular" >}}

```shell
cdc cli processor list
cdc cli processor list --pd=http://127.0.0.1:2379
```

```
Expand All @@ -118,7 +172,7 @@ aliases: ['/docs-cn/dev/reference/tools/ticdc/manage/']
{{< copyable "shell-regular" >}}

```shell
cdc cli processor query --changefeed-id=28c43ffc-2316-4f4f-a70b-d1a7c59ba79f --capture-id=b293999a-4168-4988-a4f4-35d9589b226b
cdc cli processor query --pd=http://127.0.0.1:2379 --changefeed-id=28c43ffc-2316-4f4f-a70b-d1a7c59ba79f
```

```
Expand All @@ -143,7 +197,7 @@ aliases: ['/docs-cn/dev/reference/tools/ticdc/manage/']

## 使用 HTTP 接口管理集群状态和数据同步

目前 HTTP 接口提供一些基础的查询和运维功能。在以下接口描述中,假设 TiCDC server 的状态查询接口 IP 地址为 `127.0.0.1`,状态端口地址为 `8300`(在启动 TiCDC server 时通过 `--status-addr=ip:port` 指定绑定的 IP 和端口)。在后续版本中这部分功能也会集成到 `cdc cli` 中
目前 HTTP 接口提供一些基础的查询和运维功能。在以下接口描述中,假设 TiCDC server 的监听 IP 地址为 `127.0.0.1`,端口为 `8300`(在启动 TiCDC server 时通过 `--addr=ip:port` 指定绑定的 IP 和端口)。

### 获取 TiCDC server 状态信息的接口

Expand Down Expand Up @@ -192,67 +246,3 @@ curl -X POST http://127.0.0.1:8301/capture/owner/resign
```
election: not leader
```

### 停止同步任务

使用以下命令来停止同步任务:

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

```shell
curl -X POST -d "admin-job=1&cf-id=28c43ffc-2316-4f4f-a70b-d1a7c59ba79f" http://127.0.0.1:8301/capture/owner/admin
```

```
{
"status": true,
"message": ""
}
```

以上命令中:

- `admin-job=1` 表示停止任务。停止任务后所有同步 `processor` 会结束退出,同步任务的配置和同步状态都会保留,可以从 `checkpoint-ts` 恢复任务。
- `cf-id=xxx` 为需要操作的 `changefeed` ID。

### 恢复同步任务

使用以下命令恢复同步任务:

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

```shell
curl -X POST -d "admin-job=2&cf-id=28c43ffc-2316-4f4f-a70b-d1a7c59ba79f" http://127.0.0.1:8301/capture/owner/admin
```

```
{
"status": true,
"message": ""
}
```

以上命令中:

- `admin-job=2` 表示恢复任务,同步任务从 `checkpoint-ts` 继续同步。
- `cf-id=xxx` 为需要操作的 `changefeed` ID。

### 删除同步任务

使用以下命令删除同步任务:

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

```shell
curl -X POST -d "admin-job=3&cf-id=28c43ffc-2316-4f4f-a70b-d1a7c59ba79f" http://127.0.0.1:8301/capture/owner/admin
```

```
{
"status": true,
"message": ""
}
```

- `admin-job=3`,表示删除任务,接口请求后会结束所有同步 `processor`,并清理同步任务配置信息。同步状态保留,只提供查询,没有其他实际功能。
- `cf-id=xxx` 为需要操作的 `changefeed` ID。
2 changes: 2 additions & 0 deletions ticdc/ticdc-overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -54,5 +54,7 @@ TiCDC 的系统架构如下图所示:
目前 TiCDC(4.0 发布版本)与部分 TiDB 特性存在冲突,在后续的 TiCDC 版本上会逐渐修复。当前版本需要做相应的兼容性处理。暂不支持的场景如下:

- 暂不支持同步分区表。
- 暂不支持同步使用 RawKV 的 TiKV 集群。
overvenus marked this conversation as resolved.
Show resolved Hide resolved
- 暂不支持 TiDB 4.0 [新的 Collation 框架](/character-set-and-collation.md#新框架下的-collation-支持)。如果开启该功能,需保证下游集群为 TiDB 并使用与上游相同的 collation,否则会出现 collation 导致的无法定位数据的问题。
overvenus marked this conversation as resolved.
Show resolved Hide resolved
- 暂不支持 TiDB 4.0 中[创建 SEQUENCE 的 DDL 操作](/sql-statements/sql-statement-create-sequence.md) 和 [SEQUENCE 函数](/sql-statements/sql-statement-create-sequence.md#sequence-函数)。在上游 TiDB 使用 SEQUENCE 时,TiCDC 将会忽略掉上游执行的 SEQUENCE DDL 操作/函数,但是使用 SEQUENCE 函数的 DML 操作可以正确地同步。
- 暂不支持 [TiKV Hibernate Region](https://github.com/tikv/tikv/blob/master/docs/reference/configuration/raftstore-config.md#hibernate-region)。TiCDC 会使 Region 无法进入静默状态。
kissmydb marked this conversation as resolved.
Show resolved Hide resolved
2 changes: 1 addition & 1 deletion ticdc/troubleshoot-ticdc.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ aliases: ['/docs-cn/dev/reference/tools/ticdc/troubleshoot/']
- 该场景下 TiCDC 会保存任务信息,由于 TiCDC 已经在 PD 中设置的 service GC safepoint,在 `gc-ttl` 的有效期内,同步任务 checkpoint 之后的数据不会被 TiKV GC 清理掉。
- 处理方法:
1. 用户需先通过 `cdc cli changefeed query` 查询同步任务状态信息,记录 `checkpoint-ts` 值。
2. 使用新的任务配置文件,增加`ignore-txn-commit-ts` 参数跳过指定 `commit-ts` 对应的事务。
2. 使用新的任务配置文件,增加`ignore-txn-start-ts` 参数跳过指定 `start-ts` 对应的事务。
3. 通过 HTTP API 停止旧的同步任务,使用 `cdc cli changefeed create` ,指定新的任务配置文件,指定 `start-ts` 为刚才记录的 `checkpoint-ts`,启动新的同步任务恢复同步。

## `gc-ttl` 和文件排序
Expand Down