TiCDC 安装部署
本文档介绍 TiCDC 集群的软硬件环境要求,以及如何安装部署 TiCDC 集群。你可以选择随新集群一起部署 TiCDC,也可以对原有 TiDB 集群新增 TiCDC 组件。通常推荐使用 TiUP 完成部署,如有特殊情况也可以用 binary 部署。
软件和硬件环境推荐配置
在生产环境中,TiCDC 的软件和硬件配置推荐如下:
Linux 操作系统 | 版本 |
---|---|
Red Hat Enterprise Linux | 7.3 及以上 |
CentOS | 7.3 及以上 |
CPU | 内存 | 硬盘类型 | 网络 | TiCDC 集群实例数量(生产环境最低要求) |
---|---|---|---|---|
16 核+ | 64 GB+ | SSD | 万兆网卡(2 块最佳) | 2 |
更多信息参见 TiDB 软件和硬件环境建议配置。
使用 TiUP 部署包含 TiCDC 组件的全新 TiDB 集群
在使用 TiUP 部署全新 TiDB 集群时,支持同时部署 TiCDC 组件。只需在 TiUP 启动 TiDB 集群时的配置文件中加入 TiCDC
部分即可,详细操作参考编辑初始化配置文件,具体可配置字段参考通过 TiUP 配置 cdc_servers
。
使用 TiUP 在原有 TiDB 集群上新增 TiCDC 组件
目前也支持在原有 TiDB 集群上使用 TiUP 新增 TiCDC 组件,操作步骤如下:
首先确认当前 TiDB 的版本支持 TiCDC,否则需要先升级 TiDB 集群至 4.0.0 rc.1 或更新版本。TiCDC 在 4.0.6 版本已经 GA,建议使用 4.0.6 及以后的版本。
参考扩容 TiDB/TiKV/PD/TiCDC 节点章节对 TiCDC 进行部署。
使用 binary 在原有 TiDB 集群上新增 TiCDC 组件(不推荐)
假设 PD 集群有一个可以提供服务的 PD 节点(client URL 为 10.0.10.25:2379
)。若要部署三个 TiCDC 节点,可以按照以下命令启动集群。只需要指定相同的 PD 地址,新启动的节点就可以自动加入 TiCDC 集群。
cdc server --cluster-id=default --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 --cluster-id=default --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 --cluster-id=default --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
TiCDC cdc server
命令行参数说明
对于 cdc server
命令中可用选项解释如下:
addr
:TiCDC 的监听地址,提供服务的 HTTP API 查询地址和 Prometheus 查询地址,默认为127.0.0.1:8300
。advertise-addr
:TiCDC 对外开放地址,供客户端访问。如果未设置该参数值,地址默认与addr
相同。pd
:TiCDC 监听的 PD 节点地址,用,
来分隔多个 PD 节点地址。config
:可选项,表示 TiCDC 使用的配置文件地址。TiCDC 从 v5.0.0 开始支持该选项,TiUP 从 v1.4.0 开始支持在部署 TiCDC 时使用该配置。data-dir
:指定 TiCDC 使用磁盘储存文件时的目录。目前 Unified Sorter 会使用该目录储存临时文件,建议确保该目录所在设备的可用空间大于等于 500 GiB。更详细的说明参见 Unified Sorter。对于使用 TiUP 的用户,本选项可以通过配置cdc_servers
中的data_dir
来指定或默认使用global
中data_dir
路径。gc-ttl
:TiCDC 在 PD 设置的服务级别 GC safepoint 的 TTL (Time To Live) 时长,和 TiCDC 同步任务所能够停滞的时长。单位为秒,默认值为86400
,即 24 小时。注意:TiCDC 同步任务的停滞会影响 TiCDC GC safepoint 的推进,即会影响上游 TiDB GC 的推进,详情可以参考 TiCDC GC safepoint 的完整行为。log-file
:TiCDC 进程运行时日志的输出地址,未设置时默认为标准输出 (stdout)。log-level
:TiCDC 进程运行时的日志级别,默认为"info"
。ca
:TiCDC 创建 TLS 连接时使用的 CA 证书文件路径,PEM 格式,可选。cert
:TiCDC 创建 TLS 连接时使用的证书文件路径,PEM 格式,可选。cert-allowed-cn
:TiCDC 创建 TLS 连接时使用的通用名称文件路径,可选。key
:TiCDC 创建 TLS 连接时使用的证书密钥文件路径,PEM 格式,可选。tz
:TiCDC 服务使用的时区。TiCDC 在内部转换TIMESTAMP
等时间数据类型和向下游同步数据时使用该时区,默认为进程运行本地时区。(注意如果同时指定tz
参数和sink-uri
中的time-zone
参数,TiCDC 进程内部使用tz
指定的时区,sink 向下游执行时使用time-zone
指定的时区)cluster-id
:TiCDC 集群的 ID。可选,默认值为default
。cluster-id
是 TiCDC 集群的唯一标识,拥有相同cluster-id
的 TiCDC 节点同属一个集群。长度最大为 128,需要符合正则表达式^[a-zA-Z0-9]+(-[a-zA-Z0-9]+)*$
,且不能是以下值:owner
,capture
,task
,changefeed
,job
,meta
。
使用 TiUP 滚动升级 TiCDC 集群
TiCDC 从 v6.3.0 版本开始支持滚动升级,使用 TiUP 对 TiCDC 集群进行滚动升级,能够保证同步延迟稳定,不发生剧烈波动。该功能要求如下:
- 集群中至少有两个正在运行的 TiCDC 实例。
- TiUP 版本至少为 v1.11.0。
满足上述条件后,即可执行 tiup cluster upgrade
命令对集群进行滚动升级:
tiup cluster upgrade test-cluster ${target-version} --transfer-timeout 600