本文介绍数据迁移的注意事项和操作步骤。
注意事项
使用在线迁移服务迁移数据时需要注意以下事项:
在线迁移服务使用源站存储服务提供商公开的标准接口来访问源数据,其行为依赖于源站存储服务提供商的具体实现。
在线迁移会占用源地址和目的地址的资源,可能会影响业务正常运行。若您的业务比较重要,请提前做好评估后对迁移任务设置限速,或在空闲时间启动迁移任务。
在线迁移前会检查源地址和目的地址的文件,但是若您源和目的地址有相同文件名的文件,且在迁移任务中配置了覆盖方式为覆盖,迁移时会直接覆盖目的地址的文件。若两个文件内容不同,必须更改文件名或做好备份。
在线迁移会保留源文件的最后修改时间属性,如果目的Bucket设置了生命周期规则,且迁移后文件处于该生命周期规则生效的时间范围内,则该文件可能会在规则生效时被删除或转为指定的归档类型。
迁移限制
在线迁移目前仅支持单次迁移单个Bucket数据,无法将整个账号的数据一次性迁移。
不支持金融云、政务云的数据迁移。
若您迁移的源地址中设置了静态网站托管,数据迁移时会额外扫描出实际不存在的目录。例如上传文件myapp/resource/1.jpg,开启静态网站托管后,迁移服务扫描会得到3个对象,分别为myapp/、myapp/resource/和myapp/resource/1.jpg,其中myapp/和myapp/resource/会迁移失败,但不影响myapp/resource/1.jpg的正常迁移。
若您迁移的源地址中有软链接,数据迁移时,会直接迁移软链接对应的实际文件或目录,并以软链接的名称命名。例如:
当软链接指向文件时:源地址A有个软链接a,对应的实际文件是b.jpg,则迁移时会将b.jpg迁移到目的地址,并命名为a。
当软链接指向目录时:源地址B有个软链接b.txt,对应的实际目录是c/,则迁移时会将c/迁移到目的地址,并命名为b.txt/。
关于软链接的详细信息,请参见软链接。
说明迁移文件中包含软链接,会导致迁移完成量大于预估量,迁移进度大于100%的情况,请以实际迁移量为准。
源地址中有循环软链接(例如:a>b,b>c,c>a,或目录类型的软链接指向其上层目录),则迁移时会永远扫描不完,导致任务数据量一直增长,建议您使用
unlink
命令移除循环软链接。
步骤一:创建源地址
使用创建的RAM用户登录阿里云数据在线迁移控制台。
说明跨账号迁移时,可选择源或目的阿里云账号生成的任一RAM用户登录。
在左侧导航栏,选择
,单击创建数据地址。在创建数据地址面板,配置如下参数,并单击确定。
参数
是否必选
说明
数据类型
是
选择OSS。
数据名称
是
输入3~63位字符。不支持短划线(-)和下划线(_)之外的特殊字符。
数据所在区域
是
选择源地址所在的地域,例如华东1(杭州)。
开通并使用传输加速
否
在线迁移服务使用OSS的传输加速服务,需要开通Bucket的传输加速服务。开启传输加速后,会在30分钟内生效,请在30分钟后再创建迁移任务。
重要开启了传输加速的Bucket会收取传输加速费用。关于传输加速的更多信息,请参见传输加速。
OSS Endpoint
是
根据您的数据所在区域,选择一个Endpoint。关于Endpoint的具体信息,请参见访问域名。
重要当OSS的数据地址使用的是内网Endpoint时,如果创建迁移任务时使用该地址作为源地址,则目标地址仅可以选择同地域的NAS或OSS的数据地址。
AccessKey Id
是
输入创建的RAM用户的AccessKey,用于OSS进行身份识别,确认该用户是否有读取源数据的权限。
说明如果需要跨账号迁移数据,此处请填写源阿里云账号生成的RAM用户AccessKey。
AccessKey Secret
是
OSS Bucket
是
选择或输入待迁移数据所在的存储桶(Bucket)名称。
OSS Prefix
否
数据路径前缀。
指定前缀:您可以设置数据路径前缀迁移部分数据。格式要求不能以正斜线(/)开头,必须以正斜线(/)结尾,例如
data/to/oss/
。不指定前缀:不设置数据路径前缀时,会将源Bucket所有数据进行迁移。
步骤二:创建目的地址
在左侧导航栏,选择
,单击创建数据地址。在创建数据地址面板,配置如下参数,然后单击确定。
参数
是否必选
说明
数据类型
是
选择OSS。
数据名称
是
输入3~63位字符。不支持短划线(-)和下划线(_)之外的特殊字符。
数据所在区域
是
选择目的地址所在的地域。
开通并使用传输加速
否
在线迁移服务使用OSS的传输加速服务,需要开通Bucket的传输加速服务。开启传输加速后,会在30分钟内生效,请在30分钟后再创建迁移任务。
重要开启了传输加速的Bucket会收取传输加速费用。关于传输加速的更多信息,请参见传输加速。
OSS Endpoint
是
根据您目的数据所在区域,选择一个Endpoint。关于Endpoint的具体信息,请参见访问域名。
AccessKey Id
是
输入创建的RAM用户的AccessKey,用于OSS进行身份识别,确认该用户是否有写入迁移数据的权限。
说明如果需要跨账号迁移数据,此处请填写目的阿里云账号生成的RAM用户的AccessKey。
AccessKey Secret
是
OSS Bucket
是
选择或输入迁移目的所在的存储桶(Bucket)名称。
OSS Prefix
否
数据路径前缀。
指定前缀:您可以设置数据路径前缀将源数据迁移至指定目录下。格式要求不能以正斜线(/)开头,必须以正斜线(/)结尾,例如
data/to/oss/
。不指定前缀:不设置数据路径前缀时,会将源数据迁移至目的Bucket的根目录。
步骤三:创建迁移任务
在左侧导航栏,选择
,单击创建迁移任务。在创建迁移任务面板,阅读迁移服务条款协议,选中我理解如上条款,并开通数据迁移服务,单击下一步。
在弹出的费用提示对话框,单击确认,继续创建。
在配置任务页签,配置如下参数,单击下一步。
参数
是否必选
说明
任务名称
是
输入3~63位字符。不支持短划线(-)和下划线(_)之外的特殊字符。
源地址
是
选择已创建的源地址。
目的地址
是
选择已创建的目的地址。
指定目录
否
设置迁移时包含或排除指定目录下的文件和子目录。
不过滤:不过滤迁移目录。
排除:迁移时,不迁移排除目录下的文件和子目录。
例如,当您只想迁移
root_dir/
下除了root_dir/bad_sub1/
和root_dir/bad_sub2/
之外的所有目录时,您可以选择排除模式,然后添加两项bad_sub1/
和bad_sub2/
。包含:迁移时,只迁移包含目录下的文件和子目录。
例如,当您只想迁移
root_dir/
下的root_dir/good_sub1/
和root_dir/good_sub2/
这两个目录时,您可以选择包含模式,然后添加两项good_sub1/
和good_sub2/
。
说明目录中仅支持数字和大小写字母,除此之外的特殊字符可能会导致迁移失败。
目录不能以正斜线(/)或者反斜线(\)开头,并且目录中不能出现两个正斜线(//),两个半角句号(..)和半角双引号("),提交的所有目录总字符长度不能超过10 KB。
目录要以正斜线(/)结尾,例如
docs/
。最多可设置20个排除目录或者包含目录。
迁移方式
是
选择迁移数据的方式。
全量迁移:根据迁移起点时间迁移一次指定迁移起点时间之后的全量数据,数据迁移完成后任务结束。
如果迁移完成后源数据有变化,您可以再次提交全量迁移任务,系统将仅迁移变化的数据。
增量迁移:按设定的增量迁移间隔和增量迁移次数执行迁移任务。
首次根据迁移起点时间迁移指定迁移起点时间之后的全量数据。首次迁移完成后,按照增量迁移时间间隔执行增量迁移任务,将源地址从前次迁移任务开始后到下次迁移开始前新增或修改的增量数据迁移至目的地址。
如果配置的增量迁移次数是N,则执行1次全量迁移,之后执行N-1次增量迁移。
例如:设置迁移间隔1小时,迁移次数5次,迁移起点时间为2019-03-05 08:00,当前时间为2019-03-10 08:00。则首次迁移最后修改时间在2019-03-05 08:00~2019-03-10 08:00之间的文件。假设迁移任务1小时完成,第二次迁移则从2019-03-10 10:00(迁移1小时,迁移间隔1小时)开始,迁移最后修改时间在2019-03-10 08:00~2019-03-10 10:00之间的文件,共进行1次全量迁移和4次增量迁移。
重要全量迁移和增量迁移均会在每次迁移开始前,对源地址和目的地址的文件进行对比。如果迁移同名文件,则以下三种情况的目标地址文件会被覆盖。
源地址文件与目标地址文件的Content-Type不一致,目标地址文件会被覆盖。
源地址文件的最后修改时间晚于目标地址文件的最后修改时间,目标地址文件会被覆盖。
源地址文件与目标地址文件的大小不一致,目标地址文件会被覆盖。
迁移文件起点时间
是
选择迁移文件的起点时间。
迁移全部:迁移所有时间的文件。
指定时间:只迁移指定时间之后创建或修改的文件。
例如指定时间设置为2018-11-01 08:00:00,则只迁移2018年11月01日8点之后创建或修改的文件,在这个时间之前创建或修改的文件被忽略。
增量迁移间隔
是(针对增量迁移)
默认值1小时,最大值24小时。
增量迁移次数
是(针对增量迁移)
默认值1次,最大值30次。
文件覆盖方式
是
源地址中文件和目的地址中文件同名时,迁移过程中执行的覆盖方式。包括如下选项:
最后修改时间优先:对于同名文件,判断两个文件的LastModified,即最后修改时间。
如果源地址中文件的LastModified晚于目的地址中文件的LastModified,则执行覆盖。
如果源地址中文件的LastModified早于目的地址中文件的LastModified,则执行跳过。
如果两个文件的LastModified相同,则继续判断两个文件的Size和Content-Type是否均相同。
如果两个文件的Size和Content-Type均相同,则执行跳过;如果两个文件的Size或者Content-Type中存在至少一个不同,则执行覆盖。
条件覆盖:对于同名文件,判断两个文件的LastModified、Size和Content-Type是否相同。
如果两个文件的LastModified、Size和Content-Type均相同,则执行跳过。
如果两个文件的LastModified、Size和Content-Type中存在至少一个不同,则执行覆盖。
全覆盖:对于同名文件,不进行任何判断,直接执行覆盖。
不覆盖:对于同名文件,不进行任何判断,直接执行跳过。
警告条件覆盖或最后修改时间优先无法严格保证一定不会覆盖更新的文件,存在旧文件覆盖新文件的风险。
若您选择条件覆盖或最后修改时间优先覆盖策略时,请务必确保源端文件能返回LastModified、Size、Content-Type等信息,否则覆盖策略可能失效,产生非预期的迁移结果。
在性能调优页签的数据预估区域,填写待迁移存储量和待迁移文件个数。
说明为了迁移任务的顺利进行,请尽量准确进行数据预估。更多信息,请参见预估迁移数据。
可选:在性能调优页签的流量控制区域,设置限流时间段和最大流量,然后单击添加。
说明为了不影响您在线业务的访问,建议您根据业务访问的波峰和波谷来设置迁移时的限流时间段和最大流量。
单击创建,等待迁移任务完成。
步骤四:校验数据
迁移服务仅负责数据的迁移,无法保证数据的一致性和完整性。迁移任务完成后,请您全量校验迁移的数据,务必自行做好源端和目的端数据一致性校验。
请您务必在迁移任务完成后,校验目的端迁移数据。您在删除源数据前,未校验目的端迁移数据无误,导致数据丢失所引起的一切损失和后果均由您自行承担。