首页>>新闻资讯>>云计算

上云第一步,阿里云数据传输服务DTS上云攻略之迁移能力

2024-08-01 00:01:31 17

由于云的便利性及高可靠等特性,越来越多的企业客户选择上云。大家上云遇到的第一个问题就是如何在业务不受影响的情况下,平滑得完成业务的上云迁移。在上云过程中,最重要的环节是数据迁移。阿里云数据传输服务DTS提供的不停服数据迁移能力,能够在源数据库正常提供服务的情况下,平滑得完成业务的上云迁移。

停服迁移 — 传统数据库迁移方案

为满足不同的用户场景,市面上涌现出多种多样的数据库引擎。为了解决用户数据导入的诉求,数据库厂商基本都自带了数据迁移工具。例如: MySQL的mysqldump,oracle的exp/imp等。 

然而,传统迁移工具通过数据导出导入的方式实现存量数据的迁移,为了保证迁移数据的完整性,通常要求源数据库业务停服,停服时间依赖于存量数据的迁移时间,通常高达数小时,用户的迁移代价极大。

不停服迁移 — 阿里云数据传输服务DTS

为了降低用户迁移成本,阿里云推出数据传输服务DTS。DTS支持关系型数据库、NoSQL、大数据(OLAP)等数据源间的数据传输。 它是一种集数据迁移、数据日志实时订阅及数据实时同步于一体的数据传输服务。

通过DTS,可以帮助我们完成数据不停服迁移、数据灾备、异地多活、业务数据实时同步至数据仓库、异步消息通知及缓存更新等业务场景。

DTS提供的数据不停服迁移,可以在源数据库不停止服务的情况下,平滑得完成数据库数据的迁移,用户可以应用在多种场景下的数据迁移:

将线下IDC机房的自建数据库迁移至阿里云RDS或者ECS上自建的数据库。 将其他云厂商的自建数据库迁移至阿里云RDS或者ECS上自建的数据库。 进行阿里云跨地区、跨账号的数据库迁移。 将阿里云RDS或ECS上的自建数据库迁移到线下IDC的测试环境。

DTS支持包含Oracle、MySQL、SQLServer、PostgreSQL、DB2、Redis、MongoDB在内的数十种数据源。目前已为数万企业客户提供数据传输服务。

接下来,我们将详细介绍DTS的基本原理及迁移流程,让大家更好得了解DTS不停服迁移。

迁移流程

打开凤凰新闻,查看更多高清图片

使用DTS,进行数据库不停服迁移的大致流程分为如下几个阶段:

准备工作,包括目标数据库、源数据库及目标数据库的迁移账号结构迁移,DTS将源数据库的结构对象迁移到目标数据库全量数据迁移,DTS将源数据库的历史数据迁移到目标数据库增量数据迁移,DTS将源数据库的增量数据迁移至目标数据库。增量数据迁移分为两步:增量数据拉取,增量数据同步。为保证迁移数据完整性,在结构迁移启动时,DTS同时启动增量数据拉取,实时捕获源实例在结构及全量数据迁移过程中产生的增量数据 。数据校验,用户对源数据库及目标数据库进行迁移数据的一致性校验业务切换,选择业务低峰期,当DTS增量迁移无延迟时,将业务指向目标数据库

整个数据迁移期间,源数据库正常提供服务,只是在业务切换阶段,将业务指向目标数据库。

基本原理

本小节,我们将介绍各个迁移阶段的基本技术原理。

1. 结构迁移

在结构迁移阶段,DTS根据源实例的结构定义(例如表、视图等)在目标实例生成schema。如果是源实例跟目标实例是异构数据源,DTS需要根据目标实例的schema语法,进行数据类型及SQL语法的转换。对于部分目标数据源不兼容的对象,可以在DTS控制台-迁移详情中进行人工修正后同步至目标实例。

2. 全量数据迁移 

