#离线迁移

# 前提条件

  1. 数据源已添加完成。
  2. 开始步骤为评估的时候,评估已经完成。
  3. 源端Oracle时,目标端数据库表的列名必须全部包含在源端数据库表中,且严格区分大小写,否则将迁移失败。
  4. 源端MySQL时,目标端数据库表的列名必须全部包含在源端数据库表中,且目标端名称必须大写,否则将迁移失败。
  5. 如果源端存在全空行(discard rows)导致迁移失败,则不会保留数据文件,全空行迁移失败信息详见数据文件同级目录(YMP安装目录/tmp/)下的 discard.log。

# 功能限制

  1. 不支持对YashanDB的BIT类型进行迁移。
  2. 如果开始步骤为迁移的任务使用的schema在选择的目标库中被其他任务使用,则会在保存或下一步时提示[xxxx]在任务[yyyy]的目标端已经使用使用,请删除相关任务后重新创建。 其中,xxxx是涉及的schema名,yyyy是涉及的任务名。
  3. 源端是MySQL且迁移不依赖评估时,相同表名(两张表的表名仅大小写不同,如abc与ABC)不支持迁移。
  4. 不支持对带有单引号的schema名或表名的迁移。
  5. DM 不支持空lob(empty_blob() empty_clob())的迁移.
  6. Oracle 的空lob(empty_blob() empty_clob())迁移到YashanDB将转为NULL。

# 开始迁移

离线迁移

支持迁移任务运行中暂停、暂停后支持迁移恢复、暂停后支持迁移终止、暂停后展示当前进度信息。

数据冲突策略为【不截断】的任务在数据迁移阶段无法暂停。

# 迁移完成

离线迁移

离线迁移

离线迁移

该页面主要包含以下几个模块:

# 基础信息

展示任务的基础信息:任务名称、源库/目标库类型及版本、源库/目标库连接信息、任务开始/结束时间,备注说明及任务阶段。

# 编辑

支持修改任务的基本信息:任务名称,备注说明。

# 总体情况

展示元数据迁移的进度、数据迁移的进度、任务运行时间、任务日志、迁移报告、性能监控数据。

# 任务日志下载/查看

支持下载任务日志和在线查看任务日志。

# 迁移报告下载

迁移任务完成后,提供迁移数据离线查看的功能,在任务详情中点击迁移报告的【下载】,完成后可离线查看当前任务的迁移报告。

迁移报告摘要

支持查看任务的基本信息、任务的执行时长、元数据完成情况、性能监控情况、与数据迁移情况。

离线迁移

支持查看对象迁移情况、对象修改概况。

离线迁移

迁移报告详情

点击【详情】,支持查看各个对象的迁移信息。

支持通过迁移的对象类型、迁移结果、错误信息、元数据转换、冲突处理、转换规则、源端schema、目标端schema进行筛选、支持源端对象名、目标端对象名、源端表名、目标端表名进行搜索。

离线迁移

点击【查看详情】,可查看当前对象的源端对象DDL、目标端DDL或者当前对象迁移状态。

离线迁移

# 对象列表

支持展示迁移的对象具体详情:根据对象类型进行分类展示。

支持对象名称搜索、列条件筛选过滤和排序、表格宽度拉伸、schema的选择过滤,选中schema后支持清除(选择框悬浮显示清除图标)。

Note

容错行数表示实时的迁移容错情况,当出现迁移重试时,容错行数会重新计数。

# 查看详情

支持点击【查看详情】,显示对象的具体DDL信息和报错信息。

  • 用户可以点击【查看详情】,进行对象DDL改写操作。
  • 点击【保存】视为进行保存操作。
  • 该操作要求任务是迁移完成状态且对象冲突策略是覆盖策略,否则无法进行修改。
  • 修改保存的对象会被视为修改后未重新迁移状态,查看详情处会有小红点进行标识。
  • 迁移重试的时候会将修改过的对象一起进行重试。

离线迁移

