教程简介
通过本教程,您将学习使用数据传输服务DTS(Data Transmission Service),将自建MySQL迁移至RDS MySQL实例。DTS支持结构迁移、全量数据迁移以及增量数据迁移,同时使用这三种迁移类型可以实现在自建应用不停服的情况下,平滑地完成自建MySQL数据库的迁移上云。
数据传输服务DTS(Data Transmission Service)是阿里云提供的实时数据流服务,支持多种数据源间的数据交互,集数据同步、迁移、订阅、集成、加工于一体,助您构建安全、可扩展、高可用的数据架构。更多信息,请参见数据传输服务DTS的官方文档。
我能学到什么
- 熟悉DTS可视化的管理界面。
- 了解使用DTS配置数据迁移实例的方法。
步骤一:准备环境及资源
耗时:15分钟
开始教程前,请按以下步骤准备环境和资源:
- 确保自建MySQL数据库版本为5.1、5.5、5.6、5.7或8.0版本。
- 创建目标RDS MySQL实例,其存储空间大于自建MySQL数据库已占用空间。并创建用于迁移的具有读写权限的数据库账号。具体操作,请参见创建RDS MySQL实例和创建账号。
- 了解自建MySQL数据库上云的注意事项及限制。详情请参见MySQL间的迁移。
- 访问阿里云免费试用。单击页面右上方的登录/注册按钮,并根据页面提示完成账号登录(已有阿里云账号)、账号注册(尚无阿里云账号)或实名认证(根据试用产品要求完成个人实名认证或企业实名认证)。
- 成功登录后,在产品类别下选择数据库 > 数据管理工具,在数据迁移的数据传输 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地址的参考方法:
|
|
端口 |
填入源自建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默认策略,您也可以选择与源库、目标库默认策略保持一致。更多信息,请参见目标库对象名称大小写策略。 |
源库对象 |
在源库对象框中选择待迁移对象,然后单击将其移动至已选择对象框。
|
已选择对象 |
|
7.单击下一步高级配置,进行高级配置。
本示例保持默认配置,无需手动配置,您也可以根据实际情况进行配置。
配置说明
类别 |
配置 |
说明 |
数据校验配置 |
数据校验方式 |
若您需要配置数据校验任务,配置方法请参见配置数据校验。 |
高级配置 |
设置告警 |
是否设置告警,当迁移失败或延迟超过阈值后,将通知告警联系人。
|
复制源表Online DDL工具执行过程的临时表到目标库 |
若源库使用数据管理DMS(Data Management)或gh-ost执行Online DDL变更,您可以选择是否迁移Online DDL变更产生的临时表数据。DTS任务暂不支持使用pt-online-schema-change等类似工具执行Online DDL变更,否则会导致DTS任务失败
|
|
源库触发器迁移方式 |
请按照您的实际业务选择源库触发器的迁移方式。关于迁移方式的介绍,详情请参见同步或迁移源库中的触发。 |
|
源库、目标库无法连接后的重试时间 |
在迁移任务连接失败时,DTS会立即进行持续的重试连接,默认持续重试时间为120分钟,您也可以在取值范围(10~1440分钟)内自定义重试时间,建议设置30分钟以上。如果DTS在设置的重试时间内重新连接上源库、目标库,迁移任务将自动恢复。否则,迁移任务将失败。 由于连接重试期间,DTS将收取任务运行费用,建议您根据业务需要自定义重试时间,或者在源和目标库实例释放后尽快释放DTS实例。 |
|
源库、目标库出现其他问题后的重试时间 |
在迁移任务启动后,若源库或目标库出现非连接性的其他问题(如DDL或DML执行异常),则DTS会报错并会立即进行持续的重试操作,默认持续重试时间为10分钟(源库、目标库出现其他问题后的重试时间的值需要小于源库、目标库无法连接后的重试时间的值),您也可以在取值范围(1~1440分钟)内自定义重试时间,建议设置10分钟以上。如果DTS在设置的重试时间内相关操作执行成功,迁移任务将自动恢复。否则,迁移任务将会失败。 |
|
配置ETL功能 |
选择是否配置ETL功能。
|
|
是否去除正反向任务的心跳表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,请根据阿里云免费试用提供的试用规则及时释放或续费。
后续
对于运行的实例,您还可以调整实例的迁移速率、查看实例的热点表、体验实例规格升级等。具体操作,请参见: