迁移任务

更新时间:

迁移任务是在线迁移服务的核心操作单元。通过配置并执行迁移任务,系统按既定的带宽、并发、覆盖策略与筛选规则,将源端的数据拷贝至目的端存储,并产生迁移日志与报告用于审计与回溯。

基础配置

配置迁移任务的基本信息,包括任务名称、源地址和目的地址。

任务名称

迁移任务的名称,名称需要符合以下规则:

  • 名称不能为空,长度为3~63个字符。

  • 支持英文小写字母、数字和特殊字符短划线(-)和下划线(_),且区分大小写。

  • UTF-8编码不能以短划线(-)和下划线(_)开头。

地址配置

  1. 源地址:数据迁移从该地址读取数据,作为数据迁移的起始点。

  2. 目的地址:数据迁移向该地址写入数据,作为数据迁移的终点。

限流配置

通过限流配置控制迁移过程中的网络带宽使用和文件传输速率,确保迁移过程不会对业务造成影响。实际迁移带宽与数据源、网络、文件大小等因素有关,不一定能达到指定上限。请您评估数据源、业务情况、网络带宽等,并根据实际情况选择合理数值,限流不恰当可能会影响业务的正常运行。不同地域支持的带宽与QPS上限不同。

迁移带宽

数据迁移时所占用的网络带宽上限。在迁移任务进行中,您可以根据业务负载随时修改带宽上限,修改带宽上限后需要一定的生效时间。

文件传输速率

每秒迁移文件数,控制文件传输的并发度。数据迁移过程中,您可以根据您的实际情况随时修改每秒迁移文件数上限参数,修改每秒迁移文件数上限后需要一定的生效时间。

覆盖方式

当目的端存在同名文件时,选择相应的处理策略。合适的覆盖策略可以在您进行多轮数据迁移时,减少同名文件的重复搬迁,节省带宽和所需时间。

覆盖方式选项

  • 不覆盖:跳过该文件,不进行迁移。

  • 全部覆盖:源地址中的文件会覆盖目的地址中的文件。

  • 根据最后修改时间覆盖

    • 当源地址中的文件最后修改时间晚于目的地址中的文件最后修改时间时,目的地址中的文件会被覆盖。

    • 当源地址中的文件最后修改时间与目的地址中的文件最后修改时间相同时,若二者的SizeContent-Type有一项不同,则目的地址中的文件会被覆盖。

重要
  • 根据最后修改时间覆盖无法严格保证一定不会覆盖更新的文件,存在旧文件覆盖新文件的风险。

  • 若您选择根据最后修改时间覆盖的覆盖方式,请务必确保源端文件能返回最后修改时间、Size、Content-Type等信息,否则覆盖策略可能失效,产生非预期的迁移结果。

  • 选择不覆盖或根据最后修改时间覆盖时,为执行后续覆盖判断,会分别请求源端和目的端meta信息一次,因此会在源端和目的端产生对应的请求费用。

过滤器

通过设置过滤器来精确控制需要迁移的文件范围,支持文件名过滤和时间过滤。

说明
  • 过滤器的工作原理是先对源端文件进行全量扫描,再从中筛选出需要迁移的文件。因此,当源端文件数量较多时,全量扫描会耗费较长时间。

  • 文件名过滤器作用于源文件的绝对路径。

文件名过滤

文件名:设置文件名过滤器,以精准控制需要迁移的文件范围。

支持设置包含排除两种过滤规则,规则采用RE2正则表达式语法(仅支持部分语法)。

规则示例

  • .*\.jpg$表示以.jpg结尾的所有文件。

  • ^file.*默认表示根目录下以file开头的所有文件。

    如果源数据地址设置了前缀,例如源数据地址前缀为data/to/oss/,则需要使用^data/to/oss/file.*来匹配指定前缀下以file开头的所有文件。

  • .*/picture/.*表示匹配某一级为picture的子目录。

过滤规则说明

  • 包含规则:符合规则的文件都会被迁移,如果有多条规则,符合任意一个条件的文件都会被迁移。

    例如2个文件picture.jpgpicture.png,设置一条包含规则过滤.*\.jpg$,此时只会迁移picture.jpg文件,如果同时也设置了包含规则过滤.*\.png$,则2个文件都会被迁移。

  • 排除规则:符合规则的文件都不会被迁移,如果有多条规则,符合任意一个条件的文件都不会被迁移。

    例如2个文件picture.jpgpicture.png,设置一条排除规则过滤.*\.jpg$,此时只会迁移picture.png,如果同时也设置了排除规则过滤.*\.png$,则2个文件都不会被迁移。

