更新时间:2024-09-26 GMT+08:00

实时同步

实时同步是指在不同的系统之间,将数据通过同步技术从一个数据源拷贝到其他数据库,并保持一致,实现关键业务的数据实时流动。实时同步不同于迁移,迁移是以整体数据库搬迁为目的,而实时同步是维持不同业务之间的数据持续性流动。

目前部分功能仅支持白名单用户使用,需要提交工单申请才能使用。您可以在管理控制台右上角,选择“工单 > 新建工单”,完成工单提交。

支持的数据库类型

实时同步支持的数据库、版本和同步模式可参考支持的数据库

支持的网络方式

数据复制服务提供的实时同步功能支持通过多种网络方式进行实时同步,包括:VPC网络、VPN网络、专线网络和公网网络,在正式进行实时同步之前请参考表1了解网络类型的使用场景及准备工作,并参考表2了解具体的网络类型支持情况完成网络设置。

表1 网络类型

网络类型

使用场景

准备工作

VPC网络

适合云上同区域数据库之间的同步。

  • 源数据库所在的区域要和目标数据库实例所在的区域保持一致。
  • 源数据库可以和目标数据库在同一VPC内,也可以在不同VPC内。
  • 当源数据库和目标数据库处于同一个VPC内的时候,默认网络是连通的,不需要单独设置安全组。
  • 当源数据库和目标数据库不在同一个VPC内的时候,要求源数据库和目标数据库所处的子网处于不同网段,不能重复或交叉,此时需要通过对等连接实现网络互通。
  • 目前DRS暂不支持跨租户通过VPC网络实现源库、目标库的网络互通。如果有需要,用户可通过手动创建对等连接后,选择“VPN网络”实现网络互通。

    具体建立VPC对等连接的方法,可参考《虚拟私有云用户指南》中“对等连接”章节内容。

VPN网络

适合通过VPN网络,实现其他云下自建数据库与云上数据库之间的实时同步、或云上跨Region的数据库之间的实时同步

用户需要确保本地数据中心和目标数据库所在VPC的VPN网络建立连接,确保VPN网络可正常访问的前提下,再进行数据同步。

VPN相关操作,请参见《虚拟专用网络快速入门》。

专线网络

适合通过专线网络,实现其他云下自建数据库与云上数据库之间的实时同步、或云上跨Region的数据库之间的实时同步

用户需要通过专线网络建立云与数据中心的专线连接。

云专线相关操作,请参见《云专线快速入门》。

公网网络

适合通过公网网络把其他云下或其他平台的数据库同步到目标数据库。

为了确保源数据库和目标数据库之间的网络互通,源数据库端和目标数据库端分别需要进行如下设置:

  1. 开启公网访问

    源数据库端实例需要根据具体的场景,由用户端开启公网访问。

  2. 设置安全组规则
    • 源数据库需要将DRS同步实例的弹性公网IP添加到其网络入口白名单内,使源数据库与DRS同步实例可以连通。
    • 由于目标数据库和DRS同步实例处于同一个VPC内,默认网络是连通的,不需要单独设置安全组。
    说明:
    • DRS同步实例创建成功后,可在“源库及目标库”页面获取DRS同步实例的弹性公网IP。
    • 在选择公网网络进行同步时,如果没有开启SSL安全连接加密同步链路的功能,请确保待同步的数据为非机密数据,再进行数据同步。
表2 支持的网络类型

同步方向

源数据库

目标数据库

VPC网络

公网网络

VPN、专线网络

入云

MySQL

MySQL

支持

支持

支持

PostgreSQL

支持

支持

支持

GaussDB分布式版

支持

支持

支持

GaussDB主备版

支持

支持

支持

GaussDB(for MySQL)

支持

支持

支持

GaussDB(DWS)

支持

支持

支持

MariaDB

支持

支持

支持

PostgreSQL

PostgreSQL

支持

支持

支持

GaussDB(DWS)

支持

支持

支持

GaussDB主备版

支持

支持

支持

GaussDB分布式版

支持

支持

支持

DDM

MySQL

支持

支持

支持

GaussDB(DWS)

支持

支持

支持

DDM

支持

支持

支持

Oracle

MySQL

支持

支持

支持

DDM

支持

支持

支持

GaussDB(DWS)

支持

支持

支持

PostgreSQL

支持

支持

支持

GaussDB(for MySQL)

支持

支持

支持

GaussDB主备版

支持

支持

支持

GaussDB分布式版

支持

支持

支持

DB2 for LUW

GaussDB主备版

支持

支持

支持

GaussDB分布式版

支持

支持

支持

GaussDB(DWS)

支持

支持

支持

TiDB

GaussDB(for MySQL)

不支持

支持

支持

Microsoft SQL Server

GaussDB(DWS)

支持

支持

支持

GaussDB主备版

支持

支持

支持

GaussDB分布式版

支持

支持

支持

Microsoft SQL Server

支持

支持

支持

MySQL

说明:

目前仅支持白名单用户使用。

支持

支持

支持

GaussDB(for MySQL)

说明:

目前仅支持白名单用户使用。

支持

支持

支持

PostgreSQL

说明:

目前仅支持白名单用户使用。

支持

支持

支持

MongoDB

DDS

支持

支持

支持

GaussDB(for MySQL)

GaussDB(for MySQL)

支持

支持

支持

MariaDB

MariaDB

支持

支持

支持

MySQL

支持

支持

支持

GaussDB(for MySQL)

支持

支持

支持

Dynamo

GeminiDB Dynamo

说明:

目前仅支持白名单用户使用。

暂不支持

支持

支持

Cassandra

GeminiDB Cassandra

支持

支持

支持

出云

MySQL

MySQL

支持

支持

支持

Kafka

支持

支持

支持

CSS/ES

支持

支持

支持

Oracle

支持

支持

支持

MariaDB

支持

支持

支持

DDM

MySQL

支持

支持

支持

Oracle

支持

支持

支持

Kafka

支持

支持

支持

DDS

MongoDB

支持

支持

支持

Kafka

支持

支持

支持

PostgreSQL

PostgreSQL

支持

支持

支持

Kafka

暂不支持

支持

支持

GaussDB主备

MySQL

暂不支持

支持

支持

Oracle

暂不支持

支持

支持

Kafka

支持

支持

支持

GaussDB(DWS)

暂不支持

支持

支持

GaussDB分布式版

支持

支持

支持

GaussDB主备版

支持

支持

支持

GaussDB分布式版

MySQL

暂不支持

支持

支持

Oracle

暂不支持

支持

支持

GaussDB(DWS)

暂不支持

支持

支持

Kafka

支持

支持

支持

GaussDB分布式版

支持

支持

支持

GaussDB主备版

支持

支持

支持

GaussDB(for MySQL)

MySQL

支持

支持

支持

GaussDB(DWS)

支持

支持

支持

Kafka

支持

支持

支持

CSS/ES

支持

支持

支持

Oracle

支持

支持

支持

MariaDB

MariaDB

支持

支持

支持

Microsoft SQL Server

Kafka

说明:

目前仅支持白名单用户使用。

支持

支持

支持

自建-自建

MySQL

Kafka

支持

支持

支持

CSS/ES

支持

支持

支持

GaussDB主备版

暂不支持

支持

支持

GaussDB分布式版

暂不支持

支持

支持

Oracle

Kafka

支持

支持

支持

GaussDB主备版

暂不支持

支持

支持

GaussDB分布式版

暂不支持

支持

支持

PostgreSQL

Kafka

暂不支持

支持

支持

GaussDB主备版

MySQL

暂不支持

支持

支持

Oracle

暂不支持

支持

支持

Kafka

支持

支持

支持

GaussDB主备版

支持

支持

支持

GaussDB分布式版

支持

支持

支持

GaussDB分布式版

MySQL

暂不支持

支持

支持

Oracle

暂不支持

支持

支持

Kafka

支持

支持

支持

GaussDB分布式版

支持

支持

支持

GaussDB主备版

支持

支持

支持

DB2 for LUW

GaussDB主备版

暂不支持

支持

支持

GaussDB分布式版

暂不支持

支持

支持

Microsoft SQL Server

Kafka

说明:

目前仅支持白名单用户使用。

支持

支持

支持

支持的同步对象

数据复制服务提供的实时同步任务支持不同对象的选择,支持情况如下表。

表3 支持的同步对象

同步方向

源数据库

目标数据库

表级同步

库级同步

导入对象文件

入云

MySQL

MySQL

支持

支持

支持

PostgreSQL

支持

支持

支持

GaussDB分布式版

支持

暂不支持

支持

GaussDB主备版

支持

暂不支持

支持

GaussDB(for MySQL)

支持

支持

支持

GaussDB(DWS)

支持

支持

支持

MariaDB

支持

支持

支持

PostgreSQL

PostgreSQL

支持

支持

支持

GaussDB(DWS)

支持

支持

暂不支持

GaussDB主备版

支持

暂不支持

支持

GaussDB分布式版

支持

暂不支持

支持

DDM

MySQL

支持

暂不支持

暂不支持

GaussDB(DWS)

支持

支持

暂不支持

DDM

支持

支持

暂不支持

Oracle

MySQL

支持

暂不支持

支持

DDM

支持

暂不支持

暂不支持

GaussDB(DWS)

支持

暂不支持

支持

PostgreSQL

支持

暂不支持

支持

GaussDB(for MySQL)

支持

暂不支持

支持

GaussDB主备版

支持

暂不支持

支持

GaussDB分布式版

支持

暂不支持

支持

DB2 for LUW

GaussDB主备版

支持

暂不支持

支持

GaussDB分布式版

支持

暂不支持

支持

GaussDB(DWS)

支持

暂不支持

支持

TiDB

GaussDB(for MySQL)

支持

支持

暂不支持

Microsoft SQL Server

GaussDB(DWS)

支持

暂不支持

暂不支持

GaussDB主备版

支持

暂不支持

暂不支持

GaussDB分布式版

支持

暂不支持

暂不支持

Microsoft SQL Server

支持

暂不支持

暂不支持

MySQL

说明:

目前仅支持白名单用户使用。

支持

暂不支持

支持

GaussDB(for MySQL)

说明:

目前仅支持白名单用户使用。

支持

暂不支持

支持

PostgreSQL

说明:

目前仅支持白名单用户使用。

支持

暂不支持

支持

MongoDB

DDS

支持

支持

暂不支持

GaussDB(for MySQL)

GaussDB(for MySQL)

支持

支持

支持

MariaDB

MariaDB

支持

支持

支持

MySQL

支持

支持

支持

GaussDB(for MySQL)

支持

支持

支持

Dynamo

GeminiDB Dynamo

说明:

目前仅支持白名单用户使用。

支持

暂不支持

暂不支持

Cassandra

GeminiDB Cassandra

支持

暂不支持

支持

出云

MySQL

MySQL

支持

支持

暂不支持

Kafka

支持

支持

支持

CSS/ES

支持

暂不支持

支持

Oracle

支持

暂不支持

支持

MariaDB

支持

支持

支持

DDM

MySQL

支持

暂不支持

暂不支持

Oracle

支持

支持

暂不支持

Kafka

支持

支持

暂不支持

DDS

MongoDB

支持

支持

暂不支持

Kafka

支持

支持

暂不支持

PostgreSQL

PostgreSQL

支持

支持

支持

Kafka

支持

支持

暂不支持

GaussDB主备版

MySQL

支持

暂不支持

暂不支持

Oracle

支持

暂不支持

支持

Kafka

支持

支持

暂不支持

GaussDB(DWS)

支持

暂不支持

暂不支持

GaussDB分布式版

支持

暂不支持

支持

GaussDB主备版

支持

暂不支持

支持

GaussDB分布式版

MySQL

支持

暂不支持

暂不支持

Oracle

支持

暂不支持

支持

GaussDB(DWS)

支持

暂不支持

暂不支持

Kafka

支持

支持

暂不支持

GaussDB分布式版

支持

暂不支持

