步骤四:对象校正
修改后的语句将直接在目标数据库上运行,您需避免使用:导致其他表和其他对象类型丢失的语句,以及影响目标数据库性能的语句,如消耗过多CPU或内存的语句。
校正转换失败对象
- 登录UGO控制台。
- 单击左侧导航栏 ,显示迁移项目列表。
- 单击待迁移项目的“操作 > 迁移”,进入迁移项目,选择“对象校正”页签。
图1 对象校正
- 显示Schema名称、对象名称、对象类型、转换状态和迁移状态等信息。
- 迁移对象列表支持按“对象类型”、“Schema”、“转换状态”、“迁移状态”、“对象名称”、“SQL内容包含”、“SQL内容不包含”、“转换错误包含”“迁移错误包含”筛选。其中“对象名称”支持模糊查询;“SQL内容包含”、“SQL内容不包含”可筛选SQL原语句中包含或不包含指定关键词的对象,“SQL内容包含”、“SQL内容不包含”最多各支持三个关键词,每个关键词最多10个字符,若项目中对象数量较多,当前查询返回较慢。
- 使用“Schema”作为筛选条件时,如果“Schema”对象名称中含有空白字符,无法筛选出结果。
- TABLE、INDEX等对象存在被拆分为多个子对象的情况。
- 拆分子对象功能用于控制对象多种特性的迁移顺序。
- 如需查看全量子对象的状态和内容,需在父类对象处单击“查看详情”。
- 子对象拆分依赖UGO的转换功能,当出现解析脚本出错和转换脚本出错的情形时,不会拆分子对象。
- 被拆分出子对象的对象状态与其他对象会有所不同:
- 当父对象转换状态为成功,则子对象转换状态都为成功。
- 当父对象转换状态为失败,则至少存在一个子对象转换状态为失败。
- 当父对象转换状态为手工修改,则至少有一个子对象转换状态为手工修改。
- 当父对象在迁移后,迁移状态为成功,则子对象迁移状态为成功或是忽略。
- 当父对象迁移后迁移状态为失败,则至少存在一个子对象迁移状态为失败。
- 当子对象全被忽略迁移,父对象也将会被忽略迁移。
- 单击待修改对象
,进入对象详细信息页面。
数据库对象请按管理、存储、代码、作业对象的顺序进行对象校正。
- 可查看转换或迁移报错信息。若有修改建议,也同时展示。
- “转换状态”为“失败”时,显示“转换错误”。
- “迁移状态”为“失败”时,显示“迁移错误”。
当目标库为GaussDB时,数据库对象命名需要满足约束:非时序表长度不超过63个字节,时序表长度不超过53个字符,以字母或下划线开头,中间字符可以是字母、数字、下划线、$、#,如果对象名不满足该约束,会导致迁移失败。
图2 对象详细信息-转换错误
- 可对SQL语句进行修改。
- 导出:将目标端代码以.sql格式导出。命名为:对象名称.sql。
- 导入:可直接导入修改后的sql文件,上传sql文件将自动保存所有更改。
- 比较:默认关闭。开启则会比较展示源端与目标端的详细代码对比,此时SQL语句不可编辑。
- 复制:可单击源端或目标端后的,将SQL语句复制至剪贴板。
- 全屏:可单击目标端后的,将目标端编辑框全屏展示,便于编辑修改。全屏时可单击图标退出全屏,或者单击编辑框后使用键盘Esc退出。
- 更新依赖关系数据:如果启用,还将验证所有从属对象。默认启用,也可关闭。
- 重置:已修改的代码,在还未保存前,可单击“重置”,清除所有修改。若已保存,只能回滚至历史修改代码。
- 保存:保存对目标端代码的修改。并会形成记录保存在“修改历史”。
- 修改后单击“保存”,会形成修改记录,单击“修改历史”按钮,查看修改历史。
列表展示修改时间,单击对应时间后的“回滚”,可以回滚至最近时间的修改记录。
- 单击历史ID前的下拉图标,对比展示修改记录。
图3 修改历史
- Oracle为源的迁移任务,DB_LINK类型的对象只支持转换,不支持迁移,迁移状态默认为“忽略”。
- 修改后的对象,转换状态由“失败”变为“手工修改”。
批量语句更新
- 登录UGO控制台。
- 单击左侧导航栏 ,显示迁移项目列表。
- 单击待迁移项目的“操作 > 迁移”,进入迁移项目,选择“对象校正”页签。
- 单击“批量语句更新”,进入批量修改页面。
图4 批量修改
- 单击“搜索结果”页签右侧操作列“详情”,进入对象详细信息页面。
显示Schema名称、对象类型、对象名称、拆分对象名称、转换状态和迁移状态。
- 可查看转换或迁移报错信息。若有修改建议,也同时展示。
- “转换状态”为“失败”时,显示“转换错误”。
- “迁移状态”为“失败”时,显示“迁移错误”。
单击进入对象校正页面。依据目标数据库SQL显示源端与目标端的SQL语句。
可单击源端或目标端后的,将SQL语句复制至剪贴板。
- 选定待修改SQL关键词或错误字符串后,返回“批量修改”页面,将信息填入对应的位置。
图6 批量修改
表1 批量搜索关键词参数说明 参数
是否必选
说明
搜索模式
是
- 正常:简单搜索文本类型。
- 正则表达式:正则表达式搜索文本类型。
说明:
- 正则表达式的错误使用可能会对SQL进行不可预知的更改,请慎用。
- 正则表达式的规范,可参见这里。
SQL关键词
是
可对“查看SQL”中目标SQL语句中的所有关键词进行搜索。
例如:选择正则表达式,输入DEFAULT*,搜索时会在待修改列表“查看SQL”的目标SQL语句中查找结构为“DEFAULT任意SQL”的语句。
错误字符串1
否
可对“查看SQL”中“转换/迁移错误”提示信息的内容进行搜索。
错误字符串2
否
可对“查看SQL”中“转换/迁移错误”提示信息的内容进行补充搜索。
- 参数填写完成后,单击搜索,界面下方会展示满足所有参数条件的对象。
- 所有错误字符串,均可在如图5“转换/迁移错误”中查看。
- 如果UGO目标数据库连接的用户与Schema的所有者不相同,则UGO服务将更改schema所有者的名称与用户相同。
- 单击“搜索”,可在右侧看到搜索出的符合要求的待修改对象列表。
图7 搜索结果列表
支持按照Schema、对象类型、转换状态、迁移状态搜索。
单击“匹配结果”可查看具体的匹配结果信息。
- 将需要替换的SQL语句输入右上方“替换为”的输入框中,单击“替换”。
- 替换完成后,单击
,进入历史记录页面,可以看到历史批量替换记录。图8 历史记录
- 单击“查看列表”,进入历史记录界面,单击操作列“查看SQL”,可查看替换前后的SQL语句。
图9 历史记录