diff --git a/TOC.md b/TOC.md index 4ed7c96335e3..fa9ae305a95e 100644 --- a/TOC.md +++ b/TOC.md @@ -78,7 +78,7 @@ + [使用 BR 进行备份与恢复](/br/backup-and-restore-tool.md) @栾成 + [BR 备份与恢复场景示例](/br/backup-and-restore-use-cases.md) @栾成 + [日常巡检](/daily-inspection.md) @王军 - + [TiCDC 任务管理](/ticdc/manage-ticdc.md) @沈泰宁 + + [TiCDC 运维操作及任务管理](/ticdc/manage-ticdc.md) + [TiUP 常用运维操作](/maintain-tidb-using-tiup.md) @王贤净 + [TiFlash 常用运维操作](/tiflash/maintain-tiflash.md) @雷宇 + 监控与告警 @@ -106,7 +106,7 @@ + [磁盘 I/O 过高](/troubleshoot-high-disk-io.md) @陶政 + [锁冲突与 TTL 超时](/troubleshoot-lock-conflicts.md) @高振娇 + [从性能监控分析问题](/performance-tuning-monitor.md) @李坤 - + [TiCDC 常见问题](/ticdc/troubleshoot-ticdc.md) @杨非 + + [TiCDC 常见问题](/ticdc/troubleshoot-ticdc.md) + [TiFlash 常见问题](/tiflash/troubleshoot-tiflash.md) @孙若曦 + 性能调优 + 系统调优 @@ -199,14 +199,7 @@ + [故障诊断](/troubleshoot-tidb-lightning.md) + [FAQ](/tidb-lightning/tidb-lightning-faq.md) + [术语表](/tidb-lightning/tidb-lightning-glossary.md) - + TiCDC - + [概述](/ticdc/ticdc-overview.md) - + [部署使用](/ticdc/deploy-ticdc.md) - + [集群和同步任务管理](/ticdc/manage-ticdc.md) - + [常见问题和故障处理](/ticdc/troubleshoot-ticdc.md) - + [Sink URI 配置规则](/ticdc/sink-url.md) - + [开放数据协议](/ticdc/ticdc-open-protocol.md) - + [Column 和 DDL 的类型码](/ticdc/column-ddl-type-codes.md) + + [TiCDC](/ticdc/ticdc-overview.md) + sync-diff-inspector @王相 + [概述](/sync-diff-inspector/sync-diff-inspector-overview.md) + [不同库名或表名的数据校验](/sync-diff-inspector/route-diff.md) @@ -448,6 +441,7 @@ + [TiKV 简介](/tikv-overview.md) + [RocksDB 简介](/rocksdb/rocksdb-overview.md) + [TiFlash](/tiflash/tiflash-overview.md) + + [TiCDC 简介](/ticdc/ticdc-overview.md) + [错误码](/error-codes.md) @于帅鹏 + 常见问题解答 (FAQ) + [产品 FAQ](/faq/tidb-faq.md) @荣毅龙/启航 @@ -458,6 +452,8 @@ + [高可用 FAQ](/faq/high-availability-faq.md) @荣毅龙/启航 + [高可靠 FAQ](/faq/high-reliability-faq.md) @荣毅龙/启航 + [迁移 FAQ](/faq/migration-tidb-faq.md) @荣毅龙 ++ [开发指南] + + [TiCDC 开放数据协议](/ticdc/ticdc-open-protocol.md) + [术语表](/glossary.md) @李琳 + [版本发布历史](/releases/release-notes.md) + v4.0 diff --git a/ticdc/column-ddl-type-codes.md b/ticdc/column-ddl-type-codes.md deleted file mode 100644 index 8a5a858458e8..000000000000 --- a/ticdc/column-ddl-type-codes.md +++ /dev/null @@ -1,83 +0,0 @@ ---- -title: Column 和 DDL 的类型码 -category: reference -aliases: ['/docs-cn/dev/reference/tools/ticdc/column-ddl-type/'] ---- - -# Column 和 DDL 的类型码 - -Column 和 DDL 的类型码是由 [TiCDC Open Protocol](/ticdc/ticdc-open-protocol.md) 定义的 Column 和 DDL 类型编码,Column Type Code 标识 Row Changed Event 中的列数据类型,DDL Type Code 标识 DDL Event 中的 DDL 语句类型。 - -## Column Type Code - -| 类型 | Code | 输出示例 | 说明 | -| :---------- | :--- | :------ | :-- | -| Decimal | 0 | {"t":0,"v":"129012.1230000"} | | -| Tiny/Bool | 1 | {"t":1,"v":1} | | -| Short | 2 | {"t":2,"v":1} | | -| Long | 3 | {"t":3,"v":123} | | -| Float | 4 | {"t":4,"v":153.123} | | -| Double | 5 | {"t":5,"v":153.123} | | -| Null | 6 | {"t":6,"v":null} | | -| Timestamp | 7 | {"t":7,"v":"1973-12-30 15:30:00"} | | -| Longlong | 8 | {"t":8,"v":123} | | -| Int24 | 9 | {"t":9,"v":123} | | -| Date | 10 | {"t":10,"v":"2000-01-01"} | | -| Duration | 11 | {"t":11,"v":"23:59:59"} | | -| Datetime | 12 | {"t":12,"v":"2015-12-20 23:58:58"} | | -| Year | 13 | {"t":13,"v":1970} | | -| New Date | 14 | {"t":14,"v":"2000-01-01"} | | -| Varchar | 15 | {"t":15,"v":"测试"} | value 编码为 UTF-8 | -| Bit | 16 | {"t":16,"v":81} | | -| JSON | 245 | {"t":245,"v":"{\\"key1\\": \\"value1\\"}"} | | -| New Decimal | 246 | {"t":246,"v":"129012.1230000"} | | -| Enum | 247 | {"t":247,"v":1} | | -| Set | 248 | {"t":248,"v":3} | | -| Tiny Blob | 249 | {"t":249,"v":"5rWL6K+VdGV4dA=="} | value 编码为 Base64 | -| Medium Blob | 250 | {"t":250,"v":"5rWL6K+VdGV4dA=="} | value 编码为 Base64 | -| Long Blob | 251 | {"t":251,"v":"5rWL6K+VdGV4dA=="} | value 编码为 Base64 | -| Blob | 252 | {"t":252,"v":"5rWL6K+VdGV4dA=="} | value 编码为 Base64 | -| Var String | 253 | {"t":253,"v":"测试"} | value 编码为 UTF-8 | -| String | 254 | {"t":254,"v":"测试"} | value 编码为 UTF-8 | -| Geometry | 255 | | 尚不支持 | - -## DDL Type Code - -| 类型 | Code | -| :-------------------------------- | :- | -| Create Schema | 1 | -| Drop Schema | 2 | -| Create Table | 3 | -| Drop Table | 4 | -| Add Column | 5 | -| Drop Column | 6 | -| Add Index | 7 | -| Drop Index | 8 | -| Add Foreign Key | 9 | -| Drop Foreign Key | 10 | -| Truncate Table | 11 | -| Modify Column | 12 | -| Rebase Auto ID | 13 | -| Rename Table | 14 | -| Set Default Value | 15 | -| Shard RowID | 16 | -| Modify Table Comment | 17 | -| Rename Index | 18 | -| Add Table Partition | 19 | -| Drop Table Partition | 20 | -| Create View | 21 | -| Modify Table Charset And Collate | 22 | -| Truncate Table Partition | 23 | -| Drop View | 24 | -| Recover Table | 25 | -| Modify Schema Charset And Collate | 26 | -| Lock Table | 27 | -| Unlock Table | 28 | -| Repair Table | 29 | -| Set TiFlash Replica | 30 | -| Update TiFlash Replica Status | 31 | -| Add Primary Key | 32 | -| Drop Primary Key | 33 | -| Create Sequence | 34 | -| Alter Sequence | 35 | -| Drop Sequence | 36 | diff --git a/ticdc/deploy-ticdc.md b/ticdc/deploy-ticdc.md deleted file mode 100644 index 52d833cc7210..000000000000 --- a/ticdc/deploy-ticdc.md +++ /dev/null @@ -1,163 +0,0 @@ ---- -title: 部署和使用 TiCDC -category: reference -aliases: ['/docs-cn/dev/reference/tools/ticdc/deploy/'] ---- - -# 部署和使用 TiCDC - -本文介绍如何部署和使用 TiCDC 进行增量数据同步。 - -## 第 1 步:部署 TiCDC 集群 - -本节介绍了在不同场景下如何安装部署 TiCDC,包括以下场景: - -- [使用 TiUP 全新部署 TiCDC](#使用-tiup-全新部署-ticdc) -- [使用 TiUP 在原有 TiDB 集群上新增 TiCDC 组件](#使用-tiup-在原有-tidb-集群上新增-ticdc-组件) -- [手动在原有 TiDB 集群上新增 TiCDC 组件](#手动在原有-tidb-集群上新增-ticdc-组件) - -### 使用 TiUP 全新部署 TiCDC - -TiUP cluster 是适用于 TiDB 4.0 及以上版本的部署工具,部署运行 TiCDC 必须使用 TiDB v4.0.0-rc.1 或更新版本,部署流程如下: - -1. 参考 [TiUP 部署文档](/production-deployment-using-tiup.md)安装 TiUP。 - -2. 安装 TiUP cluster 组件 - - {{< copyable "shell-regular" >}} - - ```shell - tiup cluster - ``` - -3. 编写 topology 配置文件,保存为 `topology.yaml`。 - - 可以参考[全量的配置文件模版](https://github.com/pingcap-incubator/tiup-cluster/blob/master/examples/topology.example.yaml)。 - - 除了部署 TiDB 集群的配置,需要额外在 `cdc_servers` 下配置 CDC 服务器所在的 ip(目前只支持 ip,不支持域名)。 - - {{< copyable "" >}} - - ```ini - pd_servers: - - host: 172.19.0.101 - - host: 172.19.0.102 - - host: 172.19.0.103 - - tidb_servers: - - host: 172.19.0.101 - - tikv_servers: - - host: 172.19.0.101 - - host: 172.19.0.102 - - host: 172.19.0.103 - - cdc_servers: - - host: 172.19.0.101 - - host: 172.19.0.102 - - host: 172.19.0.103 - ``` - -4. 按照 TiUP 部署流程完成集群部署的剩余步骤,包括: - - 部署 TiDB 集群,其中 test 为集群名: - - {{< copyable "shell-regular" >}} - - ```shell - tiup cluster deploy test v4.0.0-rc.1 topology.yaml -i ~/.ssh/id_rsa - ``` - - 启动 TiDB 集群: - - {{< copyable "shell-regular" >}} - - ```shell - tiup cluster start test - ``` - -5. 查看集群状态 - - {{< copyable "shell-regular" >}} - - ```shell - tiup cluster display test - ``` - -### 使用 TiUP 在原有 TiDB 集群上新增 TiCDC 组件 - -1. 首先确认当前 TiDB 的版本支持 TiCDC,否则需要先升级 TiDB 集群至 4.0.0 rc.1 或更新版本。 - -2. 参考 [扩容 TiDB/TiKV/PD/TiCDC 节点](/scale-tidb-using-tiup.md#扩容-tidbpdtikv-节点) 章节对 TiCDC 进行部署。 - - 示例的扩容配置文件为: - - ```shell - vi scale-out.yaml - ``` - - ``` - cdc_servers: - - host: 10.0.1.5 - - host: 10.0.1.6 - - host: 10.0.1.7 - ``` - - 随后执行扩容命令即可: - {{< copyable "shell-regular" >}} - - ```shell - tiup cluster scale-out scale-out.yaml - ``` - -### 手动在原有 TiDB 集群上新增 TiCDC 组件 - -假设 PD 集群有一个可以提供服务的 PD 节点(client URL 为 `10.0.10.25:2379`)。若要部署三个 TiCDC 节点,可以按照以下命令启动集群。只需要指定相同的 PD 地址,新启动的节点就可以自动加入 TiCDC 集群。 - -{{< copyable "shell-regular" >}} - -```shell -cdc server --pd=http://10.0.10.25:2379 --log-file=ticdc_1.log --addr=0.0.0.0:8301 --advertise-addr=127.0.0.1:8301 -cdc server --pd=http://10.0.10.25:2379 --log-file=ticdc_2.log --addr=0.0.0.0:8302 --advertise-addr=127.0.0.1:8302 -cdc server --pd=http://10.0.10.25:2379 --log-file=ticdc_3.log --addr=0.0.0.0:8303 --advertise-addr=127.0.0.1:8303 -``` - -对于 `cdc server` 命令中可用选项解释如下: - -- `gc-ttl`: TiCDC 在 PD 设置的服务级别 GC safepoint 的 TTL (Time To Live) 时长,单位为秒,默认值为 `86400`,即 24 小时。 -- `pd`: PD client 的 URL。 -- `addr`: TiCDC 的监听地址,提供服务的 HTTP API 查询地址和 Prometheus 查询地址。 -- `advertise-addr`: TiCDC 对外访问地址。 -- `tz`: TiCDC 服务使用的时区。TiCDC 在内部转换 timestamp 等时间数据类型和向下游同步数据时使用该时区,默认为进程运行本地时区。 -- `log-file`: TiCDC 进程运行日志的地址,默认为 `cdc.log`。 -- `log-level`: TiCDC 进程运行时默认的日志级别,默认为 `info`。 - -## 第 2 步:创建同步任务 - -假设需要将上游所有的库表(系统表除外)同步到下游的 MySQL,可以通过以下命令创建同步任务: - -{{< 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/" -``` - -以上命令中的选项解释如下: - -- `pd`: PD client 的 URL。 -- `start-ts`: 指定开始同步的 TSO,不指定或指定为 `0` 时将使用当前 TSO 作为同步的起始 TSO。 -- `target-ts`: 指定同步结束的 TSO,不指定默认会永久同步。 -- `sink-uri`: sink 地址,目前支持 `mysql`/`tidb` 和 `kafka`。关于 sink URI 的写法请参考 [sink URI 配置规则](/ticdc/sink-url.md) -- `config`: 同步任务的配置。目前提供黑白名单配置和跳过特定 `commit-ts` 的事务。 - -执行该命令后,TiCDC 就会从指定的 start-ts (`415238226621235200`) 开始同步数据到下游 MySQL (`127.0.0.1:3306`) 中。 - -如果希望同步数据到 Kafka 集群,需要先在 Kafka 集群中创建好 topic(比如以下示例创建了名为 `cdc-test` 的 topic),划分好 partition,并通过以下命令创建到 Kafka 集群的同步任务: - -{{< copyable "shell-regular" >}} - -```shell -cdc cli changefeed create --pd=http://10.0.10.25:2379 --start-ts=415238226621235200 --sink-uri="kafka://10.0.10.30:9092/cdc-test" -``` - -执行命令以上后,TiCDC 会从指定 `start-ts` 开始同步数据到下游 Kafka (`10.0.10.30:9092`) 中。 diff --git a/ticdc/manage-ticdc.md b/ticdc/manage-ticdc.md index 88123cd2ba47..705346db4d7c 100644 --- a/ticdc/manage-ticdc.md +++ b/ticdc/manage-ticdc.md @@ -1,12 +1,48 @@ --- -title: 管理集群和同步任务 +title: TiCDC 运维操作及任务管理 category: reference aliases: ['/docs-cn/dev/reference/tools/ticdc/manage/'] --- -# 管理集群和同步任务 +# TiCDC 运维操作及任务管理 -目前 TiCDC 提供命令行工具 `cdc cli` 和 HTTP 接口两种方式来管理集群和同步任务。 +本文档介绍如何部署 TiCDC 集群,以及如何通过 TiCDC 提供的命令行工具 `cdc cli` 和 HTTP 接口两种方式来管理 TiCDC 集群和同步任务。 + +## TiCDC 部署 + +### 使用 TiUP 部署 + +#### 使用 TiUP 部署包含 TiCDC 组件的 TiDB 集群 + +详细操作参考[使用 TiUP 部署 TiCDC](/production-deployment-using-tiup.md#第-3-步编辑初始化配置文件)。 + +#### 使用 TiUP 在原有 TiDB 集群上新增 TiCDC 组件 + +1. 首先确认当前 TiDB 的版本支持 TiCDC,否则需要先升级 TiDB 集群至 4.0.0 rc.1 或更新版本。 + +2. 参考 [扩容 TiDB/TiKV/PD/TiCDC 节点](/scale-tidb-using-tiup.md#扩容-ticdc-节点) 章节对 TiCDC 进行部署。 + +### 在原有 TiDB 集群上使用 binary 部署 TiCDC 组件 + +假设 PD 集群有一个可以提供服务的 PD 节点(client URL 为 `10.0.10.25:2379`)。若要部署三个 TiCDC 节点,可以按照以下命令启动集群。只需要指定相同的 PD 地址,新启动的节点就可以自动加入 TiCDC 集群。 + +{{< copyable "shell-regular" >}} + +```shell +cdc server --pd=http://10.0.10.25:2379 --log-file=ticdc_1.log --addr=0.0.0.0:8301 --advertise-addr=127.0.0.1:8301 +cdc server --pd=http://10.0.10.25:2379 --log-file=ticdc_2.log --addr=0.0.0.0:8302 --advertise-addr=127.0.0.1:8302 +cdc server --pd=http://10.0.10.25:2379 --log-file=ticdc_3.log --addr=0.0.0.0:8303 --advertise-addr=127.0.0.1:8303 +``` + +对于 `cdc server` 命令中可用选项解释如下: + +- `gc-ttl`: TiCDC 在 PD 设置的服务级别 GC safepoint 的 TTL (Time To Live) 时长,单位为秒,默认值为 `86400`,即 24 小时。 +- `pd`: PD client 的 URL。 +- `addr`: TiCDC 的监听地址,提供服务的 HTTP API 查询地址和 Prometheus 查询地址。 +- `advertise-addr`: TiCDC 对外访问地址。 +- `tz`: TiCDC 服务使用的时区。TiCDC 在内部转换 timestamp 等时间数据类型和向下游同步数据时使用该时区,默认为进程运行本地时区。 +- `log-file`: TiCDC 进程运行日志的地址,默认为 `cdc.log`。 +- `log-level`: TiCDC 进程运行时默认的日志级别,默认为 `info`。 ## 使用 `cdc cli` 工具来管理集群状态和数据同步 @@ -48,6 +84,57 @@ cdc cli changefeed create --pd=http://127.0.0.1:2379 --sink-uri="mysql://root:12 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}} ``` +其中 `--sink-uri` 需要按照以下格式进行配置,目前 scheme 支持 `mysql`/`tidb`/`kafka`。 + +{{< copyable "" >}} + +``` +[scheme]://[userinfo@][host]:[port][/path]?[query_parameters] +``` + +- Sink URI 配置 `mysql`/`tidb` + + 配置样例如下所示: + + {{< copyable "shell-regular" >}} + + ```shell + --sink-uri="mysql://root:123456@127.0.0.1:3306/?worker-count=16&max-txn-row=5000" + ``` + + 以上配置命令中的参数解析如下: + + | 参数 | 解析 | + | :------------ | :------------------------------------------------ | + | `root` | 下游数据库的用户名 | + | `123456` | 下游数据库密码 | + | `127.0.0.1` | 下游数据库的 IP | + | `3306` | 下游数据的连接端口 | + | `worker-count` | 向下游执行 SQL 的并发度(可选,默认值为 `16`) | + | `max-txn-row` | 向下游执行 SQL 的 batch 大小(可选,默认值为 `256`) | + +- Sink URI 配置 `kafka` + + 配置样例如下所示: + + {{< copyable "shell-regular" >}} + + ```shell + --sink-uri="kafka://127.0.0.1:9092/cdc-test?kafka-version=2.4.0&partition-num=6&max-message-bytes=67108864&replication-factor=1" + ``` + + 以上配置命令中的参数解析如下: + + | 参数 | 解析 | + | :------------------ | :------------------------------------------------------------ | + | `127.0.0.1` | 下游 Kafka 对外提供服务的 IP | + | `9092` | 下游 Kafka 的连接端口 | + | `cdc-test` | 使用的 Kafka topic 名字 | + | `kafka-version` | 下游 Kafka 版本号(可选,默认值 `2.4.0`) | + | `partition-num` | 下游 Kafka partition 数量(可选,不能大于实际 partition 数量。如果不填会自动获取 partition 数量。) | + | `max-message-bytes` | 每次向 Kafka broker 发送消息的最大数据量(可选,默认值 `64MB`) | + | `replication-factor` | kafka 消息保存副本数(可选,默认值 `1`) | + #### 查询同步任务列表 使用以下命令来查询同步任务列表: diff --git a/ticdc/sink-url.md b/ticdc/sink-url.md deleted file mode 100644 index c475a7859499..000000000000 --- a/ticdc/sink-url.md +++ /dev/null @@ -1,58 +0,0 @@ ---- -title: Sink URI 配置规则 -category: reference -aliases: ['/docs-cn/dev/reference/tools/ticdc/sink/'] ---- - -# Sink URI 配置规则 - -sink URI 需要按照以下格式进行配置,目前 scheme 支持 `mysql`/`tidb`/`kafka`。 - -{{< copyable "" >}} - -``` -[scheme]://[userinfo@][host]:[port][/path]?[query_parameters] -``` - -## Sink URI 配置 `mysql`/`tidb` - -配置样例如下所示: - -{{< copyable "shell-regular" >}} - -```shell ---sink-uri="mysql://root:123456@127.0.0.1:3306/?worker-count=16&max-txn-row=5000" -``` - -以上配置命令中的参数解析如下: - -| 参数 | 解析 | -| :------------ | :------------------------------------------------ | -| `root` | 下游数据库的用户名 | -| `123456` | 下游数据库密码 | -| `127.0.0.1` | 下游数据库的 IP | -| `3306` | 下游数据的连接端口 | -| `worker-count` | 向下游执行 SQL 的并发度(可选,默认值为 `16`) | -| `max-txn-row` | 向下游执行 SQL 的 batch 大小(可选,默认值为 `256`) | - -## Sink URI 配置 `kafka` - -配置样例如下所示: - -{{< copyable "shell-regular" >}} - -```shell ---sink-uri="kafka://127.0.0.1:9092/cdc-test?kafka-version=2.4.0&partition-num=6&max-message-bytes=67108864&replication-factor=1" -``` - -以上配置命令中的参数解析如下: - -| 参数 | 解析 | -| :------------------ | :------------------------------------------------------------ | -| `127.0.0.1` | 下游 Kafka 对外提供服务的 IP | -| `9092` | 下游 Kafka 的连接端口 | -| `cdc-test` | 使用的 Kafka topic 名字 | -| `kafka-version` | 下游 Kafka 版本号(可选,默认值 `2.4.0`) | -| `partition-num` | 下游 Kafka partition 数量(可选,不能大于实际 partition 数量。如果不填会自动获取 partition 数量。) | -| `max-message-bytes` | 每次向 Kafka broker 发送消息的最大数据量(可选,默认值 `64MB`) | -| `replication-factor` | kafka 消息保存副本数(可选,默认值 `1`) | diff --git a/ticdc/ticdc-open-protocol.md b/ticdc/ticdc-open-protocol.md index 7a6d29a0e191..038ed9f4baf6 100644 --- a/ticdc/ticdc-open-protocol.md +++ b/ticdc/ticdc-open-protocol.md @@ -90,7 +90,7 @@ Value: | :---------- | :----- | :--------------------- | | UpdateOrDelete | String | 标识该 Event 是增加 Row 还是删除 Row,取值只可能是 "u"/"d" | | Column Name | String | 列名 | - | Column Type | Number | 列类型,详见:[Column 和 DDL 的类型码](/ticdc/column-ddl-type-codes.md) | + | Column Type | Number | 列类型,详见:[Column 和 DDL 的类型码](#column-和-ddl-的类型码) | | Where Handle | Bool | 表示该列是否可以作为 Where 筛选条件,当该列在表内具有唯一性时,Where Handle 为 true | | Column Value | Any | 列值 | @@ -125,7 +125,7 @@ Value: | 参数 | 类型 | 说明 | | :-------- | :----- | :------------ | | DDL Query | String | DDL Query SQL | - | DDL Type | String | DDL 类型,详见:[Column 和 DDL 的类型码](/ticdc/column-ddl-type-codes.md) | + | DDL Type | String | DDL 类型,详见:[Column 和 DDL 的类型码](#column-和-ddl-的类型码) | ### Resolved Event @@ -212,3 +212,81 @@ COMMIT; 13. [partition=0] [key="{\"ts\":415508881038376963,\"t\":3}"] [value=] 14. [partition=1] [key="{\"ts\":415508881038376963,\"t\":3}"] [value=] ``` + +## Column 和 DDL 的类型码 + +Column 和 DDL 的类型码是由 TiCDC Open Protocol 定义的 Column 和 DDL 类型编码,Column Type Code 标识 Row Changed Event 中的列数据类型,DDL Type Code 标识 DDL Event 中的 DDL 语句类型。 + +### Column Type Code + +| 类型 | Code | 输出示例 | 说明 | +| :---------- | :--- | :------ | :-- | +| Decimal | 0 | {"t":0,"v":"129012.1230000"} | | +| Tiny/Bool | 1 | {"t":1,"v":1} | | +| Short | 2 | {"t":2,"v":1} | | +| Long | 3 | {"t":3,"v":123} | | +| Float | 4 | {"t":4,"v":153.123} | | +| Double | 5 | {"t":5,"v":153.123} | | +| Null | 6 | {"t":6,"v":null} | | +| Timestamp | 7 | {"t":7,"v":"1973-12-30 15:30:00"} | | +| Longlong | 8 | {"t":8,"v":123} | | +| Int24 | 9 | {"t":9,"v":123} | | +| Date | 10 | {"t":10,"v":"2000-01-01"} | | +| Duration | 11 | {"t":11,"v":"23:59:59"} | | +| Datetime | 12 | {"t":12,"v":"2015-12-20 23:58:58"} | | +| Year | 13 | {"t":13,"v":1970} | | +| New Date | 14 | {"t":14,"v":"2000-01-01"} | | +| Varchar | 15 | {"t":15,"v":"测试"} | value 编码为 UTF-8 | +| Bit | 16 | {"t":16,"v":81} | | +| JSON | 245 | {"t":245,"v":"{\\"key1\\": \\"value1\\"}"} | | +| New Decimal | 246 | {"t":246,"v":"129012.1230000"} | | +| Enum | 247 | {"t":247,"v":1} | | +| Set | 248 | {"t":248,"v":3} | | +| Tiny Blob | 249 | {"t":249,"v":"5rWL6K+VdGV4dA=="} | value 编码为 Base64 | +| Medium Blob | 250 | {"t":250,"v":"5rWL6K+VdGV4dA=="} | value 编码为 Base64 | +| Long Blob | 251 | {"t":251,"v":"5rWL6K+VdGV4dA=="} | value 编码为 Base64 | +| Blob | 252 | {"t":252,"v":"5rWL6K+VdGV4dA=="} | value 编码为 Base64 | +| Var String | 253 | {"t":253,"v":"测试"} | value 编码为 UTF-8 | +| String | 254 | {"t":254,"v":"测试"} | value 编码为 UTF-8 | +| Geometry | 255 | | 尚不支持 | + +### DDL Type Code + +| 类型 | Code | +| :-------------------------------- | :- | +| Create Schema | 1 | +| Drop Schema | 2 | +| Create Table | 3 | +| Drop Table | 4 | +| Add Column | 5 | +| Drop Column | 6 | +| Add Index | 7 | +| Drop Index | 8 | +| Add Foreign Key | 9 | +| Drop Foreign Key | 10 | +| Truncate Table | 11 | +| Modify Column | 12 | +| Rebase Auto ID | 13 | +| Rename Table | 14 | +| Set Default Value | 15 | +| Shard RowID | 16 | +| Modify Table Comment | 17 | +| Rename Index | 18 | +| Add Table Partition | 19 | +| Drop Table Partition | 20 | +| Create View | 21 | +| Modify Table Charset And Collate | 22 | +| Truncate Table Partition | 23 | +| Drop View | 24 | +| Recover Table | 25 | +| Modify Schema Charset And Collate | 26 | +| Lock Table | 27 | +| Unlock Table | 28 | +| Repair Table | 29 | +| Set TiFlash Replica | 30 | +| Update TiFlash Replica Status | 31 | +| Add Primary Key | 32 | +| Drop Primary Key | 33 | +| Create Sequence | 34 | +| Alter Sequence | 35 | +| Drop Sequence | 36 | diff --git a/ticdc/ticdc-overview.md b/ticdc/ticdc-overview.md index ed079651b2ab..a348cd3629d7 100644 --- a/ticdc/ticdc-overview.md +++ b/ticdc/ticdc-overview.md @@ -62,3 +62,15 @@ TiCDC 的系统架构如下图所示: - 暂不支持 TiDB 4.0 [新的 Collation 框架](/character-set-and-collation.md#新框架下的-collation-支持)。如果开启该功能,需保证下游集群为 TiDB 并使用与上游相同的 collation,否则会出现 collation 导致的无法定位数据的问题。 - 暂不支持 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 无法进入静默状态。 + +## TiCDC 部署和任务管理 + +TiCDC 的详细部署和任务管理说明请参考 [TiCDC 运维操作及任务管理](/ticdc/manage-ticdc.md)。 + +## TiCDC 常见问题 + +在使用 TiCDC 过程中经常遇到的问题以及相对应的解决方案请参考 [TiCDC 常见问题](/ticdc/troubleshoot-ticdc.md)。 + +## TiCDC 开放数据协议 + +TiCDC Open Protocol 是一种行级别的数据变更通知协议,为监控、缓存、全文索引、分析引擎、异构数据库的主从复制等提供数据源。TiCDC 遵循 TiCDC Open Protocol,向 MQ (Message Queue) 等第三方数据媒介复制 TiDB 的数据变更。详细信息参考 [TiCDC 开放数据协议](/ticdc/ticdc-open-protocol.md)。 diff --git a/ticdc/troubleshoot-ticdc.md b/ticdc/troubleshoot-ticdc.md index 0ea29d8ceed9..042bfb2a6ac4 100644 --- a/ticdc/troubleshoot-ticdc.md +++ b/ticdc/troubleshoot-ticdc.md @@ -1,10 +1,10 @@ --- -title: 常见问题和故障处理 +title: TiCDC 常见问题和故障处理 category: reference aliases: ['/docs-cn/dev/reference/tools/ticdc/troubleshoot/'] --- -# 常见问题和故障处理 +# TiCDC 常见问题和故障处理 本文档总结了在使用 TiCDC 过程中经常遇到的问题,给出合适的运维方法。本文档还总结了常见的运行故障,并给出相对应的解决方案。