跳到主要内容

跨集群数据同步概述

CCR (Cross Cluster Replication) 是 Apache Doris 提供的跨集群数据同步机制,能够在库或表级别将源集群的数据变更自动同步到目标集群,适用于容灾备份、读写分离、数据集中、隔离升级和集群迁移等场景。本文介绍 CCR 的适用场景、任务类别、架构原理与同步方式,并提供各版本 Syncer 的下载地址。

适用场景

CCR 适用于以下几类典型业务场景:

场景价值典型问题
容灾备份将企业数据备份到另一集群或机房业务中断或数据丢失时,确保能快速恢复数据
读写分离将查询操作与写入操作分离,分散负载高并发或写入压力大的场景,减少读写相互影响,提升数据库性能和稳定性
数据集中将分布在不同地域的分公司数据集中到总部集团总部需统一管理和分析多地数据,避免数据不一致导致的管理混乱
隔离升级在新集群中进行版本验证和测试系统集群升级时避免版本兼容问题导致的回滚困难,可逐步升级各集群并保证数据一致性
集群迁移将老集群的数据同步到新集群Doris 集群的机房搬迁或设备更换时,确保迁移过程中的数据一致性

任务类别

CCR 支持以下两种任务类型,可按业务粒度选择:

任务类型同步粒度适用场景限制
库级任务同步整个数据库的数据整库容灾、整库迁移
表级任务仅同步指定表的数据部分表的同步与共享不支持重命名表或替换表操作;Doris 每个数据库只能同时运行一个快照任务,因此表级同步的全量同步任务需要排队执行

原理与架构

名词解释

在阅读后续内容前,先明确以下术语:

  • 源集群:数据源所在的集群,通常为业务数据写入的集群。
  • 目标集群:跨集群同步的目标集群。
  • binlog:源集群的变更日志,包含 schema 和数据变更。
  • Syncer:一个轻量级的进程,负责同步数据。
  • 上游:在库级任务中指上游库,在表级任务中指上游表。
  • 下游:在库级任务中指下游库,在表级任务中指下游表。

架构说明

CCR 架构说明

CCR 主要依赖一个轻量级进程:SyncerSyncer 负责从源集群获取 binlog,并将元数据应用到目标集群,通知目标集群从源集群拉取数据,从而实现全量同步和增量同步。

同步原理

CCR 的同步过程遵循「全量同步 + 增量同步」模型,特定情况下会重启全量同步:

  1. 全量同步

    CCR 任务会首先进行全量同步,将上游数据一次性完整地复制到下游。

  2. 增量同步

    在全量同步完成后,CCR 任务会继续进行增量同步,保持上游和下游数据的一致性。

  3. 重新开始全量同步的情况

    • 遇到当前不支持增量同步的 DDL 操作时,CCR 任务会重新启动全量同步。具体哪些 DDL 操作不支持增量同步,请参见功能详情
    • 如果上游的 binlog 因为过期或其他原因中断,增量同步会停止,并重新开始全量同步。
  4. 重新全量同步期间的行为

    • 在全量同步进行期间,增量同步会暂停。
    • 全量同步完成后,下游的数据表会进行原子替换,以确保数据一致性。
    • 全量同步完成后,会恢复增量同步。

同步方式

CCR 支持四种同步方式,触发条件请参见功能详情

同步方式原理触发时机
Full Sync上游进行全量备份,下游进行恢复。DB 级任务触发 DB 备份,表级任务触发表备份。首次同步或特定操作触发。触发条件请参见功能详情
Partial Sync上游表或分区级别备份,下游表或分区级别恢复。特定操作触发,触发条件请参见功能详情
TXN增量数据同步,上游提交后,下游开始同步。特定操作触发,触发条件请参见功能详情
SQL在下游回放上游操作的 SQL。特定操作触发,触发条件请参见功能详情

下载

请根据 Doris 集群版本与服务器架构选择对应的 Syncer 安装包。

系统要求:glibc >= 2.28

版本架构包地址SHA256
2.1ARM64ccr-syncer-2.1.10-rc08-arm64.tar.xz060093e90150ee24f8a784066436a0a4a1116876ebd6f33d5a844e2dc67f10b0
2.1X64ccr-syncer-2.1.10-rc08-x64.tar.xz656c0a46e3f0e12b9ff2fb76116ad8362e344a8d1ac31f1b26834aaaa1987a7b
3.0ARM64ccr-syncer-3.0.6-rc07-arm64.tar.xzbb136f5c9db60f18c174d32304557065e1581e96ce14009f8e8f9aa4d58628f1
3.0X64ccr-syncer-3.0.6-rc07-x64.tar.xz31e514b4d55fb4f11204cd023369ef5988ffda3cb3728e974899623ea81dc1ad
4.0ARM64ccr-syncer-4.0.1-rc03-arm64.tar.xz5ea016773c0589b437311a40fe5c2397e01ab4dd5d04a62ba9d6c1d4975522ac
4.0X64ccr-syncer-4.0.1-rc03-x64.tar.xzbb26d5cc31403e6d6c9d2feccf82347ff7fde81f174b53907ffec067c5a87b54