# 迁移重试

retryTask

  • 迁移任务完成、失败、终止后,可以进行迁移重试。
  • 包括所有迁移不成功(失败、待迁移、终止)的对象,需要手动选择对象范围,不能对YMP迁移任务的其它配置进行变更。
  • 只会对迁移未成功的对象进行重试迁移,就算重试范围中有迁移成功的对象,也不会重试迁移。但是对于表来说,如果选择了元数据+数据迁移,元数据迁移成功之后,没有进行数据迁移(例如任务被终止),条件筛选需要勾选迁移成功的对象进行重试。重试只会继续数据迁移,不再进行元数据迁移。
  • 重试过程中及完成后的任务,迁移对象范围始终不变,与首次发起迁移的范围一致;重试动作仅刷新本次重试的对象的状态,其它对象状态不刷新。
  • 遵循对象冲突配置与数据截断配置。
  • 重试的任务,性能监控仅记录本次重试的性能数据。
  • 不同对象类型的重试策略:
    • 表对象:
      • 元数据迁移失败/终止,遵循元数据冲突策略;
      • 数据迁移失败/终止,不重建表,只清空表后重迁数据;
    • 存储过程类对象:
      • 若策略为覆盖,遵循覆盖策略;
      • 若策略为跳过,且YMP创建了失败对象,遵循覆盖策略;否则遵循跳过策略;
    • 其它一般对象:
      • 遵循元数据冲突策略;
  • 仅截断的任务才能数据重试,如果策略不是截断,重试按钮可点击,但对于数据迁移失败的表,不做数据重试。

# 批量修改

批量修改序列起始值

  • 用户可以选择要修改的序列对象,对序列的目标端DDL的序列起始值进行修改。
  • 用户可以设置序列起始值的增加量,对原本序列起始值的基础上进行增加。
  • 序列起始值的增加量范围大于等于0,修改后的序列起始值不能大于序列最大值(maxValue)或者上限(9999999999999999999999999999)。
  • 用户可以点击保存并覆盖将修改起始值后的序列迁移到目标数据库。
  • 如果修改后的序列起始值都在合理的范围内,点击【保存并覆盖】后,会重新拉取迁移任务,将修改起始值后的序列以覆盖的形式重新迁移到目标端数据库。
  • 如果修改后的序列起始值大于序列最大值(maxValue)或者上限(9999999999999999999999999999),点击【保存并覆盖】后,会弹出弹窗展示所有修改序列起始值不合理的序列,让用户进行二次确认是否继续迁移:
    • 点击【确认】就会覆盖的形式继续迁移序列,起始值不合理的序列会相应执行报错,合理的序列会继续迁移完成。
    • 点击【取消】就会返回修改序列起始值界面继续操作。 离线迁移

# 手动修复

对于元数据迁移失败的对象,用户用手动等方式在目的端做了修复动作,可到YMP迁移结果上做一次手动标记。

手动修复 手动修复

  • 迁移完成后,在操作列可有【确认修复】对元数据迁移失败的对象状态做手动修复。
  • 状态变更后,界面进度和报告会将手动修复对象记为迁移完成统计,同步刷新进度。

# 操作

# 上一步

点击【上一步】,返回到迁移配置阶段,此次迁移数据将不会保存,点击【下一步:离线迁移】将重新进行迁移。

# 迁移暂停

任务处于离线迁移中,可以进行暂停操作。 任务处于元数据迁移阶段时,暂停操作一般在10s内完成,若在表空间创建和索引创建时进行暂停操作,耗时会久一点。

# 终止迁移

任务处于离线迁移中,可以进行终止操作。 任务处于元数据迁移阶段时,终止操作一般在10s内完成,若在表空间创建和索引创建时进行终止操作,耗时会久一点。

# 恢复任务

恢复暂停的任务。

# 下一步:校验初始化

在成功完成数据离线迁移后,点击【下一步:校验初始化】,进入校验初始化页面配置。