数据库和应用迁移 UGO-MySQL To GaussDB配置项使用说明

时间:2024-06-12 14:53:12

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进行散列。

影响:同时解决命名冲突问题和超长问题,但是当拼接名称超长时将丧失名称的可读性。

support.huaweicloud.com/usermanual-ugo/ugo_03_0039.html