全量数据迁移阶段,DTS将源数据库中的历史数据迁移至目标实例。基于表切片技术,实现表内并发,最大程度提升迁移速度。

同时,DTS还支持断点续传,当网络、源实例或目标实例出现异常导致迁移中断时,异常恢复后,DTS可从断点恢复进行数据续传,极大程度降低迁移工作量。

3. 增量数据迁移

增量数据迁移阶段DTS会实时捕获源数据库的变更数据,并实时同步到目标数据库。

基于事务冲突算法,DTS可实现基于事务级别的并发写入策略, 保证事务顺序性的情况下,有效提升同步性能。

【迁移案例】只需3个步骤,手把手教你get数据库迁移的正确姿势

使用DTS用户只需要三个步骤即可完成整个任务的配置。下面我们将用一个从其他云厂商RDS迁移到阿里云RDS的案例来演示DTS的使用方法:

准备工作

在配置DTS任务之前,需要开通其他云厂商的RDS实例的外网地址。

当然,除了通过公网访问外,DTS支持通过专线,VPN网关等硬件设备访问其他云厂商的RDS实例。

迁移步骤

进入阿里云 数据传输 DTS 控制台,点击右上角的 创建迁移任务,开始任务配置。

配置源MySQL 实例及目标 RDS for MySQL 实例连接信息配置在这个步骤中,主要配置迁移任务名称,迁移源实例及目标实例连接信息。其中:

任务名称 默认情况下,DTS 为每个任务自动生成一个任务名称。任务名称没有唯一性要求,您可以修改这个名称,为任务配置一个具有业务意义的名称,便于后续的任务识别。 源实例连接信息 实例类型:选择 有公网 IP 的自建数据库 数据库类型:选择 MySQL 主机名或 IP 地址:配置其他云厂商RDS MySQL的外网地址。 端口:配置其他云厂商RDS MySQL的实例监听端口。 账号:配置其他云厂商的MySQL 实例访问账号 密码:配置其他云厂商的 MySQL 访问账号对应的密码 目标 RDS for MySQL 实例连接信息。 目标实例配置阿里云RDS的实例连接信息。具体配置信息如下: 实例类型:选择 RDS 实例 RDS实例ID: 配置迁移的目标 RDS 实例的实例 ID。 DTS 支持经典网络、VPC 网络的 RDS for MySQL 实例 数据库账号:RDS for MySQL 实例的连接账号 数据库密码:上面指定的数据库账号对应的数据库密码

2.迁移对象及迁移类型配置

o 迁移类型

DTS 支持 结构迁移、全量数据迁移、增量数据迁移。

为进行不停服迁移,此处选择:结构迁移+全量数据迁移+增量数据迁移。

o 迁移对象

迁移对象,需要选择您要迁移的对象。迁移对象选择的粒度可以为:库、表、列三个粒度。

当配置完迁移对象及迁移类型后,即进入任务启动前的预检查步骤

3.预检查

在迁移任务正式启动之前,会先进行前置预检查,预检查通过后,可成功启动迁移。

当预检查通过后,可以启动迁移任务,任务启动后,可以到任务列表中查看任务具体的迁移状态及进度。

至此,完成将其他云厂商MySQL 数据库实例到阿里云 RDS for MySQL 的数据迁移任务配置。

总结

作为阿里云数据传输服务DTS上云攻略系列文章的第一篇,本文介绍了DTS的基本原理,数据库迁移流程。相信大家已经了解到DTS是一款便捷、安全而高效的数据库迁移利器,可基于DTS的不停服迁移能力,轻松迈出业务上云的第一步。

当然,除了数据迁移的功能外,DTS还支持数据库日志实时订阅,数据实时同步,通过这些功能,用户可以实现数据灾备、异地多活、业务数据实时同步至数据仓库、异步消息通知、缓存更新等业务场景。由于篇幅限制,此处不做详细介绍。

相关标签:

发表评论:

评论记录:

未查询到任何数据!