自建MySQL数据库免费上云?手把手教你用阿里云数据传输服务DTS!

本文涉及的产品
数据管理 DMS,安全协同 3个实例 3个月
推荐场景:
学生管理系统数据库
数据传输服务 DTS,数据迁移 small 3个月
推荐场景:
MySQL数据库上云
数据传输服务 DTS,数据同步 1个月
简介: 数据传输服务(Data Transmission Service,简称DTS)支持关系型数据库、NoSQL、大数据(OLAP)等数据源,集数据迁移、订阅及实时同步功能于一体,能够解决公共云、混合云场景下,远距离、秒级异步数据传输难题。其底层基础设施采用阿里双11异地多活架构,为数千下游应用提供实时数据流,已在线上稳定运行7年之久。

教程简介

通过本教程,您将学习使用数据传输服务DTS(Data Transmission Service),将自建MySQL迁移至RDS MySQL实例。DTS支持结构迁移、全量数据迁移以及增量数据迁移,同时使用这三种迁移类型可以实现在自建应用不停服的情况下,平滑地完成自建MySQL数据库的迁移上云。

数据传输服务DTS(Data Transmission Service)是阿里云提供的实时数据流服务,支持多种数据源间的数据交互,集数据同步、迁移、订阅、集成、加工于一体,助您构建安全、可扩展、高可用的数据架构。更多信息,请参见数据传输服务DTS的官方文档

我能学到什么

  • 熟悉DTS可视化的管理界面。
  • 了解使用DTS配置数据迁移实例的方法。

image.png


步骤一:准备环境及资源

耗时:15分钟

开始教程前,请按以下步骤准备环境和资源:

  1. 确保自建MySQL数据库版本为5.1、5.5、5.6、5.7或8.0版本。
  2. 创建目标RDS MySQL实例,其存储空间大于自建MySQL数据库已占用空间。并创建用于迁移的具有读写权限的数据库账号。具体操作,请参见创建RDS MySQL实例创建账号
  3. 了解自建MySQL数据库上云的注意事项及限制。详情请参见MySQL间的迁移
  4. 访问阿里云免费试用。单击页面右上方的登录/注册按钮,并根据页面提示完成账号登录(已有阿里云账号)、账号注册(尚无阿里云账号)或实名认证(根据试用产品要求完成个人实名认证或企业实名认证)。
  5. 成功登录后,在产品类别下选择数据库 > 数据管理工具,在数据迁移的数据传输 DTS卡片上单击立即试用,根据页面提示填写申请表单信息。
    本示例选择迁移链路地域华东1(杭州),其他保持默认配置。您也可以根据实际情况进行配置。

    配置说明

配置

说明

功能

试用数据传输服务的功能,固定为数据迁移

迁移链路地域

目标数据库实例所属的地域。

迁移链路规格

数据迁移实例性能的规格,当前仅支持small

资源组

数据迁移实例所属的资源组。更多信息,请参见资源组

试用数量

试用迁移实例的数量,固定为1


阅读并勾选服务协议后,单击立即试用



步骤二:在自建MySQL创建用于数据迁移的账号

耗时:5分钟

1.登录自建MySQL数据库。

2.在自建MySQL数据库中执行如下命令,创建用于数据迁移的账号。

CREATE USER 'username'@'host' IDENTIFIED BY 'password';

参数

说明

username

待创建的账号。

host

允许该账号登录的主机,如果允许该账号从任意主机登录数据库,可以使用百分号(%)。

password

账号的密码。

3.例如,创建一个账号,账号名为dtsmigration,密码为Dts123456,并允许该账号从任意主机登录数据库,命令如下:

CREATE USER 'dtsmigration'@'%' IDENTIFIED BY 'Dts123456';

4.执行如下命令,为创建的账号进行授权。

  • 为账号授予指定库表的权限,命令格式和需要修改的参数如下:
GRANT privileges ON databasename.tablename TO 'username'@'host' WITH GRANT OPTION;

参数

说明

privileges

授予该账号的操作权限,如SELECT、INSERT、UPDATE等,如果要授予该账号所有权限,则使用ALL。

