【TiDB 4.0 PCTA 学习笔记】-3.5 How to use TiCDC (增量同步工具 TiCDC)@1班+李墨白

课程名称:课程版本(101/201/301)+ 3.5 How to use TiCDC (增量同步工具 TiCDC)

学习时长:

20min

课程收获:

了解 TiCDC 数据迁移工具

课程内容:

一、TiCDC

  • CDC是Change Data Capture的缩写,TiCDC是TiDB的变更数据捕获。
  • 架构

  • 特性
    • 高可用
      • 数据高可用
      • 故障转移
    • 高性能
    • 丰富的生态对接
      • Support MySQL compatible database
      • Support Kafka with Avro format/Canal format/Maxwell format
      • Support Pulsar
    • 环形同步

二、部署TiCDC

  • 软硬件需求
    image
  • TIUP 部署
    在已有的集群上通过scale-out 部署,新的直接写配置文件
    配置
    image
  • 创建同步任务
  • sink-uri
    • mysql
      mysql://root:123456@127.0.0.1:3306
    • kafka
      • kafka
        kafka: / /127.0.0.1: 9092/cdc-test
      • canal
        kafka://127.0.0.1:9092/ cdc-test?protocol=canal
  • 注意事项
    数据表需要有主键 或者是唯一索引 (需要有一个唯一索引为not null)

三、环形同步

  • 创建 mark table 用于 追踪来源
    cdc cli changefeed cyclic create-marktables .cyclic-upstream-dsn=“root@tcp(${(TIDB_A_HOST}:${(TIDB_A_PORT})/”- -pd=“http://S[PD_A_HOST] : ${PD_A_PORT]”
    需要在集群上都执行
  • 创建任务
    cdc cli changefeed create .-sink-uri="rnysql://rootS(Ti08_B_HoST)/”–pd=“http://$(PD_A_HOST):$(PD_A_ POR7)” --cyclic-replica-id 1 --cyelic-filter-replica-ids 2 --cyclic-sync-ddl true
    • –cyclic-replica-id : 集群id (类似与mysql 的server id)
    • –cyelic-filter-replica-ids : 同步到的下个集群id
    • 需要注意最后一个集群 同步回 第一个集群时 需要设置 --cyclic-sync-ddl false

四、 TiCDC Management

  • 查看 整体 task 任务 来获取 获取 cdc task id
    cdc cli capture list --pd=http://10.0.10.25:2379
    image
  • Pause/Resume/Remove task
  • 查看 指定 任务
    cdc cli capture query --pd=http://10.0.10.25:2379 --changefeed-id 28c43ffc-2316-4f4f-a70b-d1a7c59ba79f

学习过程中遇到的问题或延伸思考:

  • 问题 1:
  • 问题 2:
  • 延伸思考 1:
  • 延伸思考 2:

学习过程中参考的其他资料