tencent cloud

数据传输服务

动态与公告
产品动态
公告
产品简介
产品概述
数据迁移功能描述
数据同步功能描述
数据订阅(Kafka 版)功能描述
产品优势
支持的地域
规格说明
购买指南
计费概述
变更配置说明
欠费说明
退费说明
快速入门
数据迁移操作指导
数据同步操作指导
数据订阅操作指导(Kafka 版)
准备工作
业务评估
网络准备
添加 DTS IP 地址至对接数据库白名单
DTS 服务权限准备
数据库及权限准备
配置自建 MySQL 系的 Binlog
数据迁移
数据迁移支持的数据库
云数据库跨账号实例间迁移
迁移至 MySQL 系列
迁移至 PostgreSQL
迁移至 MongoDB
迁移至 SQL Server
迁移至腾讯云分布式缓存数据库
任务管理
数据同步
数据同步支持的数据库
云数据库跨账号实例间同步
同步至 MySQL 系列
同步至 PostgreSQL
同步至 MongoDB
同步至 Kafka
任务管理
数据订阅(Kafka 版)
数据订阅支持的数据库
MySQL 系列数据订阅
TDSQL PostgreSQL 数据订阅
MongoDB 数据订阅
任务管理
消费管理
前置校验不通过处理方法
检查项汇总
割接说明
监控与告警
支持的监控指标
告警通知功能
通过控制台配置指标告警和事件告警
通过 API 配置指标告警和事件告警
运维管理
配置系统维护时间
任务状态扭转说明
实践教程
本地数据库同步上云
构建双向同步数据结构
构建多对一同步数据结构
构建多活数据中心
数据同步冲突策略如何选择
使用 CLB 代理将其他账号下的数据库迁移至本账号下
通过云联网方式迁移自建数据库至腾讯云数据库
DTS 性能调优最佳实践
常见问题
数据迁移
数据同步
数据订阅 Kafka 版常见问题
数据订阅正则表达式
错误处理
常见错误处理
连通性测试不通过
校验项结果不通过或者出现警告
云联网接入配置源数据时无法选择子网
迁移慢或者进度卡住
数据同步有延时
数据订阅延迟过高
数据消费异常
API 文档
History
Introduction
API Category
Making API Requests
(NewDTS) Data Migration APIs
Data Sync APIs
Data Consistency Check APIs
(NewDTS) Data Subscription APIs
Data Types
Error Codes
DTS API 2018-03-30
相关协议
服务等级协议
文档数据传输服务实践教程构建多对一同步数据结构

构建多对一同步数据结构

PDF
聚焦模式
字号
最后更新时间: 2024-07-08 15:51:28

操作场景

多对一同步即将多个源端数据库的内容同步到一个目标数据库。用户使用单个数据库由于负载压力大或者受限于地域原因,经常会做数据拆分,使用多个数据库实例来存储同种类型的库表,但是这样给数据查询带来了不便。使用多对一同步功能,可以解决用户的这类问题。
因为多对一同步是通过创建多个单向同步任务来构建多对一拓扑,所以单向同步的约束、操作限制等要求都需要满足,请参考 数据同步 中的对应同步场景。

注意事项

DTS 在执行全量数据同步时,会占用一定源端实例资源,可能会导致源实例负载上升,增加数据库自身压力。如果您数据库配置过低,建议您在业务低峰期进行。
为了避免数据重复,请确保需要同步的表具有主键或者非空唯一键,对于没有主键或者非空唯一键的表,有数据重复的风险。
用户应提前规划好数据,各个源端负责更新(增、删、改)不同主键的数据,避免主键冲突或者相同主键数据互相覆盖等情况。如果因为业务原因,各源端负责的主键存在交叉,需要参考 推荐配置,选择合理的冲突策略,使同步行为和数据符合预期。

应用限制

多个同步任务配置中 DDL 不能形成环形链路。

DDL 配置原则

多个同步任务配置中 DDL 不能形成环形链路,否则可能造成 DDL 语句在系统中循环,进而引发错误。
目标端同一个库表对象不能接收多个源端的 DDL 同步,否则多个源端的 DDL 可能在目标端形成冲突,进而引发错误。
多张同名表合并为一张表类型的多对一同步中,只能在一个同步任务中选择 DDL。
其他类型的多对一同步(如多张不同名称的表合并到一个库),可以在每个任务中选择 DDL,请用户根据实际情况选择合适的 DDL 同步策略。
在校验阶段,同步系统会结合当前用户的所有其他同步任务,判断正在新建的同步任务是否会造成 DDL 循环或者冲突,并给出提示供用户参考。

典型场景推荐配置