库表结构迁移需要SELECT权限;全量迁移需要SELECT权限;增量迁移需要SELECT、REPLICATION CLIENT、REPLICATION SLAVE、SHOW VIEW以及建库建表的权限。

databasename

数据库名。如果要授予该账号具备所有数据库的操作权限,则使用星号(*)。

tablename

表名。如果要授予该账号具备所有表的操作权限,则使用星号(*)。

username

待授权的账号,需要与步骤2中创建的账号一致。本示例需为dtsmigration。

host

允许该账号登录的主机,如果允许该账号从任意主机登录数据库,则使用百分号(%)。

  • 为账号授予建库建表的权限,命令格式和需要修改的参数如下:
GRANT CREATE ON *.* TO 'username'@'host' WITH GRANT OPTION;

参数

说明

username

待授权的账号,需要与步骤2中创建的账号一致。

host

允许该账号登录的主机,如果允许该账号从任意主机登录数据库,则使用百分号(%)。

5.本示例授予dtsmigration账号具备所有数据库和表的所有权限,并允许该账号从任意主机登录数据库,命令如下:

GRANT ALL ON *.* TO 'dtsmigration'@'%';



步骤三:配置迁移任务

耗时:10分钟

1.在DTS控制台单击左侧导航栏的数据迁移,进入迁移任务的列表页面。

2.在页面上方选择迁移实例所属地域。

3.单击创建任务,配置源库及目标库信息。

类别

配置

说明

任务名称

DTS会自动生成一个任务名称,建议配置具有业务意义的名称(无唯一性要求),便于后续识别。

源库信息

选择已有的实例

DTS控制台暂不支持选择已有实例,您无需选择,只需要输入下方的数据库信息。

数据库类型

选择MySQL

接入方式

根据源库的部署位置进行选择,本文以公网IP为例介绍配置流程。

实例地区

选择源自建MySQL数据库所部署的地域,本示例选择华东1(杭州)

实例地区中没有您自建MySQL数据库部署的地域,您可以选择一个距离您部署地域近的地区。

主机名或IP地址

填入源自建MySQL数据库的访问地址,本示例中填入部署MySQL数据库服务的公网IP地址。

获取本地设备公网IP地址的方式可能因你所处的网络环境或操作不同而不同。以下是不同系统通过命令方式获取本地设备公网IP地址的参考方法:

  • Linux操作系统:打开终端,输入curl ifconfig.me命令后回车。
  • Windows操作系统:打开命令提示符,输入curl ip.me命令后回车。
  • macOS操作系统:打开终端,输入curl ifconfig.me命令后回车。

端口

填入源自建MySQL数据库的服务端口(需开放至公网),默认为3306

数据库账号

填入在源自建MySQL创建的数据库账号,本示例填入dtsmigration。

数据库密码

填入该数据库账号对应的密码。

目标库信息

选择已有的实例

DTS控制台暂不支持选择已有实例,您无需选择,只需要输入下方的数据库信息。

数据库类型

选择MySQL

接入方式

选择云实例

实例地区

选择目标RDS MySQL实例所属地域。

RDS实例ID

选择目标RDS MySQL实例ID。

数据库账号

填入目标RDS MySQL实例的数据库账号。

数据库密码

填入该数据库账号对应的密码。

连接方式

根据需求选择非加密连接SSL安全连接。如果设置为SSL安全连接,您需要提前开启RDS MySQL实例的SSL加密功能,详情请参见设置SSL加密

4.配置完成后,单击页面右下角的测试连接以进行下一步

5.如果您的自建数据库具备白名单安全设置,您需要复制弹跳框中的DTS服务器IP地址,并加入自建数据库的白名单安全设置中。然后单击测试连接以进行下一步。
DTS会自动将对应地区DTS服务的IP地址添加到目标阿里云数据库实例的白名单,您无需手动添加。

6.配置任务对象。
本示例的迁移类型同时选中库表结构迁移全量迁移增量迁移,并在源库对象框中选择待迁移的对象,其他保持默认配置。您也可以根据实际情况进行配置。