优先级:排除规则优先。当一个文件既在排除规则中又在包含规则中,则文件不会被迁移。

例如文件file.txt,设置排除规则过滤.*\.txt$文件,并同时设置包含规则过滤file.*,则此时file.txt文件不会被迁移。

文件修改时间过滤

文件修改时间:根据文件的最后修改时间来筛选需要迁移的文件。

系统将只迁移最后修改时间在指定范围内的文件。

  • 仅指定开始时间:例如设置为"2019-01-01 00:00:00",则仅迁移最后修改时间晚于或等于该时间点的文件。

  • 仅指定结束时间:例如设置为"2022-01-01 00:00:00",则仅迁移最后修改时间早于或等于该时间点的文件。

  • 同时指定起止时间:例如开始时间为"2019-01-01 00:00:00",结束时间为"2022-01-01 00:00:00",则迁移此时间区间内(含边界)的所有文件。

任务调度

设置迁移任务的启动和执行计划,支持立即执行、指定时间执行和周期性调度。

调度说明

  1. 正在迁移中的任务,在下一个指定时间前仍未结束本轮迁移,则会在本轮迁移结束后,自动顺延至下一个指定时间启动任务,直至完成指定次数的迁移。

  2. 迁移任务并发数量限制:超出迁移任务并发数量限制后可能导致定时任务调度无法按预期执行。

执行方式

  • 立即执行:立即执行当前任务。

  • 指定执行时间:指定任务执行期间每天的执行时间段。默认情况下,任务将在指定的起始时间启动,在指定的停止时间暂停。

  • 周期调度:通过调整执行频率和最大执行轮次来启动任务。

    • 执行频率:支持以每小时、每天、每周、一周中某些天、自定义等5种频率,具体请查看执行频率详解

    • 最大执行轮次:任务从启动到结束为一轮次,在该轮次限制内自动调度,超过该轮次限制不再自动调度,但仍能手动调度。最大执行轮次限制请参考控制台提示。

可随时手动启动和暂停任务,不受自定义执行时间的影响。

执行频率详解

执行频率参考如下:

执行频率

说明

示例

每小时

选择以每小时为频率,可搭配最大执行轮次一起使用。

当前时间为8:05分,指定每小时为频率,执行3次任务,则会在下一个整点9点钟开始第一次任务。

  • 若任务在下一个整点前结束,则会在下一个整点10点钟开始第二次任务,以此类推直到完成指定次数的迁移。

  • 若任务在下一个整点尚未结束,在当日12:30分结束,则会在下一个整点13点钟开始第二次迁移,以此类推直到完成指定次数的迁移。

每天

选择以每天为频率时,需设置0~23小时中任意整点时间启动任务,可搭配最大执行轮次一起使用。

当前时间为8:05分,指定每天10点,执行5次,会在当天10点开始第一次任务。

  • 若任务在次日10点前结束,则会在次日10点开始第二次任务,以此类推直到完成指定次数的迁移。

  • 若任务在次日10点前尚未结束,在次日12:05分结束,则会在第三日的10点开始第二次任务,以此类推直到完成指定次数的迁移。

每周

选择每周时,需指定周内任意一天,并设置0~23小时中任意整点时间启动任务,可搭配最大执行轮次一起使用。

当前时间为周一8:05分,指定每周一的10点,执行10次,则会在当天10点时开始第一次任务

  • 若任务在下周一10点前结束,则会在下周一10点开始第二次任务,以此类推直到完成指定次数的迁移。

  • 若任务在下周一10点前尚未结束,实际在下周一12:05分结束,则会在下下周的10点开始第二次任务,以此类推直到完成指定次数的迁移。

一周中某些天

选择一周中某些天时,支持选择周内任意几天,并设置0~23小时中任意整点时间启动任务

当前为周三8:05,指定每周一、三、五的10点,则会在当天的10点时开始第一次任务。

  • 若任务在周五10点前结束,则会在周五10点开始第二次任务,以此类推直到完成指定次数的迁移。

  • 若任务在周五10点前尚未结束,实际在下周一12:05分结束,则会在下周三的10点开始第二次任务,以此类推直到完成指定次数的迁移。

自定义

使用Cron表达式自定义设置任务启动时间

说明

Cron表达式由6个字段组成,每个字段之间使用空格分隔,依次表示任务的执行时间规则:秒 分钟 小时 日 月 星期

