#离线迁移
# 前提条件
- 数据源已添加完成。
- 开始步骤为评估的时候,评估已经完成。
- 源端Oracle时,目标端数据库表的列名必须全部包含在源端数据库表中,且严格区分大小写,否则将迁移失败。
- 源端MySQL时,目标端数据库表的列名必须全部包含在源端数据库表中,且目标端名称必须大写,否则将迁移失败。
- 如果源端存在全空行(discard rows)导致迁移失败,则不会保留数据文件,全空行迁移失败信息详见数据文件同级目录(YMP安装目录/tmp/)下的 discard.log。
# 功能限制
- 不支持对YashanDB的BIT类型进行迁移。
- 如果开始步骤为迁移的任务使用的schema在选择的目标库中被其他任务使用,则会在保存或下一步时提示[xxxx]在任务[yyyy]的目标端已经使用使用,请删除相关任务后重新创建。 其中,xxxx是涉及的schema名,yyyy是涉及的任务名。
- 源端是MySQL且迁移不依赖评估时,相同表名(两张表的表名仅大小写不同,如abc与ABC)不支持迁移。
- 不支持对带有单引号的schema名或表名的迁移。
- DM 不支持空lob(empty_blob() empty_clob())的迁移.
- Oracle 的空lob(empty_blob() empty_clob())迁移到YashanDB将转为NULL。
# 开始迁移
支持迁移任务运行中暂停、暂停后支持迁移恢复、暂停后支持迁移终止、暂停后展示当前进度信息。
数据冲突策略为【不截断】的任务在数据迁移阶段无法暂停。
# 迁移完成
该页面主要包含以下几个模块:
# 基础信息
展示任务的基础信息:任务名称、源库/目标库类型及版本、源库/目标库连接信息、任务开始/结束时间,备注说明及任务阶段。
# 编辑
支持修改任务的基本信息:任务名称,备注说明。
# 总体情况
展示元数据迁移的进度、数据迁移的进度、任务运行时间、任务日志、迁移报告、性能监控数据。
# 任务日志下载/查看
支持下载任务日志和在线查看任务日志。
# 迁移报告下载
迁移任务完成后,提供迁移数据离线查看的功能,在任务详情中点击迁移报告的【下载】,完成后可离线查看当前任务的迁移报告。
迁移报告摘要
支持查看任务的基本信息、任务的执行时长、元数据完成情况、性能监控情况、与数据迁移情况。
支持查看对象迁移情况、对象修改概况。
迁移报告详情
点击【详情】,支持查看各个对象的迁移信息。
支持通过迁移的对象类型、迁移结果、错误信息、元数据转换、冲突处理、转换规则、源端schema、目标端schema进行筛选、支持源端对象名、目标端对象名、源端表名、目标端表名进行搜索。
点击【查看详情】,可查看当前对象的源端对象DDL、目标端DDL或者当前对象迁移状态。
# 对象列表
支持展示迁移的对象具体详情:根据对象类型进行分类展示。
支持对象名称搜索、列条件筛选过滤和排序、表格宽度拉伸、schema的选择过滤,选中schema后支持清除(选择框悬浮显示清除图标)。
Note:
容错行数表示实时的迁移容错情况,当出现迁移重试时,容错行数会重新计数。
# 查看详情
支持点击【查看详情】,显示对象的具体DDL信息和报错信息。
- 用户可以点击【查看详情】,进行对象DDL改写操作。
- 点击【保存】视为进行保存操作。
- 该操作要求任务是迁移完成状态且对象冲突策略是覆盖策略,否则无法进行修改。
- 修改保存的对象会被视为修改后未重新迁移状态,查看详情处会有小红点进行标识。
- 迁移重试的时候会将修改过的对象一起进行重试。
# 迁移重试
- 迁移任务完成、失败、终止后,可以进行迁移重试。
- 包括所有迁移不成功(失败、待迁移、终止)的对象,需要手动选择对象范围,不能对YMP迁移任务的其它配置进行变更。
- 只会对迁移未成功的对象进行重试迁移,就算重试范围中有迁移成功的对象,也不会重试迁移。但是对于表来说,如果选择了元数据+数据迁移,元数据迁移成功之后,没有进行数据迁移(例如任务被终止),条件筛选需要勾选迁移成功的对象进行重试。重试只会继续数据迁移,不再进行元数据迁移。
- 重试过程中及完成后的任务,迁移对象范围始终不变,与首次发起迁移的范围一致;重试动作仅刷新本次重试的对象的状态,其它对象状态不刷新。
- 遵循对象冲突配置与数据截断配置。
- 重试的任务,性能监控仅记录本次重试的性能数据。
- 不同对象类型的重试策略:
- 表对象:
- 元数据迁移失败/终止,遵循元数据冲突策略;
- 数据迁移失败/终止,不重建表,只清空表后重迁数据;
- 存储过程类对象:
- 若策略为覆盖,遵循覆盖策略;
- 若策略为跳过,且YMP创建了失败对象,遵循覆盖策略;否则遵循跳过策略;
- 其它一般对象:
- 遵循元数据冲突策略;
- 表对象:
- 仅截断的任务才能数据重试,如果策略不是截断,重试按钮可点击,但对于数据迁移失败的表,不做数据重试。
# 批量修改
批量修改序列起始值
- 用户可以选择要修改的序列对象,对序列的目标端DDL的序列起始值进行修改。
- 用户可以设置序列起始值的增加量,对原本序列起始值的基础上进行增加。
- 序列起始值的增加量范围大于等于0,修改后的序列起始值不能大于序列最大值(maxValue)或者上限(9999999999999999999999999999)。
- 用户可以点击保存并覆盖将修改起始值后的序列迁移到目标数据库。
- 如果修改后的序列起始值都在合理的范围内,点击【保存并覆盖】后,会重新拉取迁移任务,将修改起始值后的序列以覆盖的形式重新迁移到目标端数据库。
- 如果修改后的序列起始值大于序列最大值(maxValue)或者上限(9999999999999999999999999999),点击【保存并覆盖】后,会弹出弹窗展示所有修改序列起始值不合理的序列,让用户进行二次确认是否继续迁移:
- 点击【确认】就会覆盖的形式继续迁移序列,起始值不合理的序列会相应执行报错,合理的序列会继续迁移完成。
- 点击【取消】就会返回修改序列起始值界面继续操作。
# 手动修复
对于元数据迁移失败的对象,用户用手动等方式在目的端做了修复动作,可到YMP迁移结果上做一次手动标记。
- 迁移完成后,在操作列可有【确认修复】对元数据迁移失败的对象状态做手动修复。
- 状态变更后,界面进度和报告会将手动修复对象记为迁移完成统计,同步刷新进度。
# 操作
# 上一步
点击【上一步】,返回到迁移配置阶段,此次迁移数据将不会保存,点击【下一步:离线迁移】将重新进行迁移。
# 迁移暂停
任务处于离线迁移中,可以进行暂停操作。 任务处于元数据迁移阶段时,暂停操作一般在10s内完成,若在表空间创建和索引创建时进行暂停操作,耗时会久一点。
# 终止迁移
任务处于离线迁移中,可以进行终止操作。 任务处于元数据迁移阶段时,终止操作一般在10s内完成,若在表空间创建和索引创建时进行终止操作,耗时会久一点。
# 恢复任务
恢复暂停的任务。
# 下一步:校验初始化
在成功完成数据离线迁移后,点击【下一步:校验初始化】,进入校验初始化页面配置。