数据库和应用迁移 UGO-步骤四:启动语法转换并进行对象校正:操作步骤
操作步骤
- 完成步骤四后,单击“下一步”,进入语法转换页面。
- 单击“启动”,进行迁移。页面显示对象类型、总数、转换成功、转换失败等信息以及转换开始时间与结束时间。
图1 语法转换
- 页面以进度条和百分比显示迁移进度。
- 单击“下载报告”,选择所需报告单击“下载”,下载至本地供用户分析。
- 转换错误报告:该报告介绍了无法等价转换为目标库语法的源库对象详情。
- 匿名化转换错误报告:该报告通过匿名方式介绍了无法等价转换为目标库语法的源库对象。
- 转换风险报告:该报告介绍了基于用户所选的配置项,冒一定风险转换为目标库语法的源库对象,但转换后存在一定的功能差异。
- 匿名化转换风险报告:对象信息脱敏后的转换风险报告。该报告通过匿名方式介绍了基于用户所选的配置项,冒一定风险转换为目标库语法的源库对象,但转换后存在一定的功能差异。
- 转换后的SQL解析失败报告:该报告介绍了无法使用目标库语法解析转换脚本的源库对象。
- 匿名化转换后的SQL解析失败报告:该报告通过匿名方式介绍了无法使用目标库语法解析转换脚本的源库对象。
- 单击“详情”,有转换失败的对象可进入对象校正页面查看对象类型的具体信息。
- 查看迁移历史详情信息,请见查看转换历史详情。
- 单击“暂停”,流程将被暂停,用户可以到转换历史中去查询之前执行过的迁移任务。
- 单击“启动”,将会进行一次新的转换流程。单击“恢复”,将继续进行转换流程。
再次单击“启动”,将再次进行语法转换,会覆盖上一次转换的全部转换数据,包含手工修改的对象,请谨慎操作。如确需重新转换,单击“确认”。
- 单击“下一步”,对象校验页面显示待验证的Schema、对象名称、对象类型等信息。
图2 对象校正
- 可依据具体对象名称进行搜索,也可依据Schema、转换状态及迁移状态等进行筛选。
- 仅当源数据库为Oracle、MySQL、PostgreSQL时,若“转换状态”为“失败”,可单击具体失败项的对象名称,查看“对象迁移成功率”。
- 可对选中的具体对象单击“跳过迁移”,忽略不想验证迁移的对象。
- 重新转换:可选择需要重新转换的对象类型或对象,进行单独重新转换,不会覆盖其他对象的SQL修改。
单击进入“重新转换”页面,选定对象后单击“重新转换”,可返回步骤2重新启动语法转换。
Mysql为源,table对象转换后结果将会展示转换拆分后的子对象create table和create index;Oracle为源,table对象转换后结果将会展示转换拆分后的子对象create table和foreign_key,两者都可以选择子对象进行单独的迁移或是修改,拆分后的子对象数目不计入转换总对象数量当中。
- 拆分子对象是为了控制转换后父类对象部分子对象的迁移,所以页面展示的子对象并不是全量子对象,如需查看全量子对象的状态和内容需点击父类对象查看详情。
- 子对象拆分依赖UGO的转换功能,当出现解析脚本出错和转换脚本时出错的情形时无法进行转换,不会拆分子对象。
- 父对象与其下所有子对象的状态如下:当父对象转换状态为成功,则子对象转换状态都为成功;当父对象转换状态为失败,则子对象转换状态至少存在一个失败;当父对象转换状态为手工修改,至少有一个子对象转换状态为手工修改;当父对象迁移后若迁移状态为成功,则子对象迁移状态为成功或是忽略;当父对象迁移后迁移状态若为失败,则子对象迁移状态至少存在一个失败;当子对象全被忽略迁移,父对象也将会被忽略迁移。
对于“迁移状态”为“成功”的对象,如果重新进行转换,再次迁移和验证将出现错误“对象已存在于目标数据库上”。为避免这种情况,请手动从目标数据库中删除这些对象。若选择数据库对象类型,将重新转换选中类型下所有对象。
- 批量语句更新:批量语句更新支持类似问题的批量搜索和修改。如何批量语句更新,请参见批量语句更新。
- 可对选中的对象进行“修改”或“查看详情”。
- 单击“查看详情”,可查看对应对象的转换/迁移错误信息和源端、目标端以及比较的信息,也可以复制详细代码。
- 单击“修改”:可对具体对象进行逐条手工修改。如何修改,请参见修改对象校正。
- 选择可忽略的对象并单击“跳过迁移”,“迁移状态”变为“忽略”。也可以“撤销跳过”,撤销后对应状态恢复原样。
- 迁移结果注释了一些特性,可能会有功能影响,可单击“查看详情”查看详细信息。