更新时间:2024-10-15 GMT+08:00

步骤四:对象校正

修改后的语句将直接在目标数据库上运行,您需避免使用:导致其他表和其他对象类型丢失的语句,以及影响目标数据库性能的语句,如消耗过多CPU或内存的语句。

校正转换失败对象

  1. 登录UGO控制台。
  2. 单击左侧导航栏结构迁移 > 对象迁移,显示迁移项目列表。
  3. 单击待迁移项目的“操作 > 迁移”,进入迁移项目,选择“对象校正”页签。

    图1 对象校正
    • 显示Schema名称、对象名称、对象类型、转换状态和迁移状态等信息。
    • 迁移对象列表支持按“对象类型”、“Schema”、“转换状态”、“迁移状态”、“对象名称”、“SQL内容包含”、“SQL内容不包含”、“转换错误包含”“迁移错误包含”筛选。其中“对象名称”支持模糊查询;“SQL内容包含”、“SQL内容不包含”可筛选SQL原语句中包含或不包含指定关键词的对象,“SQL内容包含”、“SQL内容不包含”最多各支持三个关键词,每个关键词最多10个字符,若项目中对象数量较多,当前查询返回较慢。
    • 使用“Schema”作为筛选条件时,如果“Schema”对象名称中含有空白字符,无法筛选出结果。
    • TABLE、INDEX等对象存在被拆分为多个子对象的情况。
      • 拆分子对象功能用于控制对象多种特性的迁移顺序。
      • 如需查看全量子对象的状态和内容,需在父类对象处单击“查看详情”
      • 子对象拆分依赖UGO的转换功能,当出现解析脚本出错和转换脚本出错的情形时,不会拆分子对象。
      • 被拆分出子对象的对象状态与其他对象会有所不同:
        • 当父对象转换状态为成功,则子对象转换状态都为成功。
        • 当父对象转换状态为失败,则至少存在一个子对象转换状态为失败。
        • 当父对象转换状态为手工修改,则至少有一个子对象转换状态为手工修改。
        • 当父对象在迁移后,迁移状态为成功,则子对象迁移状态为成功或是忽略。
        • 当父对象迁移后迁移状态为失败,则至少存在一个子对象迁移状态为失败。
        • 当子对象全被忽略迁移,父对象也将会被忽略迁移。

  4. 单击待修改对象操作 > 查看详情,进入对象详细信息页面。

    数据库对象请按管理、存储、代码、作业对象的顺序进行对象校正。

  5. 可查看转换或迁移报错信息。若有修改建议,也同时展示。

    • “转换状态”“失败”时,显示“转换错误”
    • “迁移状态”“失败”时,显示“迁移错误”

      当目标库为GaussDB时,数据库对象命名需要满足约束:非时序表长度不超过63个字节,时序表长度不超过53个字符,以字母或下划线开头,中间字符可以是字母、数字、下划线、$、#,如果对象名不满足该约束,会导致迁移失败。

    图2 对象详细信息-转换错误

  6. 可对SQL语句进行修改。

    • 导出:将目标端代码以.sql格式导出。命名为:对象名称.sql。
    • 导入:可直接导入修改后的sql文件,上传sql文件将自动保存所有更改。
    • 比较:默认关闭。开启则会比较展示源端与目标端的详细代码对比,此时SQL语句不可编辑。
    • 复制:可单击源端或目标端后的,将SQL语句复制至剪贴板。
    • 全屏:可单击目标端后的,将目标端编辑框全屏展示,便于编辑修改。全屏时可单击图标退出全屏,或者单击编辑框后使用键盘Esc退出。
    • 更新依赖关系数据:如果启用,还将验证所有从属对象。默认启用,也可关闭。
    • 重置:已修改的代码,在还未保存前,可单击“重置”,清除所有修改。若已保存,只能回滚至历史修改代码。
    • 保存:保存对目标端代码的修改。并会形成记录保存在“修改历史”

  7. 修改后单击“保存”,会形成修改记录,单击“修改历史”按钮,查看修改历史。

    列表展示修改时间,单击对应时间后的“回滚”,可以回滚至最近时间的修改记录。

  8. 单击历史ID前的下拉图标,对比展示修改记录。

    图3 修改历史

  • Oracle为源的迁移任务,DB_LINK类型的对象只支持转换,不支持迁移,迁移状态默认为“忽略”。
  • 修改后的对象,转换状态由“失败”变为“手工修改”