支持

GaussDB主备版

支持

暂不支持

支持

GaussDB(for MySQL)

MySQL

支持

支持

支持

GaussDB(DWS)

支持

支持

支持

Kafka

支持

支持

支持

CSS/ES

支持

支持

暂不支持

Oracle

支持

暂不支持

支持

MariaDB

MariaDB

支持

支持

支持

Microsoft SQL Server

Kafka

说明:

目前仅支持白名单用户使用。

支持

暂不支持

支持

自建-自建

MySQL

Kafka

支持

支持

支持

CSS/ES

支持

暂不支持

支持

GaussDB主备版

支持

暂不支持

支持

GaussDB分布式版

支持

暂不支持

支持

Oracle

Kafka

支持

暂不支持

支持

GaussDB主备版

支持

暂不支持

支持

GaussDB分布式版

支持

暂不支持

支持

GaussDB主备版

MySQL

支持

暂不支持

暂不支持

Oracle

支持

暂不支持

支持

Kafka

支持

支持

暂不支持

GaussDB主备版

支持

暂不支持

支持

GaussDB分布式版

支持

暂不支持

支持

GaussDB分布式版

MySQL

支持

暂不支持

暂不支持

Oracle

支持

暂不支持

支持

Kafka

支持

支持

暂不支持

GaussDB分布式版

支持

暂不支持

支持

GaussDB主备版

支持

暂不支持

支持

PostgreSQL

Kafka

支持

支持

暂不支持

DB2 for LUW

GaussDB主备版

支持

暂不支持

支持

GaussDB分布式版

支持

暂不支持

支持

Microsoft SQL Server

Kafka

说明:

目前仅支持白名单用户使用。

支持

暂不支持

支持

支持的高级特性

数据复制服务提供的实时同步任务支持多种特性,有效的帮助您提高实时同步的成功率。

表4 高级特性列表

特性

说明

同步级别

数据复制服务提供的实时同步功能支持库级同步和表级同步。

  • 库级同步是以库为单位的同步,不可单独选择表,且库中新增表会自动加入同步关系之中。
  • 表级同步是以表为单位的同步,不可以单独选择库,新增表需要再次编辑同步任务,将新的表追加到同步关系中。

对象名映射

实时同步功能可以支持源数据库和目标数据库中的同步对象(包括数据库、schema、表或列)的名称不同。如果同步的数据库对象在源数据库和目标数据库中的命名不同,那么可以使用数据复制服务提供的对象名映射功能进行映射。

目前数据复制服务提供的映射功能支持库映射、schema映射和表映射。

动态增减同步对象

实时同步过程中,您可以通过编辑同步对象随时增加或减少需要同步的对象。

冲突处理

数据复制服务提供的实时同步功能使用了主键或唯一键冲突策略,这些策略可以由您自主选择,尽可能保证源数据库中有主键约束或唯一键约束的表同步到目标数据库是符合预期的。

目前支持的冲突策略有:

  • 忽略

    当同步数据与目标数据库已有数据冲突时(主键/唯一键存在重复等),以目标数据为准,DRS将跳过冲突数据,继续进行后续同步。

  • 覆盖

    当同步数据与目标数据库已有数据冲突时(主键/唯一键存在重复等),以源数据为准,DRS将覆盖原来的冲突数据。

  • 报错

    当同步数据与目标数据库已有数据冲突时(主键/唯一键存在重复等),同步任务将失败并立即中止。

忽略和覆盖,都是以同步稳定性优先(不会因为数据冲突而中断任务),如果用户以同步稳定性为关键,则在这里二选一。

报错则是以数据质量为优先,即用户环境不应该出现任何数据冲突,无论是忽略还是覆盖都可能产生严重业务问题,所以DRS同步任务立即失败,并人为排查原因。但需注意,如果任务长期处于失败状态,可能会导致存储占满而无法修复任务。

数据结构同步能力

数据复制服务提供的实时同步功能不支持单独的数据结构同步,而是提供特殊的数据结构同步机制,在同步任务启动后,将数据和结构一并同步到目标数据库。