使用DTS完成数据库从线下到线上的迁移(一)

本文涉及的产品
数据传输服务 DTS,同步至DuckDB 3个月
简介: 使用DTS完成数据库从线下到线上的迁移(一)

开发者学习笔记【阿里云云数据库助理工程师(ACA)认证使用DTS完成数据库从线下到线上的迁移(一)

课程地址:https://edu.aliyun.com/course/3112080/lesson/19074

 

使用DTS完成数据库从线下到线上的迁移(一)

课程目标

学习完本课程后,你将能够:

1. 了解阿里云数据传输服务 DTS

2. 掌握阿里云 DTS 产品功能、基本技术原理、应用场景以及最佳实践

 

内容介绍

一、行业趋势与挑战

二、产品介绍

2.1架构和原理

2.2产品支持拓扑

2.3产品应用场景

三、最佳实践

 

一、行业趋势与挑战


1、行业趋势——数据的未来是上云

国际权威研究机构 Gartner  发布《 The Future of the Database Management System(DBMS)Market Is Cloud 》报告,鲜明指出:数据库的未来是上云

图片157.png

数据来源:

https://blogs.gartner.com/adam-ronthal/2019/06/23/future-database-management-systems-cloud/

报告认为,数据库的未来必须是上云,目前云数据库已为数据库市场的增收贡献一半以上的份额。与传统数据库不断下降的营收相比,云数据库正在积极地快速增长。到2022年,预收有3/4的数据库天然部署或迁移到云上。

 

2、其他不断增长的数据库传输服务的要求

图片158.png

数据库异地灾备:如果为了提高数据安全可靠性,需要构建数据库异地灾备的功能。


数据库异地多活:城市级别的故障灾害,影响服务的可持续性;远距离用户访问延迟高,严重影响用户体验。单地域的技术体系架构越来越显示出不足。


数据中台数据实时集成:现有很多用户采用离线数据采集构建数据中台,实现数据分析,数据分析结果的时效性赶不上业务的发展。因此需要构建实时的数据传输链路,构建数据中台数据实时集成

实时数据订阅、业务解耦:存在依赖关系的上下游业务,希望不影响上游稳定性的情况下,低成本得实现下游业务通知机制。需要使用数据订阅功能,实时获取上游业务的数据库更新数据,触发下游业务逻辑

 

二、产品介绍


数据传输服务 DTS 概述:

数据传输服务( Data Transmission Service ,简称 DTS )支持关系型数据库、 NoSQL 、大数据( OLAP )等数据源间的数据传输。它是一种集数据迁移、增量数据实时订阅及数据实时同步于一体的数据传输服务。

图片159.png

 

2.1架构和原理 

系统架构:

源端支持多种多样的数据,可以在用户控制台或 OpenAPI 配置 DTS 的任务, DTS 数据迁移服务主要分为几个步骤:第一预检查,当用户配置完源端和目标端的数据传输服务 DTS 任务时就会启动预检查,检查两个数据库之间是否满足做 DTS 数据传输条件。之后给出一个上云评估的报告,再进行结构迁移,将源端数据库的数据库/表、视图索引、存储过程函数等对象结构进行迁移,如果是涉及到不同数据库之间做结构迁移,还会对相应的库表结构进行转换,形成目标数据库,创建结构的语句,在目标端创建相应的库表结构。进而是全量数据迁移,将源端数据库全量的数据迁移到目标端。最后通过日志解析,实时捕获源端增量变化的数据,将增量变化的数据写入目标库,以实现实时的数据同步

图片160.png

 阿里经济体数据库全球化和异地多活底座

9年打磨支撑双11大促

DTS 支持多达20多种数据源和目标,服务近5万企业客户

 

DTS 数据实时同步原理:

图片161.png