多对一同步是通过创建多个单向同步任务来构建多对一拓扑,每个单向同步的步骤与普通的单向同步的步骤类似,只是在如下同步选项设置有差异。 如下列出了典型场景的推荐配置,请用户参考操作。
示例:构建实例 A、B 到 C 的同步,且实例 A、B 中有相同名称的表需要同步到实例 C,任务一 A > C 同步,任务二 B > C 同步。如有更多的源端需要同步到目的端,参考任务二增加同步任务即可。
场景
时间要求
同步任务
初始化类型
已存在同名表
冲突处理机制
同步操作类型
场景一:实例 A、B 有库表结构和数据,实例 C 为空
需要等任务一进行到“同步增量”阶段再启动任务二
任务一
结构初始化 + 全量数据初始化
忽略并继续执行
请用户自行选择。
示例:如果某个主键发生冲突,用户需要以 A 的内容为准,则任务一选择冲突覆盖,任务二选择冲突忽略或者冲突报错。
冲突策略的生效对象仅对当前发生主键冲突时的主键数据。
最多支持在一个任务中选择 DDL。
除 DDL 外,其他操作类型多个任务保持一致。
任务二
全量数据初始化
忽略并继续执行
场景二:实例 A、B 有库表结构和数据,实例 C 只有库表结构,无数据
任务一
全量数据初始化
忽略并继续执行
任务二
同任务一
同任务一
场景三:实例 A、B、C 都有库表结构和数据
任务一
全量数据初始化
忽略并继续执行
任务二
同任务一
同任务一

操作步骤

如下以 MySQL 二对一同步(实例 A、B 有库表和数据,实例 C 为空)为例进行介绍,其他数据库的多对一同步操作类似,请参考本指导进行。

创建同步任务一(实例 A > 实例 C)

1. 登录 数据同步购买页,选择相应配置,单击立即购买
2. 购买完成后,返回 数据同步列表,可看到刚创建的数据同步任务,刚创建的同步任务需要进行配置后才可以使用。
3. 在数据同步列表,单击操作列的配置,进入配置同步任务页面。
4. 在配置同步任务页面,配置源端实例、账号密码,配置目标端实例、账号和密码,测试连通性后,单击下一步
设置项
参数
描述
任务设置
任务名称
DTS 会自动生成一个任务名称,用户可以根据实际情况进行设置。
运行模式
支持立即执行和定时执行两种模式。
源实例设置
源实例类型
购买时所选择的云数据库实例类型,不可修改。
源实例地域
购买时选择的云数据库实例 A 所在地域,不可修改。
服务提供商
支持普通(包括腾讯云 MySQL 数据库及自建 MySQL 数据库)、AWS、阿里云。
接入类型
若服务提供商选择其他云厂商,接入类型可选公网;如服务提供商选择普通,请根据数据库部署情况选择。
公网:通过公网 IP 接入的自建数据库。
云主机自建:腾讯云服务器 CVM 上的自建数据库。
专线/VPN 接入:通过专线/VPN 网关接入的自建数据库。
私有网络 VPC:通过私有网络 VPC 接入的自建数据库。
云数据库:腾讯云数据库。
云联网:通过云联网接入的自建数据库。
目标实例设置
目标实例类型
所选择的目标实例类型,不可修改。
目标实例地域
选择的目标实例 C 所在地域,不可修改。
接入类型
选择目标数据库 C 接入类型。
5. 在设置同步选项和同步对象页面,将对数据初始化选项、数据同步选项、同步对象选项进行设置,在设置完成后单击保存并下一步
设置项
参数
描述
数据初始化选项
初始化类型
结构初始化:同步任务执行时会先将源实例中表结构初始化到目标实例中。
全量数据初始化:同步任务执行时会先将源实例中数据初始化到目标实例中。
本场景选择结构初始化+全量数据初始化。
已存在同名表
前置校验并报错:存在同名表则报错,流程不再继续。
忽略并继续执行:全量数据和增量数据直接追加目标实例的表中。
本场景选择忽略并继续执行。
数据同步选项
冲突处理机制
冲突报错:在同步时发现表主键冲突,报错并暂停数据同步任务。
冲突忽略:在同步时发现表主键冲突,保留目标库主键记录。
冲突覆盖:在同步时发现表主键冲突,用源库主键记录覆盖目标库主键记录。
用户根据实际情况自行选择。
同步操作类型
支持操作:Insert、Update、Delete、DDL。
多对一同步最多支持在一个同步任务中选择 DDL。本场景在任务一中选择 DDL,其他任务中不选择。
同步对象选项
源实例库表对象
选择待同步的对象,支持库级别和表及视图级别。
已选对象
展示已选择的同步对象,支持库表映射。
6. 在校验任务页面,系统会先进行 DDL 校验,然后进行源库和目标库参数校验。完成校验并全部校验项通过后,单击启动任务
说明:
如果校验任务不通过,可以参考 校验不通过处理方法 修复问题后重新发起校验任务。
在校验结果中出现告警项不影响启动任务,但推荐单击查看详情获取建议进行调整。
DDL 校验
源库和目标库参数校验
7. 返回数据同步任务列表,任务开始进入运行中状态。

创建同步任务二(实例 B > 实例 C)

等到上一个同步任务进行到同步增量阶段后,再配置同步任务二。 同步任务二和同步任务一操作基本一致,以下仅对差异点进行详细说明。
1. 设置同步源和目标数据库。 源实例设置和目标实例设置中分别填入实例 B 和实例 C 的数据。
2. 设置同步选项和同步对象。
初始化类型:只选择全量数据初始化,不选择结构初始化。
已存在同名表:忽略并继续执行。
冲突处理机制:请用户自行选择。
同步操作类型:不选择 DDL。多对一同步仅支持在一个同步任务选择 DDL。本场景中在任务一中选择 DDL,其他任务中不选择。

结束同步任务

如不需要同步任务,可选择操作列的更多 > 结束,关闭同步任务。

帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