要在 TiDB 中启用 CDC,需要按照以下步骤进行操作:

  1. 在 TiDB 集群中启用 CDC 功能

要启用 CDC 功能,需要在 TiDB 集群中的 TiKV 节点上添加以下配置:

[cdc]
enable = true

可以通过以下命令检查 TiKV 节点上是否已经添加了该配置:

$ pd-ctl config show | grep enable-cdc
enable-cdc: true
  1. 创建 CDC 集群表

CDC 需要订阅一个或多个表,因此需要在 TiDB 中创建 CDC 集群表。CDC 集群表是一个系统表,用于记录 CDC 订阅的表名、订阅的起始位置等信息。

可以通过以下命令创建 CDC 集群表:

CREATE TABLE `tidb_cdc`.`cdc_cluster`
(
    `capture_id`     int(11)     NOT NULL COMMENT 'capture id',
    `changefeed_id`  varchar(64) NOT NULL COMMENT 'changefeed id',
    `create_time`    bigint(20)  NOT NULL COMMENT 'create time',
    `start_ts`       bigint(20)  NOT NULL COMMENT 'start ts',
    `finish_ts`      bigint(20)  NOT NULL COMMENT 'finish ts',
    `checkpoint_ts`  bigint(20)  NOT NULL COMMENT 'checkpoint ts',
    `admin_job_type` tinyint(4)  NOT NULL COMMENT 'admin job type',
    `admin_job_id`   bigint(20)  NOT NULL COMMENT 'admin job id',
    PRIMARY KEY (`capture_id`, `changefeed_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;
  1. 创建 CDC 订阅表

在 TiDB 中创建一个或多个 CDC 订阅表,用于订阅需要进行 CDC 的表。可以通过以下命令创建 CDC 订阅表:

CREATE TABLE `test`.`test_cdc`
(
    `id`   bigint(20) NOT NULL,
    `name` varchar(50) DEFAULT NULL,
    PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;
  1. 创建 CDC 订阅任务

在 TiDB 中创建 CDC 订阅任务,用于订阅指定的表。可以通过以下命令创建 CDC 订阅任务:

CREATE CHANGEFEED `test_cdc_changefeed` 
    WITH 'sink-uri'='blackhole://',
    'cyclic-replication'='on',
    'config'='{"case-sensitive":true,"enable-old-value":true}' 
    FOR TABLE `test`.`test_cdc`;

在上述命令中,sink-uri 用于设置 CDC 订阅任务的数据输出位置,cyclic-replication 用于设置是否启用循环复制,config 用于设置 CDC 订阅任务的配置信息。

  1. 启动 CDC 订阅任务

要启动 CDC 订阅任务,需要在 TiDB 集群中的 TiCDC 节点上运行以下命令:

./ticdc --addr=":8300" --pd="http://pd_address:2379"

在上述命令中,--addr 用于设置 TiCDC 节点的监听地址,--pd 用于设置 TiCDC 节点连接的 PD 地址。

  1. 检查 CDC 订阅任务状态

要检查 CDC 订阅任务的状态,可以通过以下命令在 TiDB 集群中的 TiCDC 节点上查询:

./ticdc changefeed list --pd="http://pd_address:2379"

在上述命令中,--pd 用于设置 TiCDC 节点连接的 PD 地址。

以上就是在 TiDB 中设置 CDC 的步骤。

如何在TIDB中设置CDC

原文地址: https://www.cveoy.top/t/topic/rBU 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录