配置说明

配置

说明

迁移类型

  • 如果只需要进行全量迁移,请同时选中库表结构迁移全量迁移。为保障数据一致性,数据迁移期间请勿在源实例中写入新的数据。
  • 如果需要进行不停机迁移,请同时选中库表结构迁移全量迁移增量迁移

目标已存在表的处理模式

  • 预检查并报错拦截:检查目标数据库中是否有同名的表。如果目标数据库中没有同名的表,则通过该检查项目;如果目标数据库中有同名的表,则在预检查阶段提示错误,数据迁移任务不会被启动。
    如果目标库中同名的表不方便删除或重命名,您可以更改该表在目标库中的名称,请参见库表列名映射
  • 忽略报错并继续执行:跳过目标数据库中是否有同名表的检查项。择为忽略报错并继续执行,可能导致数据不一致,给业务带来风险,例如:
    • 表结构不一致的情况下,可能导致只能迁移部分列的数据或迁移失败。
    • 表结构一致的情况下,在目标库遇到与源库主键的值相同的记录,则会保留目标库中的该条记录,即源库中的该条记录不会迁移至目标库中。

目标库对象名称大小写策略

您可以配置目标实例中迁移对象的库名、表名和列名的英文大小写策略。默认情况下选择DTS默认策略,您也可以选择与源库、目标库默认策略保持一致。更多信息,请参见目标库对象名称大小写策略

源库对象

源库对象框中选择待迁移对象,然后单击将其移动至已选择对象框。

  • 迁移对象选择的粒度为库、表、列。若选择的迁移对象为表或列,其他对象(如视图、触发器、存储过程)不会被迁移至目标库。
  • 系统库(如sys)不支持迁移。

已选择对象

  • 如需移除已选择的对象,请在已选择对象框中选择待移除的对象,然后单击将其移动至源库对象框。
  • 如需更改迁移对象在目标实例中的名称,请右击已选择对象中的迁移对象,设置方式,请参见库表列名映射
    如果使用了对象名映射功能,可能会导致依赖这个对象的其他对象迁移失败
  • 如需按库或表级别选择迁移的SQL操作,请在已选择对象中右击待迁移对象,并在弹出的对话框中选择所需迁移的SQL操作。
  • 如需设置WHERE条件过滤数据,请在已选择对象中右击待迁移的表,在弹出的对话框中设置过滤条件。设置方法请参见通过SQL条件过滤任务数据

7.单击下一步高级配置,进行高级配置。
本示例保持默认配置,无需手动配置,您也可以根据实际情况进行配置。

配置说明

类别

配置

说明

数据校验配置

数据校验方式

若您需要配置数据校验任务,配置方法请参见配置数据校验

高级配置

设置告警

是否设置告警,当迁移失败或延迟超过阈值后,将通知告警联系人。

复制源表Online DDL工具执行过程的临时表到目标库

若源库使用数据管理DMS(Data Management)或gh-ost执行Online DDL变更,您可以选择是否迁移Online DDL变更产生的临时表数据。DTS任务暂不支持使用pt-online-schema-change等类似工具执行Online DDL变更,否则会导致DTS任务失败

  • 是:迁移Online DDL变更产生的临时表数据。
    Online DDL变更产生的临时表数据过大时,可能会导致迁移任务延迟。
  • 否,适配DMS Online DDL:不迁移Online DDL变更产生的临时表数据,只迁移源库使用数据管理DMS(Data Management)执行的原始DDL数据。此方案会导致目标库锁表。
  • 否,适配gh-ost:不迁移Online DDL变更产生的临时表数据,只迁移源库使用gh-ost执行的原始DDL数据,同时您可以使用默认的或者自行配置gh-ost影子表和无用表的正则表达式。此方案会导致目标库锁表。

源库触发器迁移方式

请按照您的实际业务选择源库触发器的迁移方式。关于迁移方式的介绍,详情请参见同步或迁移源库中的触发

源库、目标库无法连接后的重试时间

