华为云用户手册

  • 修订记录 发布日期 修订说明 2024-04-30 新增章节,什么是VPCEP资源配额?。 2024-03-01 自建GaussDB内核版本号与UGO界面显示GaussDB版本号对应关系:新增目标库为GaussDB 8.100版本。 数据库权限检查:新增章节,数据库权限检查。 以MySQL为源设置GaussDB数据库GUC参数:新增章节,以MySQL为源设置GaussDB数据库GUC参数。 2023-12-30 自建GaussDB内核版本号与UGO界面显示GaussDB版本号对应关系:删除目标库为GaussDB1.4 和 2.0 版本。 以Oracle为源设置GaussDB数据库GUC参数:新增章节。 Oracle迁移至GaussDB完成后index总数查询:新增章节。 2023-11-30 源数据库忽略迁移的schema有哪些?:新增Microsoft SQL Server为源数据库忽略的schema内容。 2023-09-30 自建GaussDB内核版本号与UGO界面显示GaussDB版本号对应关系:新增GaussDB 3.3 企业版与内核版本号对应关系。 2023-08-30 自建GaussDB内核版本号与UGO界面显示GaussDB版本号对应关系:新增GaussDB 8.0 企业版与内核版本号对应关系。 2023-04-30 采集源库的方法:新增章节。 2023-03-30 源数据库忽略迁移的schema有哪些?:新增MySQL、DB2 for LUW和PostgreSQL为源时,数据库忽略迁移的schema。 迁移到目标库后,生成的dsc_ora_ext这个Schema的作用是什么?:新增MySQL为源时,自定义Schema的名称。 自建GaussDB内核版本号与UGO界面显示GaussDB版本号对应关系:新增GaussDB 3.2 企业版与内核版本号对应关系。 GaussDB如何创建不同兼容类型数据库:新增DB2 for LUW和PostgreSQL为源时,Gauss如何创建不同兼容类型数据库。 ERROR: syntax error at or near "@"的解决方法:新增FAQ。 2023-01-30 新增: Gauss如何创建不同兼容类型数据库 自建GaussDB内核版本号与UGO界面显示GaussDB版本号对应关系 评估项目出现对象收集错误并显示“Closed Connection” 评估项目停止并报错ErrorCode=4036 评估项目停止并报错ErrorCode=17002 2022-12-30 更新原生支持项、UGO支持项、迁移风险项和不支持转换项分别是什么意思?描述。 2022-10-30 新增:部分功能无法正常使用,是为什么? 2022-06-30 新增:迁移时名称为什么会报错? 2022-05-30 首版本上线。
  • 操作场景 标签管理服务(Tag Management Service,TMS)用于用户在云平台,通过统一的标签管理各种资源。TMS服务与各服务共同实现标签管理能力,TMS提供全局标签管理能力,各服务维护自身标签管理 。 建议您先在TMS系统中设置预定义标签。 标签由“键”和“值”组成,每个标签中的一个“键”只能对应一个“值”。 每个实例最多支持10个标签配额。 用户可在创建数据库评估或对象迁移项目时添加标签,也可在项目创建成功后再添加标签。
  • 解决方法 使用oracle用户登录源库。 执行以下命令,查看目前数据库的最大连接数。 show parameter processes; 执行以下命令,创建spfile。 create spfile from pfile; 执行以下命令,重启oracle。 shutdown immediate; startup 执行以下命令,修改源库连接数大小。 alter system set processes = 2000 scope = spfile; 执行以下命令,重启oracle并查看当前数据库最大连接数是否修改成功。 shutdown immediate; startup show parameter processes; 登录UGO控制台,“恢复”项目。
  • 自建GaussDB内核版本号与UGO界面显示GaussDB版本号对应关系 登录自建GaussDB数据库,执行以下命令,查询版本号。 select version (); 查询出的版本号,与UGO界面上显示的GaussDB版本号对应关系如表1所示。 表1 版本号对应关系 GaussDB内核版本号 UGO显示GaussDB版本号 V500R002C10 GaussDB 2.7 企业版 503.0.x GaussDB 3.1 企业版 503.1.x GaussDB 3.2 企业版 503.2.x GaussDB 3.3企业版 505.0 GaussDB 8.0 企业版 505.1 GaussDB 8.100 企业版 505.2 GaussDB 8.200 企业版 父主题: 产品咨询
  • 操作场景 迁移验证完成,在对象校正页签批量语句更新可对迁移失败的脚本或SQL语法问题快速修改,批量搜索对象支持文本搜索和正则表达式搜索两种方式。 语法转换完成,在对象校正页签批量语句更新可对转换失败的脚本或SQL语法问题快速修改,批量搜索对象支持文本搜索和正则表达式搜索两种方式。 您可以使用批量语句更新功能更改转换失败的脚本或SQL语法,同时可以通过历史记录来查看更改结果或回滚更改到原来内容。 您也可以选择逐个改动,请参考对象校正。 修改后的语句将直接在目标数据库上运行,您需避免使用:导致其他表和其他对象类型丢失的语句,以及影响目标数据库性能的语句,如消耗过多CPU或内存的语句。
  • MySQL To GaussDB配置项使用说明 问题描述 配置建议 建议值 GaussDB 3.2 企业版开始支持指定表的字符集。 建议配置 “字符集” 解决该类问题。 如果目标库不支持CHARSET,注释CHARSET。 GaussDB 3.2 企业版开始支持指定表的排序规则。 建议配置 “排序规则” 解决该类问题。 如果目标库不支持COLLATE,注释COLLATE。 GaussDB不支持视图的SECURITY子句。 建议配置 “SQL SECURITY子句” 解决该类问题。 注释SECURITY子句。 GaussDB不支持视图的CHECK OPTION子句。 建议配置 “视图检查选项” 解决该类问题。 注释CHECK OPTION。 GaussDB TINYINT类型与MySQL类型范围有差异。 建议配置 “TINYINT类型转换” 解决该类问题。 说明: 仅GaussDB 8.0之前版本有此配置。 转换TINYINT类型。 GaussDB不支持MEDIUMINT类型,也不支持给整数类型指定显示宽度和SIGNED关键字。 建议配置 “有符号整数类型转换” 解决该类问题。 说明: 仅GaussDB 8.0之前版本有此配置。 类型保持不变(MEDIUMINT特殊转换成INTEGER),注释宽度以及SIGNED关键字。 GaussDB不支持无符号整数类型。 建议配置 “无符号整数类型转换” 解决该类问题。 说明: 仅GaussDB 8.0之前版本有此配置。 类型转换(SMALLINT、MEDIUMINT转换成INTEGER,INT/INTEGER转换成BIGINT,BIGINT转换成:NUMERIC(20))。 GaussDB FLOAT类型与MySQL有差异。 建议配置 “FLOAT类型转换” 解决该类问题。 类型转换为FLOAT4,注释掉精度和标度,注释掉符号和填充关键字(UNSIGNED、SIGNED、ZEROFILL)。 GaussDB DOUBLE类型与MySQL有差异。 建议配置 “DOUBLE类型转换” 解决该类问题。 说明: 仅GaussDB 8.0之前版本有此配置。 类型转换为DOUBLE PRECISION,注释掉精度和标度,注释掉符号和填充关键字(UNSIGNED、SIGNED、ZEROFILL)。 GaussDB TEXT类型与MySQL有差异。 建议配置 “TEXT数据类型转换” 解决该类问题。 说明: 仅GaussDB 8.0之前版本有此配置。 不转换,保留TEXT数据类型,并注释长度。 GaussDB建表语句不支持LONGTEXT数据类型。 建议配置 “长文本类型转换” 解决该类问题。 说明: 仅GaussDB 8.0之前版本有此配置。 迁移脚本,将LONGTEXT类型转换为CLOB类型,出现警告消息。 GaussDB建表语句不支持LONGBLOB数据类型。 建议配置 “LONGBLOB类型转换” 解决该类问题。 迁移脚本,将LONGBLOB类型转换为BYTEA类型。 GaussDB建表语句不支持REAL数据类型。 建议配置 “REAL类型转换” 解决该类问题。 说明: 仅GaussDB 8.0之前版本有此配置。 将REAL数据类型转换为DOUBLE PRECISION类型。 GaussDB列定义不支持on update选项。 建议配置“表列定义on update选项”解决该类问题。 注释on update选项。 GaussDB分布式不支持生成列。 建议配置“表生成列”解决该类问题。 说明: 仅分布式有此特性。 注释生成列表达式,生成列变成普通列。并通过触发器给该列设置值。 GaussDB不支持分区键不支持多个键。 建议配置“分区表多列分区键”解决该类问题。 使用主键或唯一键的第一列作为分区键。 GaussDB不支持分区键和子分区键相同。 建议配置“子分区和父分区分区键相同”解决该类问题。 注释子分区。 GaussDB临时表不支持自增列。 建议配置“临时表自增列”解决该类问题。 注释自增选项。 GaussDB分布式不支持外键约束。 建议配置“外键约束”解决该类问题。 说明: 仅分布式有此特性。 注释外键约束。 GaussDB字符集长度定义与MySQL存在差异。 建议配置“字符集长度转换”解决该类问题。 说明: 仅GaussDB 8.0之前版本有此配置。 注释数据类型长度或扩展字符数据类型长度。 GaussDB分布式中分布键应为约束的一部分。 建议配置“分布式环境的唯一约束和索引”解决该类问题。 说明: 仅GaussDB 分布式版-2.7 企业版有此特性。 如果唯一约束和唯一索引中不存在分布键,需要加分布键。 GaussDB不支持数据库对象中使用Definer。 建议配置“对象定义者”解决该类问题。 如果创建对象时指定用户,将转换为ALTER OWNER。 部分数据类型经UGO转换后范围变大。 建议配置“数据类型check约束”解决该类问题。 添加check约束。 GaussDB与MySQL中BLOB数据类型使用存在差异。 建议配置“二进制类型BLOB转换”解决该类问题。 说明: 仅GaussDB 8.0之前版本有此配置。 迁移脚本,将BLOB类型转换为BYTEA类型。 GaussDB 不支持某些MySQL的系统权限,系统权限授予失败。 建议配置“系统权限”解决该类问题。 注释整个SQL脚本。 GaussDB不支持无符号浮点数和定点数。 建议配置“无符号浮点和定点类型转换”。 说明: 仅GaussDB 8.0版本有此配置。 注释UNSIGNED、ZEROFILL属性。 GaussDB不支持ZEROFILL关键字。 建议配置“ZEROFILL关键字转换。” 说明: 仅GaussDB 8.0版本有此配置。 注释ZEROFILL关键字,且如果原来没有UNSIGNED则添加UNSIGNED关键字。 GaussDB2.0版本不支持临时表自增列。 建议配置“临时表自增列”。 建议注释自增选项。 增加MySQL到GaussDB存储过程和函数转化后语句的扩展性。 建议配置“存储过程或者函数添加 ‘or replace’”。 创建函数或者存储过程create关键字后不添加“or replace”关键字。 GaussDB 不允许未被双引号引用的保留关键字作为对象名称。 说明: GaussDB 8.100版本支持使用反引号引用对象名称。 建议配置“含有保留关键字符的对象名称大小写转换”解决该类问题。 说明: 优先级高于配置“对象名称大小写转换”。 如果对象名称中含有保留关键字,将该名称转换为大写字母。 GaussDB 保留对象名称大小写需要使用双引号引用对象名称,MySQL 数据库名称、表名称、表别名和视图名称支持大小写敏感。 说明: GaussDB 8.100版本支持使用反引号引用对象名称。 建议配置 “对象名称大小写转换” 解决该类问题。 说明: 优先级低于配置 "含有保留关键字符的对象名称大小写转换"。 对象名称全部转换为小写。 创建索引过程不阻塞DML操作。 建议配置:“CREATE INDEX的CONCURRENTLY子句”解决该类问题。 建议值:如果业务非常需要这个功能,建议选择添加CONCURRENTLY关键字选项。 影响:创建这类索引时候,容易造成死锁,同时对Astore的表索引的创建比正常更长。 GaussDB中JSON类型可用于存储JSON数据,对输入的字符串的完整拷贝,不会去重,不会排序。 建议配置:"JSON数据类型转换"解决该类问题。 建议值:选择转为JSONB配置项。 GaussDB 3.2之前版本CHAR类型是定长字符串,不足补空格,与MySQL不同。 建议配置:"CHAR数据类型转换"解决该类问题。 建议值:选择转为转为NVARCHAR2配置项。 影响:定长字符串改为变长字符串,与原来存在轻微区别。 GaussDB索引及约束命名唯一性范围与MySQL不同,当发生冲突时,可根据需求设置此配置项完成名称映射配置,以保证唯一性。 建议配置:“索引/约束名称防止重名”解决该类问题。 建议值: 将表名与索引/约束名称拼接防止命名冲突,当拼接后的名称超过63字节时使用SHA-1进行散列。 影响:同时解决命名冲突问题和超长问题,但是当拼接名称超长时将丧失名称的可读性。 父主题: 配置说明
  • 解决办法 执行以下命令,连接GaussDB目标库。 gsql -U username -d database -p 4000 -W pwd “username”为数据库用户名;“database”为数据库名,“pwd”为用户名密码。 连接上数据库,执行以下SQL语句,完成列名称“ctid”、“xc_node_id”、“tableoid”“ctrd”的修改。 create table test("CTRD" int); create table test("XC_NODE" int); create table test("TABLEO" int); create table test("CTRD" int);
  • Oracle为源 检查项 描述 操作建议 DBMS_METADATA权限 检查用户是否具有从Oracle数据库字典中检索元数据的权限,该权限用来获取Schema对象的DDL。 赋予DBA权限即可,赋权语句如下: 创建用户。 CREATE USER user IDENTIFIED BY password; 授予用户登录权限。 GRANT CONNECT TO user; 授予用户DBA权限。 GRANT DBA TO user; 动态视图权限 检查用户对各种动态性能视图的访问权限,该权限用来获取数据库基础信息。 赋予DBA权限即可。 schema对象数量检查 检查该用户是否有Schema对象需要评估。至少需要一个对象需要评估。 - DBA权限 检查用户是否有DBA(数据库管理员)的权限,才能进行后续操作。 赋予DBA权限即可。 父主题: 数据库权限检查
  • VPCEP资源配额 在创建“对象迁移”任务中,使用数据库实例连接的方式进行测试连接和创建迁移任务的时候,UGO会使用VPC终端节点(VPC Endpoint)服务进行网络打通。 对于VPC终端节点(VPC Endpoint)服务,一个用户在单个区域中创建终端节点服务的数量默认限制为20个,一个用户在单个区域中购买终端节点的数量默认限制为50个。如果受当前资源配额限制,无法满足业务使用需求,您可以申请扩大配额。
  • 操作步骤 以8.0主备版为例 连接上GaussDB数据库,切换至GaussDB的安装用户下。 su - omm "omm"为示例用户,切换时以实际安装用户为准。 执行以下命令,设置参数 gs_guc reload -Z coordinator -Z datanode -N all -I all -c "behavior_compat_options='bind_procedure_searchpath,truncate_numeric_tail_zero,plsql_security_definer,proc_outparam_override,aformat_null_test,rownum_type_compat,allow_procedure_compile_check,proc_implicit_for_loop_variable,plstmt_implicit_savepoint,end_month_calculate,disable_rewrite_nesttable,plpgsql_dependency,display_leading_zero,correct_to_number,unbind_divide_bound,convert_string_digit_to_numeric,hide_tailing_zero,return_null_string,aformat_regexp_match,compat_cursor,enable_funcname_with_argsname,tableof_elem_constraints,merge_update_multi'"; gs_guc reload -Z coordinator -Z datanode -N all -I all -c "plsql_compile_check_options='plsql_expression_check'"; GaussDB 3.1企业版以及以后版本生效。 gs_guc reload -Z coordinator -Z datanode -N all -I all -c "a_format_version='10c'"; gs_guc reload -Z coordinator -Z datanode -N all -I all -c "a_format_dev_version='s4'"; GaussDB 3.1企业版使用s1,GaussDB 3.2企业版使用s2,GaussDB 3.1企业版使用s3,GaussDB 8.0企业版使用s4。版本号对应参考自建GaussDB内核版本号与UGO界面显示GaussDB版本号对应关系。 以8.0分布式为例 连接上GaussDB数据库,切换至GaussDB的安装用户下。 su - omm "omm"为示例用户,切换时以实际安装用户为准。 执行以下命令设置参数。 gs_guc reload -Z coordinator -Z datanode -N all -I all -c "behavior_compat_options='bind_procedure_searchpath,truncate_numeric_tail_zero,plsql_security_definer,proc_outparam_override,aformat_null_test,plstmt_implicit_savepoint,end_month_calculate,disable_rewrite_nesttable,display_leading_zero,correct_to_number,unbind_divide_bound,convert_string_digit_to_numeric,hide_tailing_zero,return_null_string,aformat_regexp_match,enable_funcname_with_argsname,tableof_elem_constraints,merge_update_multi'"; gs_guc reload -Z coordinator -Z datanode -N all -I all -c "a_format_version='10c'"; gs_guc reload -Z coordinator -Z datanode -N all -I all -c "a_format_dev_version='s4'"; 503.0版本使用s1,503.1版本使用s2,503.2版本使用s3,505.0版本使用s4。版本号对应参考自建GaussDB内核版本号与UGO界面显示GaussDB版本号对应关系。
  • 操作步骤 主备版本 连接上GaussDB数据库,切换至GaussDB的安装用户下。 su - omm "omm"为示例用户,切换时以实际安装用户为准。 执行以下命令,设置参数。 gs_guc reload -Z coordinator -Z datanode -N all -I all -c "b_format_behavior_compat_options='enable_set_variables'"; gs_guc reload -Z coordinator -Z datanode -N all -I all -c "b_format_version='5.7'"; gs_guc reload -Z coordinator -Z datanode -N all -I all -c "b_format_dev_version='s1'"; GaussDB 8.0企业版设置为s1,GaussDB 8.100企业版设置为s2,版本号对应参考自建GaussDB内核版本号与UGO界面显示GaussDB版本号对应关系。 分布式版本 连接上GaussDB数据库,切换至GaussDB的安装用户下。 su - omm "omm"为示例用户,切换时以实际安装用户为准。 执行以下命令,设置参数。 gs_guc reload -Z coordinator -Z datanode -N all -I all -c "b_format_version='5.7'"; gs_guc reload -Z coordinator -Z datanode -N all -I all -c "b_format_dev_version='s1'"; GaussDB 8.0企业版设置为s1,GaussDB 8.100企业版设置为s2,版本号对应参考自建GaussDB内核版本号与UGO界面显示GaussDB版本号对应关系。
  • 解决办法 连接上GaussDB数据库执行以下SQL语句查询index数量。 1.ugo评估页面显示的index个数查询语句: SELECT count(*) FROM (select owner, index_name, status from ALL_INDEXES WHERE OWNER in ('schema_name') ) i l LEFT OUTER JOIN ( WITH cons_ind AS -- 主键和唯一键约束 (SELECT constraint_name FROM ALL_CONSTRAINTS WHERE owner in ('schema_name') AND constraint_type IN ('P', 'U') AND constraint_name = index_name), cons_col AS -- 约束的列信息 (SELECT ci.constraint_name, cc.position, cc.column_name FROM cons_ind ci, ALL_CONS_COLUMNS cc WHERE cc.owner in ('schema_name') AND cc.constraint_name = ci.constraint_name), ind_col AS -- 索引的列信息 (SELECT ic.index_name, ic.column_position, ic.column_name FROM cons_ind ci, ALL_IND_COLUMNS ic WHERE ic.index_owner in ('schema_name') AND ic.index_name = ci.constraint_name), not_match_ind AS -- 约束的列信息和索引的列信息不匹配 (SELECT cc.constraint_name, ic.index_name FROM cons_col cc FULL OUTER JOIN ind_col ic ON cc.constraint_name = ic.index_name AND cc.position = ic.column_position AND cc.column_name = ic.column_name WHERE cc.constraint_name IS NULL OR ic.index_name IS NULL ) SELECT ci.constraint_name FROM cons_ind ci LEFT OUTER JOIN ( SELECT constraint_name FROM not_match_ind WHERE constraint_name IS NOT NULL UNION SELECT index_name FROM not_match_ind WHERE index_name IS NOT NULL ) nm ON ci.constraint_name = nm.constraint_name WHERE nm.constraint_name IS NULL ) fil_cons_not ON il.index_name = fil_cons_not.constraint_name WHERE fil_cons_not.CONSTRAINT_NAME is null; 2.查询primary key+unqiue 约束总数 SELECTcount(*) FROM ALL_CONSTRAINTS WHERE owner in ('schema_name') AND constraint_type IN ('P', 'U') AND constraint_name = index_name;
  • MySQL To GaussDB数据类型转换说明 源数据库数据类型 转换后数据类型(GaussDB 8.0以前版本) 转换后数据类型(GaussDB 8.0及其以后版本) 相关的转换配置 CHAR CHAR CHAR 字符集长度转换 选择配置项的值为“扩展字符数据类型长度”,可与DRS转换后在GaussDB 存储等价。 VARCHAR VARCHAR VARCHAR 字符集长度转换 选择配置项的值为“扩展字符数据类型长度。”,可与DRS转换后在GaussDB 存储等价。 BINARY BYTEA BYTEA - VARBINARY BYTEA BYTEA - TINYBLOB BYTEA TINYBLOB - BLOB BLOB BLOB BLOB类型转换 选择配置项的值为“BLOB类型保持不变”,可与DRS转换后在GaussDB 存储等价。 MEDIUMBLOB BYTEA MEDIUMBLOB - LONGBLOB BYTEA LONGBLOB LONGBLOB类型转换 选择配置项的值为“迁移脚本,将LONGBLOB类型转换为BYTEA类型。”,可与DRS转换后在GaussDB 存储等价。 TINYTEXT TEXT TINYTEXT - TEXT TEXT TEXT TEXT数据类型转换 选择配置项的值为“不转换,保留TEXT数据类型,并注释长度”,可与DRS转换后在GaussDB 存储等价。 MEDIUMTEXT TEXT MEDIUMTEXT - LONGTEXT CLOB LONGTEXT LONGTEXT类型转换 选择配置项的值为“迁移脚本,将LONGTEXT类型转换为CLOB类型。”,可与DRS转换后在GaussDB 存储等价。 ENUM VARCHAR VARCHAR - SET SET SET - TINYINT SMALLINT TINYINT TINYINT类型转换 选择配置项的值为“转换TINYINT类型。”,可与DRS转换后在GaussDB 存储等价。 类型转换后是否添加CHECK约束 选择配置项的值为“不添加CHECK约束。”,可与DRS转换后在GaussDB 存储等价。 SMALLINT SMALLINT SMALLINT 无符号整数类型转换 选择配置项的值为“类型保持不变,不做转换”,可与DRS转换后在GaussDB 存储等价。 类型转换后是否添加CHECK约束 选择配置项的值为“不添加CHECK约束。”,可与DRS转换后在GaussDB 存储等价。 MEDIUMINT INTEGER MEDIUMINT 有符号整数类型转换 选择配置项的值为“类型保持不变,不做转换”,可与DRS转换后在GaussDB 存储等价。 无符号整数类型转换 选择配置项的值为“类型保持不变,不做转换”,可与DRS转换后在GaussDB 存储等价。 类型转换后是否添加CHECK约束 选择配置项的值为“不添加CHECK约束。”,可与DRS转换后在GaussDB 存储等价。 INT INT INT - BIGINT BIGINT BIGINT - FLOAT FLOAT4 FLOAT FLOAT类型转换 选择配置项的值为“类型转换为DOUBLE PRECISION,注释掉精度和标度,注释掉符号和填充关键字(UNSIGNED、SIGNED、ZEROFILL)”,可与DRS转换后在GaussDB 存储等价。 类型转换后是否添加CHECK约束 选择配置项的值为“不添加CHECK约束。”,可与DRS转换后在GaussDB 存储等价。 DOUBLE DOUBLE PRECISION DOUBLE DOUBLE类型转换 选择配置项的值为“类型转换为DOUBLE PRECISION,注释掉精度和标度,注释掉符号和填充关键字(UNSIGNED、SIGNED、ZEROFILL)”,可与DRS转换后在GaussDB 存储等价。 类型转换后是否添加CHECK约束 选择配置项的值为“不添加CHECK约束。”,可与DRS转换后在GaussDB 存储等价。 DATE DATE DATE - DATETIME TIMESTAMP DATETIME - TIMESTAMP TIMESTAMP WITH TIME ZONE TIMESTAMP - TIME TIME TIME - BIT BIT BIT - JSON JSON JSON - YEAR SMALLINT SMALLINT 类型转换后是否添加CHECK约束 选择配置项的值为“不添加CHECK约束。”,可与DRS转换后在GaussDB 存储等价。 DECIMAL DECIMAL DECIMAL - NUMERIC NUMERIC NUMERIC - 配置项说明可参考MySQL To GaussDB配置项使用说明。 父主题: 数据类型转换说明
  • Microsoft SQL Server To GaussDB配置项使用说明 源数据库数据类型 转换后数据类型 相关的转换配置 TINYINT TINYINT - SMALLINT SMALLINT - INT INT - BIGINT BIGINT - DECIMAL DECIMAL - NUMERIC NUMERIC - FLOAT FLOAT - REAL REAL - SMALLMONEY numeric(10,4) - MONEY numeric(19,4) - BIT BOOLEAN bit类型转换 选择配置项的值为“将bit类型转换为boolean类型。”,可与DRS转换后在GaussDB 存储等价。 DATE DATE - SMALLDATETIME SMALLDATETIME - DATETIME TIMESTAMP(0) - DATETIME2(n) TIMESTAMP(n) - DATETIMEOFFSET(n) TIMESTAMPTZ datetimeoffset类型转换 选择配置项的值为“将datetimeoffset类型转换为timestamptz类型“ ,可与DRS转换后在GaussDB 存储等价。 TIME(p) TIME(7) - TIMESTAMP BYTEA - XML XML xml类型转换 选择配置项的值为“将XML类型转换为TEXT类型。”,可与DRS转换后在GaussDB 存储等价。 CHAR(n) CHAR(10) 字符集不匹配 选择配置项的值为“调整CHAR(n), VARCHAR(n), NCHAR(n)的大小。”,可与DRS转换后在GaussDB 存储等价。 VARCHAR(n) VARCHAR(n) 字符集不匹配 选择配置项的值为“调整CHAR(n), VARCHAR(n), NCHAR(n)的大小。”,可与DRS转换后在GaussDB 存储等价。 varchar(max) TEXT VARCHAR(MAX)类型转换 选择配置项的值为“将VARCHAR(MAX)类型转换为TEXT类型。 ”,可与DRS转换后在GaussDB 存储等价。 NCHAR(n) NCHAR(n) 字符集不匹配 选择配置项的值为“调整CHAR(n), VARCHAR(n), NCHAR(n)的大小。”,可与DRS转换后在GaussDB 存储等价。 NVARCHAR(n) NVARCHAR2(n) - NVARCHAR(max) TEXT NVARCHAR(MAX)类型转换 选择配置项的值为“将NVARCHAR(MAX)类型转换为TEXT类型。 ”,可与DRS转换后在GaussDB 存储等价。 BINARY(n) BYTEA - VARBINARY(n) BYTEA - VARBINARY(MAX) BYTEA VARBINARY(MAX)类型转换 选择配置项的值为“将VARBINARY(MAX)类型转换为BYTEA类型。”,可与DRS转换后在GaussDB 存储等价。 IMAGE BYTEA IMAGE类型转换 选择配置项的值为“将IMAGE类型转换为BYTEA类型”,可与DRS转换后在GaussDB 存储等价。 HIERARCHYID BYTEA HIERARCHYID类型转换 选择配置项的值为“将HIERARCHYID类型转换为BYTEA类型。”,可与DRS转换后在GaussDB 存储等价。 NTEXT TEXT NTEXT类型转换 选择配置项的值为“将NTEXT类型转换为TEXT类型。”,可与DRS转换后在GaussDB 存储等价。 TEXT TEXT TEXT类型转换 选择配置项的值为“将TEXT类型转换为TEXT类型。”,可与DRS转换后在GaussDB 存储等价。 UNIQUEIDENTIFIER UUID - 配置项说明可参考Microsoft SQL Server To GaussDB配置项使用说明。 父主题: 数据类型转换说明
  • 任务状态 UGO提供了多种任务状态,以便区分不同阶段的评估任务。 不同的状态,以不同的颜色显示在仪表盘中。各状态和说明,详见下表。 表1 评估项目状态说明 项目 状态 说明 评估项目列表 进行中 项目已经创建,但是还没有选择最终目标库。 已停止 手动停止创建的数据库评估项目,或停止正在重新评估的项目。 完成 用户选择了目标库,并且确认了目标库的选择。 失败 在评估过程中出现异常。 表2 迁移项目状态说明 项目 状态 说明 迁移项目列表 就绪 目标数据库权限检查通过的项目。 未就绪 目标数据库权限检查未通过的项目。
  • 修订记录 发布日期 修订说明 2024-04-30 UGO界面风格调整,全文更新截图。 2024-03-30 步骤二:创建规则模板:支持规则模板的导入和导出。 步骤一:创建迁移项目:增加目标库的GUC参数检查。 2024-03-01 创建数据库审核项目:审核对象新增支持“Package”。 2023-12-30 创建迁移项目:优化迁移项目步骤内容。 创建文本审核项目:新增规则项约束“谨慎删除数据库对象及清理数据”。 2023-11-30 步骤四:启动语法转换并进行对象校正:去除批量状态更新功能,优化迁移流程,更新对象校正界面截图。 步骤一:创建迁移项目:去除MySQL为源,只采集MySQL系统库的字符集限制,优化功能限制。 步骤一:创建迁移项目:普通用户权限检查迁移至创建迁移项目预检查阶段,优化功能。 2023-10-30 步骤一:创建评估项目:新增GoldenDB为源到GaussDB-8.0 主备版为目标库链路。该链路仅限白名单用户使用。 步骤一:创建迁移项目:增加GoldenDB为源到GaussDB-8.0 主备版为目标库链路,优化迁移流程。 2023-08-30 步骤一:创建迁移项目:增加迁移项目预检查,优化迁移流程。 步骤一:创建评估项目:新增Oracle、MySQL为源,GaussDB-8.0 企业版为目标库链路。该链路仅限白名单用户使用。 2023-07-30 步骤一:创建迁移项目:新增字符集校验检查。 2023-06-30 步骤一:创建评估项目:优化“操作”列功能显示位置。 创建迁移项目:新增兼容性模式检查。 2023-05-30 步骤一:创建评估项目:更新预检查界面截图。 步骤四:启动语法转换并进行对象校正:更新“导出”图标。 2023-04-30 步骤一:创建评估项目:新增PostgreSQL-13/14/15版本为源库,GaussDB-3.2 企业版为目标库链路。该链路仅限白名单用户使用。 步骤一:创建评估项目:优化列表显示。将“项目状态”拆分为“差异化分析”与“增量评估”。 步骤一:创建评估项目:“选择评估范围”页签,删除“单引号动态SQL评估”、“动态SQL上行号”以及“动态SQL下行号”设置项。 步骤四:启动语法转换并进行对象校正:修改语法转换时告警信息。 2023-03-30 全文:更新“刷新”按钮图标。 步骤一:创建评估项目:Oracle为源时,创建评估项目新增前提条件。 步骤二:选择对象迁移:MySQL为源时,SCHEMA对象默认不迁移。 步骤四:启动语法转换并进行对象校正:对象校正时,可批量更新语句。 2023-02-28 全文:console整体优化,更新界面显示与界面词。 步骤一:创建评估项目:Oracle为源时,目标库新增RDS for PostgreSQL-12/13/14链路。 步骤一:创建评估项目:新增PostgreSQL-11/12版本为源库,GaussDB主备版-3.1 企业版为目标里的链路。 步骤一:创建评估项目:优化预检查界面检查项的描述。 步骤二:选择对象迁移:优化密码规则。 2023-01-30 步骤四:启动语法转换并进行对象校正:优化“重新转换”流程。 步骤一:创建评估项目:修改MySQL为源的与检查项。 2022-12-30 步骤一:创建评估项目:源数据库新增MySQL-5.6链路。 步骤一:创建评估项目:目标库GaussDB-2.3 企业版改名为GaussDB-2.7 企业版。 步骤一:创建评估项目:源数据库画像中不再展示TPS、QPS、表复杂度等数据信息内容,删除设置说明。 步骤一:创建迁移项目:当目标库为GaussDB时,规定上传证书的类型。 2022-11-30 步骤一:创建评估项目:目标库新增GaussDB Primary/Standby - 3.1 企业版链路,修改截图。 步骤一:创建迁移项目:新增说明,选择GaussDB Primary/Standby - 3.1 企业版为目标库时,“数据库信息输入方式”需选择“手动输入”。 步骤一:创建迁移项目:新增说明,当目标库为GaussDB时,暂不支持“单项SSL”功能。 2022-10-30 步骤一:创建评估项目:更新MySQL为源库时的预检查项。 步骤一:创建评估项目:对象评估不采集SQL对象类型。 步骤二:选择对象迁移:新增转换配置修改点。 步骤一:创建迁移项目:当目标库为云数据库 GaussDB时,“数据库信息输入方式”开放“选择实例”。 2022-09-30 步骤一:创建评估项目:更新创建界面显示;更新云数据库 GaussDB版本号。 步骤一:创建迁移项目:更新创建界面显示。 2022-08-30 步骤一:创建评估项目:修改补充MySQL与DB2 for LUW为源库,创建评估项目的差异点。 步骤一:创建评估项目:更新创建界面显示。 步骤一:创建迁移项目:更新创建界面显示。 步骤五:启动项目迁移并查看迁移结果:界面词“统计报告”更新为“迁移验证报告”。 2022-07-30 步骤一:创建评估项目:新增源数据库类型,更新截图。 2022-06-30 步骤一:创建评估项目:新增源数据库准备和授权检查。 步骤一:创建评估项目:更新创建和预检查界面显示。 步骤一:创建迁移项目:新增用户密码使用限制和报告介绍。 步骤四:启动语法转换并进行对象校正中界面词“更新状态”变为“批量更新状态”;“批量更新”变为“批量语句更新”。 2022-05-30 修改: 步骤一:创建评估项目中预检查说明。 步骤一:创建迁移项目中选择评估项目数据库信息的输入方式。 2022-04-30 新增: 步骤三:对象转换配置和表空间映射设置新增转换配置步骤。 步骤一:创建迁移项目新增连接目标数据库个数限制。 2022-03-30 首版本商用。 修改:概述迁移项目中目标数据库改名。 2022-01-30 新增: 步骤一:创建评估项目:选择目标数据库功能。 步骤一:创建迁移项目:查看数据库实例和查看不可选实例功能。 修改: 概述:部分描述。 步骤一:创建评估项目:部分截图。 2021-12-31 新增: 步骤一:创建评估项目:DBA采集功能。 步骤一:创建迁移项目:权限检查功能。 2021-11-30 修改SSL类型描述。 界面词“模式”修改为“schema”。 新增:动态SQL评估。 2021-10-30 创建评估项目,新增企业项目项。 创建迁移项目,新增SSL类型项。 部分界面词的修改优化。 2021-08-30 更新数据库评估项目与迁移项目的创建页面显示及部分步骤。 导航栏中一级目录的“对象迁移”,修改为“结构迁移”。 2021-07-31 更新中文界面词。 2021-06-30 发布公测版本。
  • 约束限制 数据库的系统库由数据库自身维护,可能会禁止用户的创建操作,因此不建议您使用系统库进行对象迁移。MySQL数据库的系统库有performance_schema、information_schema、mysql以及sys;GoldenDB数据库的系统库有information_schema、mysql、performance_schema以及sys等;PostgreSQL数据库系统库有postgres库等。 以GaussDB为目标库,当源端的对象名称超过63个字节时,迁移至GaussDB,对象名将会被截断。 使用系统库创建迁移项目可能导致权限检查失败。 每个用户最多支持10迁移任务配额。 此处用户选择要迁移的目标数据库,并填写目标数据库信息。 每个迁移项目对应一个评估项目,但可以基于一个评估项目多次创建迁移项目。
  • Oracle To GaussDB数据类型转换说明 源数据库数据类型 转换后数据类型 相关的转换配置 CHAR CHAR 字符集不匹配 选择配置项的值为“调整CHAR(n), VARCHAR(n), VARCHAR2(n)和NCHAR(n)的大小。”,可与DRS转换后在GaussDB 存储等价。 VARCHAR VARCHAR 字符集不匹配 选择配置项的值为“调整CHAR(n), VARCHAR(n), VARCHAR2(n)和NCHAR(n)的大小。”,可与DRS转换后在GaussDB 存储等价。 VARCHAR2 VARCHAR2 字符集不匹配 选择配置项的值为“调整CHAR(n), VARCHAR(n), VARCHAR2(n)和NCHAR(n)的大小。”,可与DRS转换后在GaussDB 存储等价。 NCHAR NCHAR 字符集不匹配 选择配置项的值为“调整CHAR(n), VARCHAR(n), VARCHAR2(n)和NCHAR(n)的大小。”,可与DRS转换后在GaussDB 存储等价。 NVARCHAR2 NVARCHAR2 - NUMBER NUMBER 小数位数为零的数字数据类型 选择配置项的值为“不转换NUMBER数据类型。GaussDB支持NUMBER。”,可与DRS转换后在GaussDB 存储等价。 NUMBER (6,3) NUMBER (6, 3) 小数位数为零的数字数据类型 选择配置项的值为“不转换NUMBER数据类型。GaussDB支持NUMBER。”,可与DRS转换后在GaussDB 存储等价。 NUMBER (6,0) NUMBER (6,0) 小数位数为零的数字数据类型 选择配置项的值为“不转换NUMBER数据类型。GaussDB支持NUMBER。”,可与DRS转换后在GaussDB 存储等价。 NUMBER (3) NUMBER (3) 小数位数为零的数字数据类型 选择配置项的值为“不转换NUMBER数据类型。GaussDB支持NUMBER。”,可与DRS转换后在GaussDB 存储等价。 NUMBER (6,-2) NUMBER (6,-2) 小数位数为零的数字数据类型 选择配置项的值为“不转换NUMBER数据类型。GaussDB支持NUMBER。”,可与DRS转换后在GaussDB 存储等价。 BINARY_FLOAT REAL - BINARY_DOUBLE BINARY_DOUBLE - FLOAT DOUBLE PRECISION float数据类型 选择配置项的值为“将FLOAT/FLOAT(n)转换为DOUBLE PRECISION”,可与DRS转换后在GaussDB 存储等价。 INT NUMBER(38) 整型数据类型 选择配置项的值为“将INT, INTEGER和SMALLINT转换成NUMBER(38)”,可与DRS转换后在GaussDB 存储等价。 INTEGER NUMBER(38) 整型数据类型 选择配置项的值为“将INT, INTEGER和SMALLINT转换成NUMBER(38)”,可与DRS转换后在GaussDB 存储等价。 DATE DATE - TIMESTAMP TIMESTAMP(6) - TIMESTAMP_TZ TIMESTAMP(6) WITH TIME ZONE - TIMESTAMP_LTZ TIMESTAMP(6) WITH TIME ZONE - INTERVAL_YM INTERVAL YEAR TO MONTH - INTERVAL_DS INTERVAL DAY TO SECOND - BLOB BLOB - CLOB CLOB - NCLOB TEXT nclob数据类型 选择配置项的值为“将NCLOB转换为TEXT数据类型。”,可与DRS转换后在GaussDB 存储等价。 LONG TEXT long数据类型 选择配置项的值为“将LONG类型转换为TEXT数据类型。”,可与DRS转换后在GaussDB 存储等价。 LONG_RAW BYTEA long raw数据类型 选择配置项的值为“将LONG RAW转换为BYTEA数据类型。”,可与DRS转换后在GaussDB 存储等价。 RAW RAW - RowID CHAR(18) - NUMBER(*,0) NUMBER(38,0) - 配置项说明可参考Oracle To GaussDB配置项使用说明。 父主题: 数据类型转换说明
  • GoldenDB To GaussDB配置项使用说明 问题描述 配置建议 建议值 GaussDB 3.2 企业版开始支持指定表的字符集。 建议配置“字符集”解决该类问题。 如果目标库不支持CHARSET,注释CHARSET。 GaussDB 3.2 企业版开始支持指定表的排序规则。 建议配置“排序规则”解决该类问题。 如果目标库不支持COLLATE,注释COLLATE。 GaussDB不支持视图的SECURITY子句。 建议配置“SQL SECURITY子句”解决该类问题。 迁移SECURITY子句。 GaussDB不支持视图的CHECK OPTION子句。 建议配置“视图检查选项”解决该类问题。 迁移CHECK OPTION。 GaussDB列定义不支持on update选项。 建议配置“迁移脚本,使用触发器实现on update”解决该类问题。 迁移脚本,使用触发器实现on update。 GaussDB分布式不支持生成列。 建议配置“表生成列”解决该类问题。 说明: 仅GaussDB分布式有此特性。 注释生成列表达式,生成列变成普通列。并通过触发器给该列设置值。 GaussDB不支持分区键不支持多个键。 建议配置“分区表多列分区键”解决该类问题。 使用主键或唯一键的第一列作为分区键。 GaussDB不支持分区键和子分区键相同。 建议配置“子分区和父分区分区键相同”解决该类问题。 注释子分区。 GaussDB临时表不支持自增列。 建议配置“临时表自增列”解决该类问题。 注释自增选项。 GaussDB分布式不支持外键约束。 建议配置“外键约束”解决该类问题。 说明: 仅GaussDB分布式有此特性。 注释外键约束。 GaussDB不支持数据库对象中使用Definer。 建议配置“对象定义者”解决该类问题。 如果创建对象时指定用户,将转换为ALTER OWNER。 部分数据类型经UGO转换后范围变大。 建议配置“数据类型check约束”解决该类问题。 添加check约束。 GaussDB 不支持某些MySQL的系统权限,系统权限授予失败。 建议配置“系统权限”解决该类问题。 注释整个SQL脚本。 GaussDB不支持无符号浮点数和定点数。 建议配置“无符号浮点和定点类型转换”。 注释UNSIGNED、ZEROFILL属性。 GaussDB不支持ZEROFILL关键字。 建议配置“ZEROFILL关键字转换”。 注释ZEROFILL关键字,且如果原来没有UNSIGNED则添加UNSIGNED关键字。 增加MySQL到GaussDB存储过程和函数转化后语句的扩展性。 建议配置“存储过程或者函数添加‘or replace’”。 创建函数或者存储过程create关键字后不添加“or replace”关键字。 GaussDB中主键或唯一键必须是分布键的超集。 建议配置“Range/List分布转换”解决该类问题。 说明: 仅GaussDB分布式有此特性。 转换Range/List分布子句,并将分布键添加到主键中。 GaussDB建表语句不支持LONGBLOB数据类型 建议配置 “LONGBLOB类型转换” 解决该类问题 迁移脚本,将LONGBLOB类型转换为BYTEA类型。 创建索引过程不阻塞DML操作 建议配置:“CREATE INDEX的CONCURRENTLY子句”解决该类问题 建议值:如果业务非常需要这个功能,建议选择添加CONCURRENTLY关键字选项。 影响:创建这类索引时候,容易造成死锁,同时对Astore的表索引的创建比正常更长。 GaussDB 不允许未被双引号引用的保留关键字作为对象名称。 建议配置”含有保留关键字符的对象名称大小写转换“解决该类问题。 说明: 优先级高于配置“对象名称大小写转换”。 如果对象名称中含有保留关键字,将该名称转换为大写字母。 GaussDB索引及约束命名唯一性范围与MySQL不同,当发生冲突时,可根据需求设置此配置项完成名称映射配置,以保证唯一性。 建议配置:“索引/约束名称防止重名”解决该类问题。 建议值: 将表名与索引/约束名称拼接防止命名冲突,当拼接后的名称超过63字节时使用SHA-1进行散列。 影响:同时解决命名冲突问题和超长问题,但是当拼接名称超长时将丧失名称的可读性。 父主题: 配置说明
  • PostgreSQL To GaussDB 数据类型转换说明 源数据库数据类型 转换后数据类型 相关的转换配置 SMALLINT SMALLINT - INTEGER INTEGER - BIGINT BIGINT - INTEGER INTEGER - REAL REAL - DOUBLE PRECISION DOUBLE PRECISION - NUMERIC NUMERIC - CHARACTER VARYING CHARACTER VARYING 字符数据类型转换 选择配置项的值为“扩展字符数据类型char/varchar长度。”,可与DRS转换后在GaussDB 存储等价。 CHARACTER CHARACTER 字符数据类型转换 选择配置项的值为“扩展字符数据类型char/varchar长度。”,可与DRS转换后在GaussDB 存储等价。 BIT BIT - BIT VARYING BIT VARYING - BOOLEAN BOOLEAN - BYTEA BYTEA - TEXT TEXT - TIME WITHOUT TIME ZONE TIME WITHOUT TIME ZONE - TIME WITH TIME ZONE TIME WITH TIME ZONE - TIMESTAMP WITHOUT TIME ZONE TIMESTAMP WITHOUT TIME ZONE - TIMESTAMP WITH TIME ZONE TIMESTAMP WITH TIME ZONE - INTERVAL INTERVAL - CIDR CIDR - PATH PATH - BOX BOX - LSEG LSEG - MACADDR MACADDR - POINT POINT - POLYGON POLYGON - INET INET - TSQUERY TSQUERY - TSVECTOR TSVECTOR - UUID UUID - JSON JSON - JSONB JSONB - 配置项说明可参考PostgreSQL To GaussDB配置项使用说明。 父主题: 数据类型转换说明
  • MySQL to GaussDB 主备版(M兼容)配置项使用说明 问题描述 配置建议 建议值 GaussDB 不支持某些MySQL的系统权限,系统权限授予失败。 建议配置“系统权限”解决该类问题。 注释整个SQL脚本。 影响:此配置将注释整个SQL,不会授予任何系统权限。 MySQL中索引名和约束名以表为单位,不同表的约束和索引可以同名,而GaussDB以schema为单位,保留原始名称迁移后重名的索引和约束会产生冲突。 建议配置“索引/约束名称防止冲突映射策略”解决该类问题。 将表名与索引/约束名称拼接防止命名冲突,当拼接后的名称超过63字节时使用SHA-1进行散列。 影响:解决命名冲突问题,但是当名称较长时丧失名称的可读性,且在后续的DROP、RENAME等维护过程中,也需要使用UGO转换SQL才能正确执行。 GaussDB不支持ZEROFILL关键字。 建议配置“ZEROFILL关键字转换”。 说明: 仅GaussDB 8.100版本有此配置。 注释ZEROFILL关键字,且如果原来没有UNSIGNED则添加UNSIGNED关键字。 影响:在MySQL中ZEROFILL一般和UNSIGNED一起配合使用,即使只使用ZEROFILL也表示是无符号类型。此配置将注释掉ZEROFILL关键字,并添加UNSIGNED关键字,需要注意显示宽度不影响数据存储但可能影响业务使用。 GaussDB不支持视图的SECURITY子句。 建议配置 “SQL SECURITY子句” 解决该类问题。 迁移SECURITY子句。 GaussDB不支持数据库对象中使用Definer。 建议配置“对象定义者”解决该类问题。 如果创建对象时指定用户,将转换为ALTER OWNER。 影响:DEFINER将迁移成ALTER OWNER语句,需要保证目标库中相应的对象存储,否则该对象将迁移失败。 GaussDB不支持视图的CHECK OPTION子句。 建议配置 “视图检查选项” 解决该类问题。 说明: 仅GaussDB 8.100版本有此配置。 迁移CHECK OPTION。 GaussDB分区表不支持多个分区键。 建议配置“分区表多列分区键”解决该类问题。 使用主键或唯一键的第一列作为分区键。 GaussDB不支持某些MySQL的字符集。 建议配置 “字符集” 解决该类问题。 如果目标库不支持CHARSET,注释CHARSET。 GaussDB不支持某些MySQL的排序规则。 建议配置 “排序规则” 解决该类问题。 如果目标库不支持COLLATE,注释COLLATE。 GaussDB不支持set数据类型。 建议配置 “set数据类型转换” 解决该类问题。 说明: 仅GaussDB 8.100版本有此配置。 转为VARCHAR。 GaussDB不支持enum数据类型。 建议配置 “enum数据类型转换” 解决该类问题。 说明: 仅GaussDB 8.100版本有此配置。 转为VARCHAR。 父主题: 配置说明
  • 日期时间函数转换说明 在使用UGO进行语法转换时,如果所选目标库为GaussDB 3.2或3.2以下的版本,由于GaussDB部分时间函数与事务相关详情可参见表1。这些函数返回的都是事务的开始时间,而在源库中获取的为当前时间,在长事务的场景下,源库和目标库GaussDB得到的时间不一致。因此在UGO转换后,如果转换后的语句中存在上述函数,则用户需要自行分析上述函数是否存在长事务中并确认影响,如有影响需手工修改保证最终的准确性。 表1 与事务相关的时间函数说明 序号 函数名称 1 CURRENT_DATE 2 CURRENT_TIME 3 CURRENT_TIME(precision) 4 CURRENT_TIMESTAMP(precision) 5 LOCALTIME 6 LOCALTIMESTAMP 7 LOCALTIME(precision) 8 LOCALTIMESTAMP(precision) 父主题: 语法转换说明
  • 操作步骤 完成步骤五,单击“下一步”,进入迁移验证页面。 请修正对象校正中所有转换失败项,才能启动迁移验证。 单击“启动”,进行校验。页面以进度条和百分比显示迁移进度。 迁移验证完成后,页面显示读取到的SQL行总数与迁移成功数与失败数。 查看校验历史详细信息,请见查看迁移历史详情。 图1 迁移验证 停止验证后,会出现提示“迁移存在错误/风险,请点击查看”单击后有“警告 : 异常自动暂停”弹框提示。 停止后单击“启动”,可继续进行迁移。 查看空存储过程:可查看失败的对象列表和失败次数。 单击“下载报告”,选择所需报告单击“下载”,下载至本地供用户分析。MySQL为源时,子对象的相关数据不会统计在迁移报告中。 迁移验证报告:该报告简要介绍了迁移和验证对象的状态。 迁移验证错误报告:该报告介绍了对象迁移失败的详情,包括每个对象的状态、迁移语句和错误信息。 匿名化迁移验证错误报告:该报告介绍了对象迁移失败的详情,包括每个对象的状态、迁移语句、错误信息,但源库SQL语句和迁移后的SQL语句均以匿名的形式呈现。 若有迁移失败,可单击对象类型后的“详情”,可返回对象校正页面查看对象类型的具体信息。 迁移验证完成后,若有验证失败项,可返回对象校正页面,进行单独修改或批量语句更新。
  • 约束限制 审核对象仅支持:Table、View、Sequence、Index、Function、Procedure、Trigger、Package。 一次审核Schema的数量不超过10000。 审核数据库过程中,避免对正在审核的数据库对象进行删除等操作,影响审核结果。 如果使用系统模板进行审核时,新版本升级结束后,再次重试或者同数据源审核,会导致审核结果不一致。为避免此现象发生,建议使用自定义模板。
  • Microsoft SQL Server To MySQL配置项使用说明 问题描述 配置建议 建议值 SQL Server与MySQL数据库结构存在差异,将会导致迁移失败。 建议配置“数据库名转换”解决该类问题。 建议值:保留数据库名称。 影响:SQL Server与MySQL数据库结构存在差异,该配置项将保留对象数据库名称,不进行任何转换。 SQL Server与MySQL排序规则存在差异,将会导致迁移失败。 建议配置“排序规则转换”解决该类问题。 建议值:注释排序规则。 影响:SQL Server与MySQL排序规则存在差异,该配置项将注释排序规则。 SQL Server与MySQL语法存在差异,该配置项将控制DROP_EXISTING转换。 建议配置“DROP_EXISTING转换”解决该类问题。 建议值:保留DROP_EXISTING。 影响:SQL Server与MySQL语法存在差异,该配置项将保留DROP_EXISTING。 SQL Server与MySQL语法存在差异,该配置项将控制索引筛选语句转换。 建议配置“索引筛选转换”解决该类问题。 建议值:保留索引筛选条件语句。 影响:SQL Server与MySQL语法存在差异,该配置项将保留索引筛选条件语句。 SQL Server与MySQL语法存在差异,MySQL 不支持表类型变量。 建议配置“表类型变量转换”解决该类问题。 建议值:将表类型变量转换临时表。 影响:SQLServer 中显式表变量不遵循事务的回滚语义,MySQL 中临时表遵循事务回滚语义,需要关注业务语义是否发生变化。不包括多语句表值函数返回表定义。 SQL Server与MySQL语法存在差异,MySQL 不支持 SQL Server 系统函数 @@FETCH_STATUS 的功能。 建议配置“WHILE 循环条件 @@FETCH_STATUS=0 转换”解决该类问题。 建议值:转换为 NOT FOUND HANDLER。 影响:用户需要关注业务语义是否发生变化。 约束条件: 仅支持 "WHILE @@FETCH_STATUS = 0" 和 "WHILE 0 = @@FETCH_STATUS" 语法。 "WHILE @@FETCH_STATUS = 0" 的上一条语句是 FETCH 语句。 WHILE 循环中的最后一句是 FETCH。 两条 FETCH 语句使用同一个游标。 父主题: 配置说明
  • 操作步骤 完成步骤四后,单击“下一步”,进入语法转换页面。 单击“启动”,进行迁移。页面显示对象类型、总数、转换成功、转换失败等信息以及转换开始时间与结束时间。 图1 语法转换 页面以进度条和百分比显示迁移进度。 单击“下载报告”,选择所需报告单击“下载”,下载至本地供用户分析。 转换错误报告:该报告介绍了无法等价转换为目标库语法的源库对象详情。 匿名化转换错误报告:该报告通过匿名方式介绍了无法等价转换为目标库语法的源库对象。 转换风险报告:该报告介绍了基于用户所选的配置项,冒一定风险转换为目标库语法的源库对象,但转换后存在一定的功能差异。 匿名化转换风险报告:对象信息脱敏后的转换风险报告。该报告通过匿名方式介绍了基于用户所选的配置项,冒一定风险转换为目标库语法的源库对象,但转换后存在一定的功能差异。 转换后的SQL解析失败报告:该报告介绍了无法使用目标库语法解析转换脚本的源库对象。 匿名化转换后的SQL解析失败报告:该报告通过匿名方式介绍了无法使用目标库语法解析转换脚本的源库对象。 单击“详情”,有转换失败的对象可进入对象校正页面查看对象类型的具体信息。 查看迁移历史详情信息,请见查看转换历史详情。 单击“暂停”,流程将被暂停,用户可以到转换历史中去查询之前执行过的迁移任务。 单击“启动”,将会进行一次新的转换流程。单击“恢复”,将继续进行转换流程。 再次单击“启动”,将再次进行语法转换,会覆盖上一次转换的全部转换数据,包含手工修改的对象,请谨慎操作。如确需重新转换,单击“确认”。 单击“下一步”,对象校验页面显示待验证的Schema、对象名称、对象类型等信息。 图2 对象校正 可依据具体对象名称进行搜索,也可依据Schema、转换状态及迁移状态等进行筛选。 仅当源数据库为Oracle、MySQL、PostgreSQL时,若“转换状态”为“失败”,可单击具体失败项的对象名称,查看“对象迁移成功率”。 当“支持迁移”为“否”时,可以使用“应用筛选器”查询同样包含该语法点的其他失败对象。 可对选中的具体对象单击“跳过迁移”,忽略不想验证迁移的对象。 重新转换:可选择需要重新转换的对象类型或对象,进行单独重新转换,不会覆盖其他对象的SQL修改。 单击进入“重新转换”页面,选定对象后单击“重新转换”,可返回步骤2重新启动语法转换。 Mysql为源,table对象转换后结果将会展示转换拆分后的子对象create table和create index;Oracle为源,table对象转换后结果将会展示转换拆分后的子对象create table和foreign_key,两者都可以选择子对象进行单独的迁移或是修改,拆分后的子对象数目不计入转换总对象数量当中。 拆分子对象是为了控制转换后父类对象部分子对象的迁移,所以页面展示的子对象并不是全量子对象,如需查看全量子对象的状态和内容需点击父类对象查看详情。 子对象拆分依赖UGO的转换功能,当出现解析脚本出错和转换脚本时出错的情形时无法进行转换,不会拆分子对象。 父对象与其下所有子对象的状态如下:当父对象转换状态为成功,则子对象转换状态都为成功;当父对象转换状态为失败,则子对象转换状态至少存在一个失败;当父对象转换状态为手工修改,至少有一个子对象转换状态为手工修改;当父对象迁移后若迁移状态为成功,则子对象迁移状态为成功或是忽略;当父对象迁移后迁移状态若为失败,则子对象迁移状态至少存在一个失败;当子对象全被忽略迁移,父对象也将会被忽略迁移。 对于“迁移状态”为“成功”的对象,如果重新进行转换,再次迁移和验证将出现错误“对象已存在于目标数据库上”。为避免这种情况,请手动从目标数据库中删除这些对象。若选择数据库对象类型,将重新转换选中类型下所有对象。 批量语句更新:批量语句更新支持类似问题的批量搜索和修改。如何批量语句更新,请参见批量语句更新。 可对选中的对象进行“修改”或“查看详情”。 单击“查看详情”,可查看对应对象的转换/迁移错误信息和源端、目标端以及比较的信息,也可以复制详细代码。 单击“修改”:可对具体对象进行逐条手工修改。如何修改,请参见修改对象校正。 选择可忽略的对象并单击“跳过迁移”,“迁移状态”变为“忽略”。也可以“撤销跳过”,撤销后对应状态恢复原样。 迁移结果注释了一些特性,可能会有功能影响,可单击“查看详情”查看详细信息。
  • SQL审核概述 SQL审核功能能够帮助用户在开发阶段发现隐藏在代码中的SQL规范性、设计合理性和性能等问题,内置200+审核规则,涵盖对DML、DDL、PL/SQL等各类对象进行深度审核,且可根据业务需求对规则进行自由组合形成模板,支持GaussDB、MySQL两种数据库,可实现单语句、批量代码文件上传(自动提取SQL)、直连数据库3种审核方式,深度看护代码,避免烂SQL流入生产环境。 父主题: SQL审核
  • 源数据库准备和授权 创建数据库评估任务时,UGO将检查源数据库的权限。您需在创建评估任务前检查数据库权限,并执行以下操作。 Oracle为源库,为了确保 DBMS_METADATA.GET_DDL 方法返回的对象DDL保持统一,建议您对Oracle源库进行如下设置。 不生成排序规则子句(影响对象:USER、TABLE、CLUSTER、VIEW、MATERIALIZED_VIEW、PROCEDURE、FUNCTION、PACKAGE、TYPE、TRIGGER)。 使用sqlplus执行:EXECUTE DBMS_METADATA.SET_TRANSFORM_PARAM(dbms_metadata.SESSION_TRANSFORM, 'COLLATION_CLAUSE', 'NEVER'); 让表约束、索引将成为CREATE TABLE语句的一部分,而不是单独的ALTER、TABLE语句。 使用sqlplus执行:EXECUTE DBMS_METADATA.SET_TRANSFORM_PARAM(dbms_metadata.SESSION_TRANSFORM, 'CONSTRAINTS_AS_ALTER', false); 用户需拥有创建UGO评估项目的对应权限。具体权限,可参见权限管理进行设置。 各源库分别需要具备以下权限,需成功测试连接到源数据库并通过所有预检查项。 Oracle源数据库连接用户需要具有待迁移数据库的DBMS_METADATA、动态视图和Schema对象数量检查的权限。 MySQL为源库时需要具有MySQL系统库的查询权限、PROCESS权限和待迁移数据库的所有权限。从MySQL-8.0版本开始,针对存储过程和存储函数,还需要SHOW_ROUTINE权限。 GoldenDB为源库时需要具有GoldenDB系统库的查询权限、PROCESS权限和待迁移数据库的所有权限。针对存储过程和存储函数,还需要SHOW_ROUTINE权限。 Microsoft SQL Server为源库时需要具有VIEW DEFINITION权限。 以MySQL和GoldenDB为源,如果给用户赋予了全局的SELECT权限,SHOW_ROUTINE权限也能通过,无需再单独授予。 父主题: 创建评估项目
  • 操作步骤 登录UGO服务。 单击左侧导航栏的“数据源管理”。 在数据源管理页面,单击右上角的“创建数据源”按钮。 进入创建数据源页面,完成基本信息的填写。 基本信息填写完成后,“开始测试”高亮显示。 图1 创建数据源 表1 创建数据源参数说明 参数名称 说明 名称 在数据源管理项目列表中显示的名称。 唯一且长度范围为5到50个字符,只允许包含英文字母、数字、下划线、中划线。以字母开头、数字或字母结束。 数据库类型 下拉选择待创建的数据库类型。当前仅支持管理GaussDB和MySQL数据源信息。 网络类型 公网网络:通过弹性公网IP(Elastic IP,EIP)进行源库连接。 连接方法 仅支持通过服务器名进行连接。 数据库名称 待进行管理的数据库名称。 主机类型 当前仅支持主机IP地址。 主机IP地址 填写具体主机IP地址,IP地址支持IPv4和IPv6。 说明: 支持IPv6数据库如下:MySQL。 主机端口 待进行管理的数据库端口。 用户名 待进行管理的数据库用户名。 由字母、数字、“_”、“-”、“$”、“#”组成,长度为2-128个字符,必须以字母、数字、“.”、“_”、“-”开头且允许使用单引号包裹的用户名 密码 待进行管理的数据库密码。 密码最多支持50个字符长度。 单击“开始测试”,测试通过显示“已连接”,右下角“创建”高亮显示。 当前仅测试连通性,若断连或权限不足,会导致“连接数据库失败”,无法创建数据源。 单击创建。显示“数据源创建成功。”。 单击“关闭”,返回数据源管理页面,用户可以看到最新创建的数据源已在列表中。 可通过数据源ID、名称、数据库名称、数据库类型、IP地址及端口信息进行搜索。 图2 数据源管理
  • 规则约束 所有涉及update、delete规则项,均不支持多表操作审核。 update、delete多表操作仅支持规则项:“不应用单条update、delete语句对多个表实现更新、删除操作”。 对于这两个规则,“在PL/pgSQL中,关键字建议大写,非关键字小写”、“sql语句中,关键字建议大写,非关键字小写”,不要在以对象名作为非保留关键字的语句中使用,存在审核不准确情况,比如:SELECT ID FROM name,name是非保留关键字。 “查询系统视图时,如果使用对象名作为筛选条件,对象名应使用小写”支持的系统视图参见表2。 “谨慎删除数据库对象及清理数据”,其中阈值中支持审核SQL语法见表表3 表2 视图审核 视图名 所属schema 表示对象名的列 adm_arguments pg_catalog、sys owner、object_name、package_name、argument_name adm_audit_object pg_catalog、sys username、owner、obj_name、action_name adm_audit_session pg_catalog、sys username、action_name adm_audit_statement pg_catalog、sys username、obj_name、action_name adm_col_comments pg_catalog、sys owner、table_name、column_name、schema adm_col_privs pg_catalog、sys grantor、owner、grantee、table_schema、table_name、column_name、privilege adm_coll_types pg_catalog、sys owner、type_name、elem_type_mod、elem_type_owner、elem_type_name adm_constraints pg_catalog、sys owner、constraint_name、table_name、index_owner、index_name adm_indexes pg_catalog、sys owner、index_name、table_name、table_owner、tablespace_name adm_ind_columns pg_catalog、sys index_owner、index_name、table_name、table_owner、column_name adm_objects pg_catalog、sys owner、object_name、subobject_name adm_procedures pg_catalog、sys owner、object_name、procedure_name、impltypeowner、impltypename adm_role_privs pg_catalog、sys grantee、granted_role adm_tab_col_statistics pg_catalog、sys owner、table_name、column_name、schema adm_roles pg_catalog、sys role adm_source pg_catalog、sys owner、name adm_sys_privs pg_catalog、sys grantee、privilege adm_tab_cols pg_catalog、sys owner、table_name、column_name、data_type_owner、schema、qualified_col_name adm_tab_privs pg_catalog、sys grantee、owner、table_name、grantor、privilege adm_tables pg_catalog、sys owner、table_name、tablespace_name adm_tab_columns pg_catalog、sys owner、table_name、column_name、data_type_owner、schema adm_tab_comments pg_catalog、sys owner、table_name、column_name、schema adm_tab_statistics pg_catalog、sys owner、table_name adm_triggers pg_catalog、sys owner、trigger_name、table_owner、table_name adm_type_attrs pg_catalog、sys type_name、attr_name、attr_type_name、character_set_name adm_types pg_catalog、sys owner、type_name adm_users pg_catalog、sys username、default_tablespace、temporary_tablespace、default_collation adm_views pg_catalog、sys owner、view_name db_all_tables pg_catalog、sys owner、table_name、tablespace_name db_arguments pg_catalog、sys owner、object_name、package_name、argument_name db_col_comments pg_catalog、sys owner、table_name、column_name、schema db_col_privs pg_catalog、sys grantor、owner、grantee、table_schema、table_name、column_name、privilege db_coll_types pg_catalog、sys owner、type_name、elem_type_mod、elem_type_owner、elem_type_name db_constraints pg_catalog、sys owner、constraint_name、table_name、index_owner、index_name db_indexes pg_catalog、sys owner、index_name、table_name、table_owner、tablespace_name db_ind_columns pg_catalog、sys index_owner、index_name、table_name、table_owner、column_name db_objects pg_catalog、sys owner、object_name、subobject_name db_procedures pg_catalog、sys owner、object_name db_tab_col_statistics pg_catalog、sys owner、table_name、column_name、schema db_source pg_catalog、sys owner、name db_tab_columns pg_catalog、sys owner、table_name、column_name、data_type_owner、schema db_tab_comments pg_catalog、sys owner、table_name、schema db_tables pg_catalog、sys owner、table_name、tablespace_name db_triggers pg_catalog、sys trigger_name、table_owner、table_name db_types pg_catalog、sys owner、type_name db_users pg_catalog、sys username db_views pg_catalog、sys owner、view_name dict pg_catalog、sys table_name dictionary pg_catalog、sys table_name my_col_comments pg_catalog、sys owner、table_name、column_name、schema my_col_privs pg_catalog、sys grantor、owner、grantee、table_schema、table_name、column_name、privilege my_coll_types pg_catalog、sys owner、type_name、elem_type_mod、elem_type_owner、elem_type_name my_constraints pg_catalog、sys owner、constraint_name、table_name、index_owner、index_name my_indexes pg_catalog、sys owner、index_name、table_name、table_owner、tablespace_name my_ind_columns pg_catalog、sys index_owner、index_name、table_name、table_owner、column_name my_objects pg_catalog、sys object_name、subobject_name my_procedures pg_catalog、sys owner、object_name、procedure_name、impltypeowner、impltypename my_role_privs pg_catalog、sys grantee、granted_role my_tab_col_statistics pg_catalog、sys table_name、column_name、schema my_source pg_catalog、sys owner、name my_tab_columns pg_catalog、sys owner、table_name、column_name、data_type_owner、schema my_tab_comments pg_catalog、sys owner、table_name、column_name、schema my_tab_statistics pg_catalog、sys table_name my_tables pg_catalog、sys owner、table_name、tablespace_name my_triggers pg_catalog、sys owner、trigger_name、table_owner、table_name my_type_attrs pg_catalog、sys type_name、attr_name、attr_type_name、character_set_name my_types pg_catalog、sys type_name my_views pg_catalog、sys owner、view_name pg_indexes pg_catalog、sys schemaname、tablename、indexname、tablespace pg_roles pg_catalog、sys rolename pg_tables pg_catalog、sys schemaname、tablename、tableowner、tablespace、tablecreator pg_user pg_catalog、sys username、nodegroup pg_views pg_catalog、sys schemaname、viewname、viewowner column_privileges information_schema、sys grantor、grantee、table_catalog、table_schema、table_name、column_name columns information_schema、sys table_catalog、table_schema、table_name、column_name constraint_column_usage information_schema、sys table_catalog、table_schema、table_name、column_name、constraint_catalog、constraint_schema、constraint_name constraint_table_usage information_schema、sys table_catalog、table_schema、table_name、constraint_catalog、constraint_schema、constraint_name enabled_roles information_schema、sys role_name schemata information_schema、sys catalog_name、schema_name、schema_owner、default_character_set_catalog、default_character_set_schema、default_character_set_name table_constraints information_schema、sys constraint_catalog、constraint_schema、constraint_name、table_catalog、table_schema、table_name table_privileges information_schema、sys grantor、grantee、table_catalog、table_schema、table_name tables information_schema、sys table_catalog、table_schema、table_name、self_referencing_column_name、user_defined_type_catalog、user_defined_type_schema、user_defined_type_name triggers information_schema、sys trigger_catalog、trigger_schema、trigger_name、event_object_catalog、event_object_schema、event_object_table、action_reference_old_table、action_reference_new_table usage_privileges information_schema、sys grantor、grantee、object_catalog、object_schema、object_name views information_schema、sys table_catalog、table_schema、table_name 表3 支持审核的SQL语法 DDL类型 SQL语法 DROP DROP TABLE, DROP TABLESPACE, DROP AGGREGATE, DROP AUDIT POLICY, DROP CAST, DROP DATABASE, DROP DATA SOURCE, DROP DIRECTORY, DROP EVENT, DROP FOREIGN TABLE, DROP GLOBAL CONFIGURATION, DROP GROUP, DROP MASKING POLICY, DROP MATERIALIZED VIEW, DROP MODEL, DROP OPERATOR, DROP OWNED, DROP PACKAGE, DROP PACKAGE BODY, DROP PROCEDURE, DROP RESOURCE LABEL, DROP RESOURCE POOL, DROP ROLE, DROP ROW LEVEL SECURITY POLICY, DROP RULE, DROP PUBLICATION, DROP SCHEMA, DROP SEQUENCE, DROP FUNCTION, DROP SERVER, DROP SUBSCRIPTION, DROP SYNONYM, DROP TEXT SEARCH CONFIGURATION, DROP TEXT SEARCH DICTIONARY, DROP TRIGGER, DROP TYPE, DROP USER, DROP USER MAPPING, DROP VIEW, DROP WEAK PASSWORD DICTIONARY ALTER ALTER DROP PARTITION, ALTER TRUNCATE PARTITION, ALTER DROP COLUMN, ALTER DROP CONSTRAINT, ALTER DROP FOREIGN TABLE, ALTER DROP AUDIT POLICY, ALTER DROP MASKING POLICY, ALTER DROP SERVER, ALTER DROP TEXT SEARCH CONFIGURATION, ALTER DROP USER MAPPING, ALTER DROP DATA SOURCE TRUNCATE TRUNCATE
共100000条