【TiDB 4.0 PCTA 学习笔记】- 3.5 增量同步工具 TiCDC@2班+欧阳

课程名称:3.5 增量同步工具 TiCDC

学习时长:36min

课程收获:使用TiCDC 数据迁移工具,将 TiDB 数据同步到其他数据系统

课程内容:

  • TiCDC简介

    • TiCDC是什么

      • CDC = Change Data Capture
      • 一个将TiDB中的增量数据实时同步到其他系统的工具
    • 架构

    • 特性

      • 高可用

        • TiKV是数据源
        • 自动failover
      • 高性能

        • 同步时延大约3秒
      • 丰富的生态系统

        • 支持MySQL兼容的数据库
        • 支持Kafka(Avrogeshi/Canal格式/Maxwell格式)
        • 支持Pulsar
      • 环形同步

  • 部署TiCDC

    • 软硬件要求

    • 两种部署方式

      • 部署到已有的TiDB集群

        • 通过tiup扩容操作来完成
        • tiup cluster scale-out scale-out.yaml
        • 可部署任意数量的TiCDCjpg
    • 全新部署

      • tiup cluster deploy v4.0.7 topology.yaml

      • 最小部署

        • 1 * TiDB
        • 3 * PD
        • 3 * TiKV
        • 2 * TiCDC
      • jpg

  • 创建同步任务

    • 同步任务在TiCDC中成为changefeed

    • cdc cli

      • 管理TiCDC集群和changefeed

      • 通过cdc cli changefeed命令创建同步任务

      • Kafka Sink

        • –sink-uri=“kafka://127.0.0.1:9092/cdc-test”

        • Canal格式

          • –sink-uri=“kafka://127.0.0.1:9092/cdc-test?protocol=canal”
    • 同步的表的限制

      • 必须有主键或唯一索引
      • 至少又一个唯一索引声明为NOT NULL
  • 环形同步

    • 什么是环形同步

    • 使用

      • 创建环形同步使用的mark tables

        • cdc cli changefeed cyclic create-marktables --cyclic-upstrea-dsn=“root@tcp(${TIDB_A_HOST}:${TIDB_A_PORT})/” --pd=“http://${PD_A_HOST}:${PD_A_PORT}”
        • cdc cli changefeed cyclic create-marktables --cyclic-upstrea-dsn=“root@tcp(${TIDB_B_HOST}:${TIDB_B_PORT})/” --pd=“http://${PD_B_HOST}:${PD_B_PORT}”
        • cdc cli changefeed cyclic create-marktables --cyclic-upstrea-dsn=“root@tcp(${TIDB_C_HOST}:${TIDB_C_PORT})/” --pd=“http://${PD_C_HOST}:${PD_C_PORT}”
      • 创建环形同步任务

        • 在TiDB集群A上创建环形同步任务

          • cdc cli changefeed create --sink-uri=“mysql://root@${TiDB_B_HOST}/” --pd=“http://${PD_A_HOST}:${PD_A_PORT}” --cyclic-replica-id 1 --cyclic-filter-replica-ids 2 --cyclic-sync-ddl true
        • 在TiDB集群B上创建环形同步任务

          • –cyclic-replica-id 2 --cyclic-filter-replica-ids 3 --cyclic-sync-ddl true
        • 在TiDB集群C上创建环形同步任务

          • -cyclic-replica-id 3 --cyclic-filter-replica-ids 1 --cyclic-sync-ddl false
        • –cyclic-replica-id 为上游集群指定replica id

        • –cyclic-filter-replica-ids 指定需要过滤的写入来源id,通常为下游集群id

        • –cyclic-sync-ddl 指定是否同步ddl到下游

          • 上图中

            • 所有集群都接受DML
            • 只有A接受DDL
            • 为了避免DDL环形同步,禁止了集群C向A同步DDL
  • TiCDC运维

    • 暂停任务

      • cli cdc changefeed pause --pd=… --changefeed-id xxx
    • 恢复任务

      • cli cdc changefeed resume --pd=… --changefeed-id xxx
    • 删除任务

      • cli cdc changefeed remove --pd=… --changefeed-id xxx
    • 查询任务列表

      • cli cdc changefeed list
    • 查询某个任务

      • cli cdc changefeed query --pd=xxx --changefeed-id=xxx

同学你好,感谢参与 TiDB 4.0 课程的学习!

本篇笔记逻辑清晰、内容丰富,被评选为优质笔记,将额外获得 20 积分,并在 「TiDB 培训」分类下获得“置顶”权益,积分兑换规则将于近期开放,敬请关注!

期待您继续产出优质内容!

此话题已在最后回复的 1 分钟后被自动关闭。不再允许新回复。