在迁移任务连接失败时,DTS会立即进行持续的重试连接,默认持续重试时间为120分钟,您也可以在取值范围(10~1440分钟)内自定义重试时间,建议设置30分钟以上。如果DTS在设置的重试时间内重新连接上源库、目标库,迁移任务将自动恢复。否则,迁移任务将失败。

由于连接重试期间,DTS将收取任务运行费用,建议您根据业务需要自定义重试时间,或者在源和目标库实例释放后尽快释放DTS实例。

源库、目标库出现其他问题后的重试时间

在迁移任务启动后,若源库或目标库出现非连接性的其他问题(如DDL或DML执行异常),则DTS会报错并会立即进行持续的重试操作,默认持续重试时间为10分钟(源库、目标库出现其他问题后的重试时间的值需要小于源库、目标库无法连接后的重试时间的值),您也可以在取值范围(1~1440分钟)内自定义重试时间,建议设置10分钟以上。如果DTS在设置的重试时间内相关操作执行成功,迁移任务将自动恢复。否则,迁移任务将会失败。

配置ETL功能

选择是否配置ETL功能。

是否去除正反向任务的心跳表sql

根据业务需求选择是否在DTS实例运行时,在源库中写入心跳SQL信息。

  • 是:不在源库中写入心跳SQL信息,DTS实例可能会显示有延迟。
  • 否:在源库中写入心跳SQL信息,可能会影响源库的物理备份和克隆等功能。

8.上述配置完成后,单击页面下方的下一步保存任务并预检查

  • 如果预检查失败,请单击失败检查项后的查看详情,并根据提示修复后重新进行预检查。
  • 如果预检查产生警告:
  • 对于不可以忽略的检查项,请单击失败检查项后的查看详情,并根据提示修复后重新进行预检查。
  • 对于可以忽略无需修复的检查项,您可以依次单击点击确认告警详情确认屏蔽确定重新进行预检查,跳过告警检查项重新进行预检查。如果选择屏蔽告警检查项,可能会导致数据不一致等问题,给业务带来风险。

9.预检查通过率显示为100%时,单击下一步购买

10.在购买页面,选择数据迁移实例的链路规格。

类别

配置

说明

信息配置

链路规格

DTS为您提供了不同性能的迁移规格,迁移链路规格的不同会影响迁移速率,您可以根据业务场景进行选择,详情请参见数据迁移链路规格说明

11.配置完成后,阅读并选中《数据传输(按量付费)服务条款》

12.单击购买并启动,迁移任务开始初始化,您可在数据迁移列表界面查看具体进度。


步骤四:完成

耗时:3分钟

观察数据迁移实例的进度

在迁移任务列表页面,您可以查看迁移实例的运行状态。当状态为运行中时,表示实例已进入增量迁移阶段,增量迁移任务不会主动结束;当状态为已完成时,表示实例的所有任务已完成。更多信息,请参见查看任务进度


步骤五:清理及后续

耗时:2分钟

清理

  • 本教程使用的DTS迁移实例只能免费试用3个月。实例到期后,您可以手动释放。具体操作,请参见释放按量付费实例。如果一直未释放该实例,实例将在试用时间结束后,按照正常价格计费,计费标准请参见计费项
  • DTS任务释放后,您还需手动删除添加的DTS服务的IP地址。在阿里云数据库实例的白名单中,您需要删除名称包含dts的IP白名单分组;在IDC自建数据库或其他云数据库,您需要删除的DTS服务的IP地址,请参见迁移、同步或订阅本地数据库时需添加的IP白名单
  • 若您使用的目标数据库为试用的RDS MySQL,请根据阿里云免费试用提供的试用规则及时释放或续费。

后续

对于运行的实例,您还可以调整实例的迁移速率、查看实例的热点表、体验实例规格升级等。具体操作,请参见:


相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
1月前
|
关系型数据库 MySQL Apache
**ADB MySQL湖仓版能够平滑迁移到湖仓**,阿里云提供了相应的迁移工具和服务来简化这一过程。
**ADB MySQL湖仓版能够平滑迁移到湖仓**,阿里云提供了相应的迁移工具和服务来简化这一过程。
290 2
|
1月前
|
SQL 关系型数据库 MySQL
阿里云MySQL数据库价格、购买、创建账号密码和连接数据库教程
阿里云数据库使用指南:购买MySQL、SQL Server等RDS实例,选择配置和地区,完成支付。创建数据库和账号,设置权限。通过DMS登录数据库,使用账号密码访问。同地域VPC内的ECS需将IP加入白名单以实现内网连接。参考链接提供详细步骤。
474 3
|
1月前
|
弹性计算 网络协议 关系型数据库
ECS域名问题之国内实例能不能导入阿里云新加坡的ECS和RDS如何解决
ECS(Elastic Compute Service,弹性计算服务)是云计算服务提供商提供的一种基础云服务,允许用户在云端获取和配置虚拟服务器。以下是ECS服务使用中的一些常见问题及其解答的合集:
|
20天前
|
SQL 运维 关系型数据库
阿里云DTS踩坑经验分享系列|数据不一致修复大法
阿里云数据传输服务DTS在帮助用户迁移数据、同步数据时,在某些复杂场景下会出现源库与目标库数据不一致的问题,造成数据错误,给用户带来困扰。由于数据不一致的问题很难完全避免,为了及时修复不一致的数据,DTS产品推出数据订正功能,保障用户在同步\迁移数据时的数据一致性。本文介绍了产生数据不一致的一些典型场景,并重点阐述了如何使用DTS数据订正功能来修复不一致的数据。
253 4
|
21天前
|
新零售 关系型数据库 MySQL
POLARDB:新零售用户MySQL上云最佳选择
POLARDB是阿里云的云原生数据库,专为互联网场景设计,兼容MySQL并优化高并发处理。适用于新零售、电商和SaaS,支持百万级用户应用,保证数据一致性,可应对业务高峰,实现秒杀活动的顺畅运行。具备读写分离的集群架构,实现数据共享。自2018年商用以来,已在多个行业得到广泛应用。产品特性包括超快SQL性能、大容量存储、弹性扩容和高级安全性。
349 2
|
25天前
|
关系型数据库 分布式数据库 数据库
【阿里云云原生专栏】云原生时代的数据库选型:阿里云RDS与PolarDB对比分析
【5月更文挑战第24天】阿里云提供RDS和PolarDB两种数据库服务。RDS是高性能的在线关系型数据库,支持MySQL等引擎,适合中小规模需求;而PolarDB是分布式数据库,具备高扩展性和性能,适用于大规模数据和高并发场景。RDS与PolarDB在架构、性能、弹性伸缩、成本等方面存在差异,开发者应根据具体需求选择。示例代码展示了如何通过CLI创建RDS和PolarDB实例。
581 0
|
26天前
|
SQL 关系型数据库 数据库
阿里云数据库 RDS SQL Server版实战【性能优化实践、优点探析】
本文探讨了Amazon RDS SQL Server版在云数据库中的优势,包括高可用性、可扩展性、管理便捷、安全性和成本效益。通过多可用区部署和自动备份,RDS确保数据安全和持久性,并支持自动扩展以适应流量波动。可视化管理界面简化了监控和操作,而数据加密和访问控制等功能保障了安全性。此外,弹性计费模式降低了运维成本。实战应用显示,RDS SQL Server版能有效助力企业在促销高峰期稳定系统并保障数据安全。阿里云的RDS SQL Server版还提供了弹性伸缩、自动备份恢复、安全性和高可用性功能,进一步优化性能和成本控制,并与AWS生态系统无缝集成,支持多种开发语言和框架。
169 2
|
1月前
|
SQL 关系型数据库 Serverless
阿里云关系型数据库RDS
阿里云关系型数据库RDS
189 49
|
1月前
|
运维 监控 关系型数据库
Serverless 应用引擎产品使用之在阿里云函数计算(FC)中,要访问另一个账号的rds配置rds的白名单如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
|
1月前
|
运维 容灾 关系型数据库
阿里云关系型数据库RDS
阿里云关系型数据库RDS概述
261 2

热门文章

最新文章

推荐镜像

更多