以下Cron表达式示例仅供参考,更多请参照Cron表达式生成器:

  • 0 0 * * * *:表示每小时的00秒执行任务。

  • 0 0 0/1 * * ?:表示每隔1小时执行任务(最小间隔1小时)。

  • 0 0 12 * * MON-FRI:表示每周一至周五的12点执行任务。

  • 0 30 8 1,15 * *:表示每月1日和15日的830分执行任务。

迁移报告

迁移报告提供详细的迁移结果信息,包括成功、失败和跳过的文件列表,帮助您了解迁移任务的执行情况。

报告文件类型

根据任务执行情况,生成的迁移报告文件分为总迁移文件列表、迁移失败文件列表和迁移跳过文件列表三种。

迁移报告文件命名规则

  • uid@jobid@runtimeid_total_list_n,代表总迁移文件列表,可能会有多个,其中 n 是一个大于等于 0 的正整数

  • uid@jobid@runtimeid_failed_list_n,代表迁移失败文件列表,可能会有多个,其中 n 是一个大于等于 0 的正整数

  • uid@jobid@runtimeid_skipped_list_n,代表迁移跳过文件列表,可能会有多个,其中 n 是一个大于等于 0 的正整数

报告字段说明

迁移报告文件所含字段内容描述了文件(对象)从源到目的地迁移过程中的各种属性,具体包括:

字段名称

字段含义

源文件名

表示源文件的名称,url编码

目的文件名

表示目标文件的名称,url编码

源文件大小

表示源文件的大小

目的文件大小

表示目标文件的大小

源文件MD5

表示源文件的MD5哈希值,源文件返回MD5时才会有

目的文件MD5

表示目标文件的MD5哈希值

源文件CRC64

表示源文件的CRC64哈希值,源文件返回CRC64时才会有

目的文件CRC64

表示目标文件的CRC64哈希值

源文件最后修改时间

表示源文件的最后修改时间

目的文件最后修改时间

表示目标文件的最后修改时间

源对象版本ID(只有多版本迁移涉及)

仅在多版本迁移中使用,用于指示源对象的版本ID

目的对象版本ID(只有多版本迁移涉及)

仅在多版本迁移中使用,用于指示目标对象的版本ID

迁移开始时间

记录文件迁移的开始时间

迁移结束时间

记录文件迁移的结束时间

是否异常迁移(false:正常,true:异常)

一个布尔标志,指示迁移是否异常(false表示正常,true表示异常)

异常原因

提供异常情况的原因说明

获取迁移报告

  1. 登录在线迁移控制台

  2. 在左侧导航栏,选择在线迁移服务 > 迁移任务

  3. 在迁移任务列表中,单击对应任务的管理,进入任务的详情页面。

    • 若创建任务时选择不推送报告,在任务详情页 >历史,单击生成迁移报告。待迁移报告生成完成后,可单击下载迁移报告到本地。

    • 若创建任务时选择推送报告,在任务详情页 >历史,待报告生成完成,可点击下载迁移报告到本地。

    说明
    • 在数据迁移任务完成之前,生成的迁移报告内容可能不完整。如需获取完整的迁移报告,请在任务迁移完成后点击下载。

    • 迁移报告仅供参考,以实际迁移完成的内容为准。

    迁移报告生成后将被存储在指定的对象存储(OSS)Bucket中。根据任务执行情况,文件夹目录层级的前缀格式如下所示:

    OSS://<bucket>/<prefix>/aliyun_import_report/<uid>/<jobid>/<runtimeid>/total_list/
    OSS://<bucket>/<prefix>/aliyun_import_report/<uid>/<jobid>/<runtimeid>/failed_list/
    OSS://<bucket>/<prefix>/aliyun_import_report/<uid>/<jobid>/<runtimeid>/skipped_list/

    路径参数说明

    字段名称

    字段含义

    bucket

    目的端bucket

    prefix

    目的数据地址指定的迁移目录前缀

    uid

    用户主账号ID

    jobid

    任务ID(任务详情页 >详情获取)

    runtimeid

    任务执行记录ID(任务详情页 >历史获取)

  4. 对象存储OSS控制台,找到目的bucket下迁移报告文件,您可以下载这些文件并查看详细的文件列表,推荐使用图形化管理工具ossbrowser 2.0(预览版)ossutil工具查看

迁移日志

迁移过程的日志可推送至日志服务(SLS),详细记录每个文件在迁移任务中的处理情况,包括迁移成功、失败及跳过的记录。通过迁移日志,可以实时监控迁移进度、快速定位问题文件,并对迁移过程进行审计和故障排查。