DTS 数据实时同步的原理主要分为几个部分,第一部分就是结构迁移,之后就是全量迁移,在全量迁移前 DTS 会启动一个增量数据采集服务,用来记录在全量迁移期间源端数据库产生增量变化的数据,在全量迁移完成之后,会将全量迁移期间产生增量变化的数据持续不断的按顺序写入到目标库,由于 DTS 增量采集和增量写入的速度远大于源端业务写入的速度,因此,在未来的某一时刻, DTS 可以将源端和目标端的数据同步完整,实现两边数据库数据的一致性,因此,在未来某一时刻,可以将原端所有数据同步到目标端,保证原端和目标端两边数据的一致性。


结构迁移:迁移元数据。数据类型准确、 PK / UK /索引约束准确,可以实现异构数据库之间的数据类型转换

全量迁移:迁移存量数据。对数据库影响低、速度快

增量拉取:捕获迁移过程中的变化数据。数庭保真、不丢数据

增量写入:迁移增量数据。数据一致、链路无延迟

全量数据校验:保障源和目标数据一致性。快速、具备订正能力

 

2.2产品支持拓扑

当前 DTS 支持的同步拓扑,可以帮助用户实现1对1的同步、级联的同步、1对多的同步和多对1的同步,以满足用户各种各样的同步场景

图片162.png

 

支持的数据源和目标:

在数据迁移和数据同步任务中支持的数据源和目标类型稍微有一些差异,但大体功能是类似的。具体如下表:

数据迁移功能

MySQL->MYSQLOracle、PolarDB for MySQLPolarDB-XPostgreSQL、AnalyticDB MySQLAnalyticDB PostgreSQL、Kafka

PolarDB for MYSQL->PolarDB for MySQLMySQL、AnalyticDB MySQL

PolarDB-O->Oralce、PolarDB-OKafka

Oracle->Oracle、MySQLPPAS、PolarDB-O、PolarDB-X、AnalyticDB MySQL、AnalyticDB PostgreSQLPolarDB MySQL、PolarDB PG PostgreSQL

SQLServer->SQLServer

PostgreSQL->PostgreSQL

MariaDB->MariaDBMySQL

MongoDB->MongoDB

Redis->Redis

Tidb->MySQL、PolarDB MySQL

Db2 for Luw->MySQL

DB2 for I->MySQL

数据同步功能

MySQL->MySQL、PolarDB for MySQL、AnalyticDB MySQLAnalyticDB PostgreSQL、Kafka、Datahub、ElasticSearch、Maxcompute

PolarDB-X->PolarDB-XDatahub、AnalyticDB MySQL、AnalicDB PostreSQL

PolarDB forMySQL->MySQL、PolarDB for MySQLAnalyticDB MySQL、AnalyticDB PostgreSQL、Kafka、Datahub、ElasticSearch、Maxcompute

PolarDB-O->PolarDB-O、Kafka

PostgreSQL->AnalyticDB PostgreSQL

SQLServer->AnalyticDB MySQLAnalyticDB PostgreSQL

Redis->Redis

TIDB->AnalyticDB MySQL

Db2 for I->MySQL

详情请参考:

https://help.aliyun.com/document detail/131497.html?Spm=a2c4g.11186623.6.544.3ac125eWjqUIm#title-80f-ixi-vza

 

数据迁移和同步的区别:

1.数据迁移适用于一次性的短期迁移,如上云迁移。且只支持后费,不支持预付费。

2,数据同步适用于长期的同步,如实时数据集成,异地容灾,异地多活,双向同步。

3.相比数据迁移,数据同步还额外支持通过内网同步,网络性能和稳定性更高。适合跨 Region 的同步。

4.数据同步任务,可以在同步过程中在线修改同步的对象,而数据迁移任务配置完成后,不可修改任务的迁移对象。

5,数据迁移,支持结构、全量和增量迁移,且只有配置任务时勾选了增量迁移才会收费

而同步任务是用户购买并创建任务之后就会开始收费,如果是预付费实例则用户在购买完成后同步任务就会开始收费。因此,相对于短期的、一次性的迁移,数据迁移的成本会比数据同步低一些。

 

产品核心功能——数据实时订阅:

图片163.png

