本文中含有需要您注意的重要提示信息,忽略该信息可能对您的业务造成影响,请务必仔细阅读。
通过数据传输服务DTS(Data Transmission Service),您可以将MaxCompute的数据迁移至MySQL。
前提条件
确保您已完成以下操作:
注意事项
DTS在执行全量数据迁移时将占用源库和目标库一定的读写资源,可能会导致数据库的负载上升,在数据库性能较差、规格较低或业务量较大的情况下(例如源库有大量慢SQL、存在无主键表或目标库存在死锁等),可能会加重数据库压力,甚至导致数据库服务不可用。因此您需要在执行数据迁移前评估源库和目标库的性能,同时建议您在业务低峰期执行数据迁移(例如源库和目标库的CPU负载在30%以下)。
DTS会自动地在目标阿里云RDS实例中创建数据库,如果待迁移的数据库名称不符合阿里云RDS实例的定义规范,您需要在配置迁移任务之前在目标阿里云RDS实例中创建数据库。
关于阿里云RDS的定义规范和创建数据库的操作方法,请参见创建数据库和账号。
当选择的迁移类型为全量数据迁移,那么为保障数据一致性,在迁移期间请勿在源MaxCompute实例中写入新的数据。
对于迁移失败的任务,DTS会触发自动恢复。当您需要将业务切换至目标实例,请务必先结束或释放该任务,避免该任务被自动恢复后,导致源端数据覆盖目标实例的数据。
由于源MaxCompute实例不支持主键约束,在一些异常情况下(如网络异常),DTS会进行任务重试,可能会导致目标RDS实例中该无主键表出现重复数据。
DTS在迁移MaxCompute至RDS MySQL时,暂不支持增量数据迁移,即不支持将迁移过程中源库产生的增量数据实时迁移至目标库。
由于暂不支持增量数据迁移,数据迁移期间请勿在源MaxCompute实例的迁移对象中写入新的数据,否则会导致迁移对象在源与目标的数据不一致。
目标库支持的实例类型
执行数据迁移操作的MySQL数据库支持以下实例类型:
ECS上的自建数据库
通过专线、VPN网关或智能网关接入的自建数据库
通过数据库网关接入的自建数据库
同一或不同阿里云账号下的RDS MySQL实例
本文以RDS实例为例介绍配置流程,当目标库为其他实例类型时,配置流程与该案例类似。
如果目标库为自建MySQL数据库,您还需要执行相应的准备工作,详情请参见准备工作概览。
费用说明
迁移类型 | 链路配置费用 | 公网流量费用 |
迁移类型 | 链路配置费用 | 公网流量费用 |
结构迁移和全量数据迁移 | 不收费 | 通过公网将数据迁移出阿里云时将收费,详情请参见计费概述。 |
迁移类型说明
迁移类型 | 说明 |
迁移类型 | 说明 |
结构迁移 | DTS将待迁移对象的结构定义迁移到目标库。目前DTS支持结构迁移的对象为库、表和视图。 此场景属于异构数据库间的数据迁移,DTS在执行结构迁移时数据类型无法完全对应,请谨慎评估数据类型的映射关系对业务的影响,详情请参见异构数据库间的数据类型映射关系。 |
全量数据迁移 | DTS将待迁移对象的存量数据全部迁移到目标库中。 由于全量数据迁移会并发INSERT导致目标实例的表存在碎片,全量迁移完成后目标库的表空间会比源库的表空间大。 |
操作步骤
登录数据传输控制台。
若数据传输控制台自动跳转至数据管理DMS控制台,您可以在右下角的
中单击
,返回至旧版数据传输控制台。
在左侧导航栏,单击数据迁移。
在迁移任务列表页面顶部,选择迁移的目标集群所属地域。
配置迁移任务的源库和目标库连接信息。
类别
配置
说明
类别
配置
说明
源库信息
实例类型
选择MaxCompute。
实例地区
选择源MaxCompute实例所属的地域。
Project
填入MaxCompute实例的Project,您可以在MaxCompute工作空间列表页面中查询。
目标库信息
实例类型
选择RDS实例。
实例地区
选择目标RDS MySQL实例所属的地域。
RDS实例ID
选择目标RDS MySQL实例ID。
数据库账号
填入目标RDS MySQL实例的数据库账号,账号需具备读写权限。
数据库密码
填入该数据库账号的密码。
目标库信息填写完毕后,您可以单击数据库密码后的测试连接来验证填入的信息是否正确。
如果填写正确则提示测试通过;如果提示测试失败,单击测试失败后的诊断,根据提示调整填写的目标库信息。
连接方式
根据需求选择非加密连接或SSL安全连接。如果设置为SSL安全连接,您需要提前开启RDS MySQL实例的SSL加密功能,详情请参见设置SSL加密。
配置完成后,单击页面右下角的授权白名单并进入下一步。
如果源或目标数据库是阿里云数据库实例(例如RDS MySQL、云数据库MongoDB版等),DTS会自动将对应地区DTS服务的IP地址添加到阿里云数据库实例的白名单;如果源或目标数据库是ECS上的自建数据库,DTS会自动将对应地区DTS服务的IP地址添到ECS的安全规则中,您还需确保自建数据库没有限制ECS的访问(若数据库是集群部署在多个ECS实例,您需要手动将DTS服务对应地区的IP地址添到其余每个ECS的安全规则中);如果源或目标数据库是IDC自建数据库或其他云数据库,则需要您手动添加对应地区DTS服务的IP地址,以允许来自DTS服务器的访问。DTS服务的IP地址,请参见DTS服务器的IP地址段。
DTS自动添加或您手动添加DTS服务的公网IP地址段可能会存在安全风险,一旦使用本产品代表您已理解和确认其中可能存在的安全风险,并且需要您做好基本的安全防护,包括但不限于加强账号密码强度防范、限制各网段开放的端口号、内部各API使用鉴权方式通信、定期检查并限制不需要的网段,或者使用通过内网(专线/VPN网关/智能网关)的方式接入。
单击页面右下角的下一步,允许将MaxCompute中项目的下述权限授予给DTS迁移账号。详情如下图所示。
选择迁移类型和迁移对象。
配置
说明
配置
说明
迁移类型
同时勾选结构迁移和全量数据迁移。
DTS暂不支持将MaxCompute的数据增量迁移至RDS MySQL实例。
迁移对象
在迁移对象框中单击待迁移的对象,然后单击
将其移动到已选择对象框。
迁移对象选择的粒度为库、表、列。
默认情况下,迁移对象在目标库中的名称与源库保持一致。如果您需要改变迁移对象在目标库中的名称,需要使用对象名映射功能,详情请参见库表列映射。
如果使用了对象名映射功能,可能会导致依赖这个对象的其他对象迁移失败。
源、目标库无法连接重试时间
默认重试12小时,您也可以自定义重试时间。如果DTS在设置的时间内重新连接上源、目标库,迁移任务将自动恢复。否则,迁移任务将失败。
由于连接重试期间,DTS将收取任务运行费用,建议您根据业务需要自定义重试时间,或者在源和目标库实例释放后尽快释放DTS实例。
单击页面右下角的预检查并启动。
在数据迁移任务正式启动之前,会先进行预检查。只有预检查通过后,才能成功启动数据迁移任务。
如果预检查失败,单击具体检查项后的
,查看失败详情。
您可以根据提示修复后重新进行预检查。
如无需修复告警检测项,您也可以选择确认屏蔽、忽略告警项并重新进行预检查,跳过告警检测项重新进行预检查。
预检查通过后,单击下一步。
在弹出的购买配置确认对话框,选择链路规格并选中数据传输(按量付费)服务条款。
单击购买并启动,迁移任务正式开始。
请勿手动结束迁移任务,否则可能会导致数据不完整。您只需等待迁移任务完成即可,迁移任务会自动结束。
将业务切换至RDS MySQL实例。
后续步骤
用于数据迁移的源MaxCompute实例的项目空间成员拥有读权限,目标RDS MySQL实例的数据库账号拥有读写权限,为保障数据库安全性,请在数据迁移完成后,删除源MaxCompute实例的项目空间成员或修改其角色,以及删除目标RDS MySQL实例中的数据库账号。具体步骤,请参见添加项目空间成员并设置角色和删除账号。
- 本页导读 (1)
- 前提条件
- 注意事项
- 目标库支持的实例类型
- 费用说明
- 迁移类型说明
- 操作步骤
- 后续步骤