检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
成长地图 | 华为云 数据库和应用迁移 UGO 数据库和应用迁移 UGO(Database and Application Migration UGO,简称UGO)是专注于异构数据库结构迁移的专业服务。可通过数据库评估、对象迁移和自动化语法转换,提高转化率、最大化降低用户数据库迁移成本。
图解UGO
称为目标库。 兼容性分析 基于源库的全量语法树,分析源库和目标库的语法差异点,形成语法差异知识库,以此来评估源库对象迁移到目标库的语法兼容度和迁移成功率。 数据库评估 对源库采集对象进行语法兼容性分析、目标数据库选型推荐、语法改造工作量评估、迁移风险识别等行为,以识别出源库迁移到目标库的可行性和风险。
采集源库的方法 Oracle为源库 Oracle源库对象的DDL信息如无特殊说明,都是通过DBMS_METADATA.get_ddl系统包函数获取的。 对象的基本信息从系统视图中获取,有DBA视图与ALL视图两种采集模式,以下以ALL视图采集模式进行说明: INDEX:采集索引的
操作流程 本实践的主要任务流如图1所示。一次完整的数据库对象迁移,包括数据库评估与对象迁移2个部分,各部分的流程如图2和图3所示。 图1 主要操作流程 图2 评估流程 图3 迁移流程 父主题: Oracle结构迁移到GaussDB
UGO自定义策略 建议您使用系统预定义策略,如果您有自定义策略的需求,请参见权限管理。 自定义策略中可以添加的授权项(Action)请参考策略及授权项说明。 目前华为云支持以下两种方式创建自定义策略: 可视化视图创建自定义策略:无需了解策略语法,按可视化视图导航栏选择云服务、操作
单击“下一步”进入预检查界面。 图2 预检查 对于“检查结果”为“失败”的检查项,单击“操作 > 查看详情”,根据提示进行操作后,单击“重新开始预检查”重新检测。所有检查项“检查结果”为“成功”或“警告”时,“下一步”按钮才会被激活。 若已了解检查项未处理可能会对迁移造成的不良影响,仍想要创建项目
创建文本审核任务 操作场景 审核SQL语句是否符合规范及是否存在性能问题。 约束限制 规则的嵌套审核仅支持四种语法,详情可参见表1。 With as只支持SELECT语句。 别名不能和实体表重名,且别名之间不能重名。 不支持审核视图中的表审核。 不支持审核数据库系统表及系统视图审核。
查询审核任务详情 操作场景 查看数据库审核任务详细信息。 前提条件 有已经开始审核的数据库任务。 操作步骤 登录UGO控制台。 单击左侧导航栏“SQL审核 > 数据库审核”,进入数据库审核页面。 单击待查看任务“操作 > 审核详情”。显示该数据库审核任务的详情、对象统计类型、SQL风险统计、SQL列表。
对象校正时SQL修改保存失败 用户在迁移的对象校验页面进行SQL修改后保存,出现如图所示报错: 图1 报错显示 查询长度已超过1MB的最大限制。 调整查询长度后正常。 父主题: 迁移项目
创建文件审核任务 操作场景 审核文件中SQL语句是否符合规范及是否存在性能问题。 约束限制 规则的嵌套审核仅支持四种语法,详情可参见表1。 别名不能和实体表重名,且别名之间不能重名。 不支持审核视图中的表。 不支持审核数据库系统表及系统视图。 不支持审核含有“#”的MySQL语句。
数据库评估 数据库评估会对源数据库的基本信息、性能数据,以及特定对象类型的对象SQL进行采集,提供源数据库信息概览的功能。并综合兼容性、对象复杂度等因素进行分析,给出源、目标数据库的兼容性和改造成本的分析报告,从而辅助用户进行目标库选型决策和迁移工作量评估。 查看数据采集日志 重新采集
数据库评估 数据库评估会对源数据库的基本信息、性能数据,以及特定对象类型的对象SQL进行采集,提供源数据库信息概览的功能。并综合兼容性、对象复杂度等因素进行分析,给出源、目标数据库的兼容性和改造成本的分析报告,从而辅助用户进行目标库选型决策和迁移工作量评估。 使用UGO进行一次完整的数据库对象迁移,需要先从数据库评估开始。
数据库评估 数据库评估会对源数据库的基本信息、性能数据,以及特定对象类型的对象SQL进行采集,提供源数据库信息概览的功能。并综合兼容性、对象复杂度等因素进行分析,给出源、目标数据库的兼容性和改造成本的分析报告,从而辅助用户进行目标库选型决策和迁移工作量评估。 数据库评估 数据库对象迁移
对象验证失败的原因有哪些? 可能的原因如下: 目标库验证失败 —建表语句如果指定tablespace,请检查目标库是否存在该tablespace,如果不存在请在目标库创建该tablespace。 —创建视图、函数等失败请检查是否依赖目标库table,如果依赖table请先确保table创建成功。
对象采集失败的原因有哪些? 可能的原因如下: 网络到源数据库已关闭 —此时需要恢复UGO与源数据库之间的网络连接,并重新创建评估工程。 目标库验证失败 —建表语句如果指定namespace,请检查目标库是否存在该namespace,如果不存在请在目标库创建该namespace。
返回结果 状态码 请求发送以后,您会收到响应,包含状态码、响应消息头和消息体。 状态码是一组从1xx到5xx的数字代码,状态码表示了请求响应的状态,状态码列表请参见状态码。 对于获取用户Token的接口,如果调用后返回状态码为“201”,则表示请求成功。 响应消息头 对应请求消息
步骤四:对象校正 修改后的语句将直接在目标数据库上运行,您需避免使用:导致其他表和其他对象类型丢失的语句,以及影响目标数据库性能的语句,如消耗过多CPU或内存的语句。 校正转换失败对象 登录UGO控制台。 单击左侧导航栏“结构迁移 > 对象迁移”,显示迁移项目列表。 单击待迁移项目的“操作
步骤五:迁移验证 前提条件 存在已经完成迁移的项目。 操作步骤 登录UGO控制台。 单击左侧导航栏“结构迁移 > 对象迁移”,显示迁移项目列表。 单击待迁移项目的“操作 > 迁移”,进入迁移项目,选择“迁移验证”页签。 默认显示“迁移”页签界面。 图1 迁移 单击“迁移验证配置”
异构数据库迁移至GaussDB分布式后select查询无order by数据结果集不一致 问题现象 图1 查询SQL中无order by 问题原因 GaussDB 分布式数据中,数据是按照分布键均匀存储在各DN节点上,select查询无order by时,数据随机从DN节点上读取,因此数据结果无法保证一致。