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

本文涉及的产品
数据管理 DMS,安全协同 3个实例 3个月
推荐场景:
学生管理系统数据库
数据传输服务 DTS,数据迁移 small 3个月
推荐场景:
MySQL数据库上云
数据传输服务 DTS,数据同步 1个月
简介: 使用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

相关实践学习
数据库实验室挑战任务-初级任务
本场景介绍如何开通属于你的免费云数据库,在RDS-MySQL中完成对学生成绩的详情查询,执行指定类型SQL。
阿里云云原生数据仓库AnalyticDB MySQL版 使用教程
云原生数据仓库AnalyticDB MySQL版是一种支持高并发低延时查询的新一代云原生数据仓库,高度兼容MySQL协议以及SQL:92、SQL:99、SQL:2003标准,可以对海量数据进行即时的多维分析透视和业务探索,快速构建企业云上数据仓库。 了解产品 https://www.aliyun.com/product/ApsaraDB/ads
相关文章
|
5天前
|
数据库 OceanBase 索引
OceanBase迁移服务(OMS)支持不同大小和复杂度的表的迁移
【2月更文挑战第25天】OceanBase迁移服务(OMS)支持不同大小和复杂度的表的迁移
27 3
|
5天前
|
数据库
阿里云DTS数据迁移和数据同步的差异性分析
阿里云DTS作为一款常用的数据库表迁移工具,提供了功能非常类似的两个功能:数据迁移、数据同步。阿里云DTS产品官网对这两个功能模块进行了简单的区分: 场景1:存量数据批量迁移,建议使用数据迁移功能。 场景2:增量数据实时同步,建议使用数据同步功能。 实际上,无论是数据迁移还是数据同步,都可以做 “结构初始化”+“全量数据迁移”+“增量迁移”,因此两者功能差异并不明显。笔者在多个项目实践DTS数据迁移,在简单需求场景下,将DTS的数据迁移、数据同步进行对比和总结。
|
8月前
|
关系型数据库 MySQL 数据库
MySQL数据库DTS迁移上云
利用DTS数据迁移工具完成RDS实例间的数据迁移。
138 0
|
9月前
|
数据采集 Cloud Native 关系型数据库
实现业务零停机!NineData的PostgreSQL数据迁移能力解析
NineData推出了PostgreSQL业务不停服数据迁移能力。NineData实现了完全自动化的结构迁移和全量数据迁移,并提供了变更数据的迁移能力。这种能力可以实时监听源PostgreSQL中的变更数据,在完成全量迁移后将变更数据实时复制到目标PostgreSQL,实现源/目标PostgreSQL的动态复制。在PostgreSQL数据迁移过程中,业务可以正常提供服务,无需停服。最终,业务可以根据需求选择对应的时间点切换到目标PostgreSQL。
553 1
|
5天前
|
数据库 OceanBase
可以暂停OceanBase数据库的OMS数据迁移
可以暂停OceanBase数据库的OMS数据迁移
40 3
|
7月前
|
DataWorks 关系型数据库 MySQL
DataWorks可以通过数据同步任务(DTS)实现OceanBase和其他数据库之间的实时数据同步
DataWorks可以通过数据同步任务(DTS)实现OceanBase和其他数据库之间的实时数据同步
97 2
|
7月前
|
数据库 OceanBase
OceanBase数据库中,备份数据通常不需要创建业务用户。
OceanBase数据库中,备份数据通常不需要创建业务用户。
36 1
|
8月前
|
数据库 数据安全/隐私保护 开发者
使用DTS完成数据库从线下到线上的迁移(二)
使用DTS完成数据库从线下到线上的迁移(二)
80 0
|
9月前
|
缓存 数据库 OceanBase
OceanBase数据库资源规格规划
OceanBase数据库资源规格规划
96 1
|
关系型数据库 MySQL API
新老系统数据同步方案
新老系统朴素数据同步方案
1011 0

热门文章

最新文章

http://www.vxiaotou.com