数据订阅支持实时拉取 RDS 实例的量日志,用户可以通过DTS 提供的 SDK 数据订阅服务端或者 kafka client 来订阅增量日志同时可以根据业务需求,实现数据定制化消费。


DTS 服务端的日志拉取模块主要实现从数据源抓取原始数据,通过解析、过滤、标准格式化等流程最终将增量数据在本地久化。


日志抓取模块通过数据库协议连接并实时拉取源实例的增量日志。例如源实例为 RDS for MySQL ,那么数据抓取模块通Binlog dump 协议连接源实例


日志拉取模块及下游消费 SDK 的高可用: DTS 容灾系统一旦检测到日志拉取模块出现异常,就会在健康服务节点上断点重启日志拉取模块,保证日志拉取模块的高可用。


DTS 支持在服务端实现下游 SDK 消费进程和 client 的高可用。用户同时对一个数据订阅链路,启动多个下游 SDK 消费进程和消费 client ,服务端同时只向一个下游消费推送增量数据,当这个消费进程异常后,服务端会从其他健康下游中选择一个消费进程,向这个消费进程推送数据,从而实现下游消费的高可用。

 

数据订阅相比于迁移和同步,支持的场景会更加灵活,它主要的功能场景就是帮助用户将源端增量变化的数据实时的采集并写到一个消息队列中。用户可以通过 DTS 提供的 SDK 或 Kafka client 将源端采集的增量数据从 DTS 中消费出来,并自定义写入到各种各样的目标端,这种订阅和发布的方式相比于数据迁移和数据同步可以支持更多的目标端,支持的场景也更加丰富与灵活。

 

2.3 产品应用场景

场景1——业务零停机迁移、回流

通过 DTS 数据迁移和同步,可以帮助用户将源端数据库的数据实时迁移到目标端,保证两边数据的一致性,因此,此类场景可以帮助用户将本地 IDC 的数据迁移到阿里云或者从其他云厂商迁移到阿里云,甚至在阿里云上 ECS 自建数据库迁移到阿里云云数据库,或是跨账号数据库数据库迁移。数据迁移或数据同步任务也可以构建一条反向的迁移或同步任务,用户可将阿里云上的数据库的实例数据再反向同步回到 IDC 数据库或 ECS 自建数据库或其他云数据库上。如此一旦云数据库出现问题,用户的业务可以立马回切到源数据库实例上,通过数据迁移功能可以帮助用户将业务数据库零停机的上云迁移、回流。

场景说明:用户有需要迁移的数据库,希望在现有业务基本不停机的情况下,完成数据迁移,最大程度降低迁移对业务的影响

解决方案:使用增量数据迁移功能,同步迁移过程中业务产生的增量数据,当迁移无延迟时应用切换到目标数据源,应用停服时间降低到分钟级别

数据上云迁移

从本地 IDC 迁移到阿里云

从其他云厂商迁移到阿里云,例腾讯云 AWS 

云间迁移

ESC 自建同云资源间迁移

跨云账号迁移

跨阿里云地域迁移

跨 BID 迁移,例如从阿里云迁移到聚石塔

图片164.png场景2——数据灾备

通过 DTS 实时同步的功能,在两个数据中心构建 DTS 的传输通道,可以帮助用户将源端数据库的数据实时同步到异地的数据中心,比如将 IDC 的自建数据库同步到阿里云数据中心,或者在阿里云数据中心把数据库从杭州灾备到北京,又或者帮助用户构建两地三中心的灾备方案,例如 RDS 同城双可用区进行灾备 DTS ,再同步一份数据到线下 IDC 搭建两地三中心的灾备架构。

场景说明:用户在某地区部署业务中心,希望这个地区发生故障时,业务不受影响,可继续提供服务

解决方案:通过数据同步功能,在异地构建灾备中心,当业务中心发生故障时,业务快速切换到灾备中心,降低故障对业务的影响

数据灾备 RPO 秒级的数据灾备方案

混合云灾备

业务中心在本地 IDC 或其他云厂商,在

阿里云构建灾备中心

业务中心在阿里云,在本地 IDC 或其他

云厂商构建灾备中心