批量语句更新

  1. 登录UGO控制台。
  2. 单击左侧导航栏结构迁移 > 对象迁移,显示迁移项目列表。
  3. 单击待迁移项目的“操作 > 迁移”,进入迁移项目,选择“对象校正”页签。
  4. 单击“批量语句更新”,进入批量修改页面。

    图4 批量修改

  5. 单击“搜索结果”页签右侧操作列“详情”,进入对象详细信息页面。

    显示Schema名称、对象类型、对象名称、拆分对象名称、转换状态和迁移状态。

  6. 可查看转换或迁移报错信息。若有修改建议,也同时展示。

    • “转换状态”“失败”时,显示“转换错误”
    • “迁移状态”“失败”时,显示“迁移错误”
    图5 对象详细信息

    单击进入对象校正页面。依据目标数据库SQL显示源端与目标端的SQL语句。

    可单击源端或目标端后的,将SQL语句复制至剪贴板。

  7. 选定待修改SQL关键词或错误字符串后,返回“批量修改”页面,将信息填入对应的位置。

    图6 批量修改
    表1 批量搜索关键词参数说明

    参数

    是否必选

    说明

    搜索模式

    • 正常:简单搜索文本类型。
    • 正则表达式:正则表达式搜索文本类型。
      说明:
      • 正则表达式的错误使用可能会对SQL进行不可预知的更改,请慎用。
      • 正则表达式的规范,可参见这里

    SQL关键词

    可对“查看SQL”中目标SQL语句中的所有关键词进行搜索。

    例如:选择正则表达式,输入DEFAULT*,搜索时会在待修改列表“查看SQL”的目标SQL语句中查找结构为“DEFAULT任意SQL”的语句。

    错误字符串1

    可对“查看SQL”“转换/迁移错误”提示信息的内容进行搜索。

    错误字符串2

    可对“查看SQL”“转换/迁移错误”提示信息的内容进行补充搜索。

    • 参数填写完成后,单击搜索,界面下方会展示满足所有参数条件的对象。
    • 所有错误字符串,均可在如图5“转换/迁移错误”中查看。
    • 如果UGO目标数据库连接的用户与Schema的所有者不相同,则UGO服务将更改schema所有者的名称与用户相同。

  8. 单击“搜索”,可在右侧看到搜索出的符合要求的待修改对象列表。

    图7 搜索结果列表

    支持按照Schema、对象类型、转换状态、迁移状态搜索。

    单击“匹配结果”可查看具体的匹配结果信息。

  9. 将需要替换的SQL语句输入右上方“替换为”的输入框中,单击“替换”
  10. 替换完成后,单击批量语句更新 > 历史记录,进入历史记录页面,可以看到历史批量替换记录。

    图8 历史记录
    表2 历史记录参数说明

    参数

    说明

    历史ID

    倒序显示修改次数。

    开始时间

    修改开始时间。例如:2021/09/15 16:28:15 GMT+08:00。

    结束时间

    修改完成时间。例如:2021/09/15 16:28:16 GMT+08:00。

    SQL关键词

    搜索时输入的查找SQL脚本关键字。

    替换SQL

    用户输入的替换原“SQL语句”的脚本或关键词。

    操作

    • 回滚:回退修改。
    • 查看列表:查看该次修改的数量及具体Schema、对象名称、对象类型。

      单击“查看SQL”,可查看修改后的详细SQL语句。

  11. 单击“查看列表”,进入历史记录界面,单击操作列“查看SQL”,可查看替换前后的SQL语句。

    图9 历史记录