日志类型

在线迁移服务会在日志服务SLS中创建名称为aliyun-oss-import-log-阿里云账号ID-当前控制台地域Project,例如aliyun-oss-import-log-137918634953****-cn-hangzhou。在此Project中可以查看迁移任务的日志,其中包含如下两种日志:

  • drs_import_success_log:迁移成功日志

  • drs_import_fail_log:迁移失败日志

日志字段说明

迁移日志中的主要字段说明如下表所示。

字段名称

字段含义

JobName

迁移任务的名称

JobId

迁移任务ID

Region

当前控制台所在地域

Status

迁移文件的状态。包括如下三种状态:

  • succeed:成功

  • skipped:跳过

    迁移跳过包括如下两种场景:

    • 源文件迁移时不存在(已被删除)

    • 根据覆盖策略,被判定为跳过

  • failed:失败

UserId

用户的UID

ExecuteId

执行记录ID

StartTime

迁移开始的时间

EndTime

迁移结束的时间

ListTime

该文件被扫描到的时间

Time

当前的时间

SrcObjectName

源端文件名称。以Src开头的是源端相关字段

文件名为URL编码处理后的格式,例如docs%2Fmy.docir%2Fexample.log

SrcObjectSize

源端文件大小

DestObjectName

目的端文件名称。以Dest开头的是目的端相关字段

文件名为URL编码处理后的格式,例如docs%2Fmy.docir%2Fexample.log

DestObjectSize

目的端文件大小

日志推送选项

您可以将迁移日志实时推送到阿里云日志服务(SLS)中进行查询与分析。在SLS控制台,您可以通过任务ID、文件名等关键词进行精确检索,以监控迁移过程或排查问题。

重要
  • 日志推送功能需要在创建迁移任务时开启(选择推送仅推送错误日志)。若在创建时选择不推送,则无法在SLS中查看该任务的日志。

  • 迁移日志不保证完整性,请不要将迁移日志用于迁移的完整性检查。

  • 迁移日志仅供您参考,最终迁移结果请以目的端的实际文件为准。

  • 不推送(默认):不推送迁移日志

  • 推送:将迁移日志推送至SLS,可在SLS上查看迁移日志

  • 仅推送文件错误日志:仅将错误迁移日志推送至日志服务SLS,可在SLS上查看错误迁移日志

    在选择推送仅推送文件错误日志前,请确保您已完成以下操作,否则可能导致迁移任务异常:

    • 已开通SLS服务

    • 已在日志服务授权项授权页面中同意授权

当选择推送仅推送文件错误日志时,在线迁移服务会在日志服务SLS中创建名称为aliyun-oss-import-log-阿里云账号ID-当前迁移服务部署地域的Project,例如aliyun-oss-import-log-137918634953****-cn-hangzhou。

  • 日志服务授权:此选项在迁移日志选择推送仅推送文件错误日志时显示。

    单击授权进入云资源访问授权页面,页面会对应创建AliyunOSSImportSlsAuditRole角色,并对角色做授权,请单击同意授权完成授权。

迁移任务管理

迁移任务状态

了解各种任务状态有助于您更好地管理和监控迁移过程。

  • 已创建:迁移任务已创建。用户可手动点启动或者等待到达指定的起始时间,系统启动任务

  • 启动:任务创建成功且已启动,等待调度

  • 准备:数据预处理中

  • 迁移:数据正在迁移中,请您耐心等待

  • 删除中:迁移任务正在删除中,待删除完成后,已删除的迁移任务将从任务列表中移除

  • 暂停:迁移任务已暂停

  • 关闭:迁移任务正在关闭中,待关闭完成后,迁移任务将会转为结束状态

  • 结束:迁移任务已结束。任务结束不代表全部迁移成功,详情请查看迁移报告

  • 中断:迁移任务异常中断

失败文件重试

当迁移任务结束后,如果报告中显示有部分文件迁移失败,您可以创建一个仅针对这些失败文件进行重试的新子任务。

操作步骤

  1. 登录在线迁移控制台

  2. 在顶部菜单栏,选择任务所在的地域。

  3. 在左侧导航栏,选择在线迁移服务>迁移任务

  4. 在迁移任务列表中,单击对应任务操作列的管理,进入任务详情页面。

  5. 历史区域下单击对应任务操作列的重试失败文件

  6. 修改子任务名称,单击下一步

  7. 确认迁移带宽、每秒迁移文件数、覆盖方式等参数无误后,单击下一步

  8. 单击确定,子任务会启动并且重新迁移失败的文件。