阿里云跨地域灾备

两地三中心

RDS 同城双可用区+ DTS  IDC 灾备

图片165.png

场景3——异地多活

相比数据库容灾, DTS 数据多活能够提供更加强大的功能,异地容灾只有在当前数据中心的数据库发生故障时才会切到灾备中心,但异地多活可以帮助用户构建两个双活的数据中心,这两个数据中心可以同时提供数据库的读写请求服务,比如一部分用户在北京、一部分用户在杭州,那北方的用户可以将请求请求到北京的数据库,南方的用户则可以将数据库的请求全球到杭州的数据库,但底层的数据可以通过 DTS 将北京的数据同步到杭州,将杭州的数据同步到北京,保证两边的数据保持实时的一致,同时两个数据中心的数据库又可以同时对外提供服务,这样相比灾备中心有更强大的服务能力。

场景说明:业务上在多地有多套服务,这些服务同时承担业务流量,且服务之间互为备份

解决方案:通过双向同步功能,进行各业务中心的数据同步,实现数据全局一致。当某个节点出现异常时,业务秒级切换到其他节点。

异地多活 RPO 秒级的数据多活方案

混合云灰度切流

流量逐步切换到阿里云,在切换过程中阿里云及线下 IDC /其他云厂商均承担业务流量

就近访问

业务需要在多个区域或多个国家提供服务,为提升访问体验,在多地部署业务

图片166.png

场景4——业务数据实时分析

通过DTS将源端数据库的数据比如 MySQL、SQLServer、Oracle等多种多样的数据实时同步到 AnalyticDB MySQL 、 Maxcompute 等数商平台用于数据实时分析,构建实时的数据仓库,。当然也可以将源端的数据库通过 DTS 数据订阅功能订阅到 DTS ,用户再将数据从 DTS 订阅通道将数据消费出来,写入到计算引擎进行实时数据计算。

场景说明:用户需要实时或定期对线上业务数据进行数据分析,以实现营销决策,业务大屏,实时查询等业务场景

解决方案:使用数据同步功能,将线上业务变更数据准实时同步到大数据分析产品中,业务实现准实时数据分析,快速抢占商务先机

业务数据实时分析:

实时分析

业务更新数据需要同步到 AnalyticDB/Maxcompute 跟其他数据进行实时交叉查询分析

流式分析

需要借助流计算对线上业务更新数据进行流式分析

图片167.png

 场景5——数据订阅,业务异步解耦

比如上游有一个数据订单的系统, DTS 通过数据订阅功能将上游订单系统的数据库数据实时订阅,一旦上游系统有一比新增的订单记录就可以让下游的话费充值系统消费到这条数据,并对该订单进行话费充值,进而实现两个业务系统之间的解耦。


场景说明:对于存在依赖关系的上下游业务,希望不影响上游稳定性的情况下,低成本得实现下游业务通知机制


解决方案:使用数据订阅功能,实时获取上游业务的数据库更新数据,触发下游业务逻辑

图片168.png

相关实践学习
阿里云云原生数据仓库AnalyticDB MySQL版 使用教程
云原生数据仓库AnalyticDB MySQL版是一种支持高并发低延时查询的新一代云原生数据仓库,高度兼容MySQL协议以及SQL:92、SQL:99、SQL:2003标准,可以对海量数据进行即时的多维分析透视和业务探索,快速构建企业云上数据仓库。 了解产品 https://www.aliyun.com/product/ApsaraDB/ads
相关文章
|
关系型数据库 MySQL 数据库
2分钟教你用DTS做数据库迁移
工作或者个人开发中,使用的数据库快到期了。不想续费,想换个数据库用,比如从阿里云换到腾讯云数据库。原有的数据怎么一键迁移到新数据库呢,今天就教大家用阿里云DTS做数据库的迁移
1444 0
|
NoSQL 安全 关系型数据库
阿里云数据库ApsaraDB| 学习笔记
快速学习阿里云数据库ApsaraDB
|
21天前
|
人工智能 自然语言处理 网络虚拟化
自动化天塌了?AI 替你画 Simulink!Agent——MCP 配置踩坑指南(附真实环境实测)
本文介绍在Windows下配置Simulink-MCP,使Cursor等AI Agent通过Model Context Protocol直接操作MATLAB/Simulink模型。支持加载、编辑、仿真等14个结构化工具,用自然语言即可生成/修改模型。需MATLAB R2024+、Python 3.10/3.11,并注意Engine与MCP版本兼容性。(239字)
|
3月前
|
存储 人工智能 前端开发
OpenClaw阿里云+Windows本地部署多Agent实战教程:1个人=一个高效 AI 军团
在AI自动化时代,单一Agent的“全能模式”早已无法满足复杂任务需求——记忆臃肿导致响应迟缓、上下文污染引发逻辑冲突、无关信息加载造成Token浪费,这些痛点让OpenClaw的潜力大打折扣。而多Agent架构的出现,彻底改变了这一现状:通过“单Gateway+多分身”模式,让一个Bot在不同场景下切换独立“大脑”,如同组建一支分工明确的AI团队,实现创意、写作、编码、数据分析等任务的高效协同。
4529 2
|
7月前
|
存储 弹性计算 监控
如何实现配置跨区域复制?
超68%企业因无异地容灾致数据丢失。阿里云跨区域复制功能,实现数据双活、合规存储与低延迟访问。本文详解OSS与ECS跨区域配置步骤,助力企业构建高可用架构。
|
消息中间件 存储 算法
聊聊 Kafka: Consumer 源码解析之 Consumer 如何加入 Consumer Group
聊聊 Kafka: Consumer 源码解析之 Consumer 如何加入 Consumer Group
1804 0
|
关系型数据库 MySQL OLAP
数据传输DTS是什么?
【8月更文挑战第30天】数据传输DTS是什么?
1460 3
|
容灾 安全 关系型数据库
数据传输服务DTS:敏捷弹性构建企业数据容灾和集成
数据传输服务DTS提供全球覆盖、企业级跨境数据传输和智能化服务,助力企业敏捷构建数据容灾与集成。DTS支持35种数据源,实现全球化数据托管与安全传输,帮助企业快速出海并高效运营。瑶池数据库的全球容灾、多活及集成方案,结合DTS的Serverless和Insight功能,大幅提升数据传输效率与智能管理水平。特邀客户稿定分享了使用DTS加速全球业务布局的成功经验,展示DTS在数据分发、容灾多活等方面的优势。
544 0
|
消息中间件 架构师 数据库
本地消息表事务:10Wqps 高并发分布式事务的 终极方案,大厂架构师的 必备方案
45岁资深架构师尼恩分享了一篇关于分布式事务的文章,详细解析了如何在10Wqps高并发场景下实现分布式事务。文章从传统单体架构到微服务架构下分布式事务的需求背景出发,介绍了Seata这一开源分布式事务解决方案及其AT和TCC两种模式。随后,文章深入探讨了经典ebay本地消息表方案,以及如何使用RocketMQ消息队列替代数据库表来提高性能和可靠性。尼恩还分享了如何结合延迟消息进行事务数据的定时对账,确保最终一致性。最后,尼恩强调了高端面试中需要准备“高大上”的答案,并提供了多个技术领域的深度学习资料,帮助读者提升技术水平,顺利通过面试。
本地消息表事务:10Wqps 高并发分布式事务的 终极方案,大厂架构师的 必备方案
|
SQL 负载均衡 安全
阿里云DTS踩坑经验分享系列|全量迁移加速方法指南
阿里云数据传输服务DTS是一个便捷、高效的数据迁移和数据同步服务。一般而言,一个完整的DTS数据迁移任务主要包括预检查、结构迁移,全量迁移,增量迁移等阶段,其中全量迁移会将源数据库的存量数据全部迁移到目标数据库。面对各种各样的用户场景, 本文将重点介绍如何使用阿里云DTS实现全量数据迁移加速,以缩短迁移时间,确保数据迁移的效率和稳定性。
1483 0