检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
MySQL配置 设置MySQL配置参数可在迁移MySQL数据库脚本时自定义迁移工具的行为。 打开config文件夹中的features-mysql.properties文件,并根据实际需要设置features-mysql.properties文件中的配置参数中的参数。 表1 features-mysql
MySQL SQL迁移 工具支持从MySQL到GaussDB(DWS)的迁移,包括模式、DML、查询、系统函数、PL/SQL等。 在LINUX中执行MySQL迁移 在Linux中执行以下命令开始迁移。用户需指定源数据库、输入和输出文件夹路径和日志路径;应用程序语言类型是SQL。
MySQL语法迁移 支持的关键词和特性 数据类型 函数和表达式 表(可选参数、操作) 索引 注释 数据库 数据操作语句(DML) 事务管理和数据库管理 父主题: DSC
timediff(timestamp | time | text, timestamp | time | text) 描述:将两个日期参数相减。若相减值为负,则函数返回值为负。两个入参类型要求一致。该函数仅8.2.0及以上集群版本支持。 返回值类型:time 示例: 1 2 3 4 5 SELECT
数据库 在MySQL中,DATABASE 是一种模式对象,等同于Oracle、GaussDB(DWS)数据库的SCHEMA概念。DSC工具迁移时考虑了以下两个场景。 创建数据库 输入示例 create database IF NOT EXISTS dbname1 CHARACTER
timediff(timestamp | time | text, timestamp | time | text) 描述:将两个日期参数相减。若相减值为负,则函数返回值为负。两个入参类型要求一致。该函数仅8.2.0及以上集群版本支持。 返回值类型:time 示例: 1 2 3 4 5 SELECT
时间/日期函数 age(timestamp, timestamp) 描述:将两个参数相减,并以年、月、日作为返回值。若相减值为负,则函数返回亦为负。 返回值类型:interval 示例: 1 2 3 4 5 SELECT age(TIMESTAMP '2001-04-10', TIMESTAMP
例如下,具体参见CREATE DATABASE语法。 1 CREATE DATABASE ora_compatible_db DBCOMPATIBILITY 'ORA'; 表1 兼容项差异 兼容项 Oracle兼容 Teradata兼容 MySQL兼容 空串 只有null。 区分空串和null。
GaussDB(DWS)支持Oracle、Teradata和MySQL数据库兼容模式。 在TD/MySQL兼容模式下,空和NULL是不相等的,在ORA兼容模式下,空和NULL是相等的。因此上述场景可能是因为两个环境中数据库的兼容性模式设置不一致导致。 可通过查询PG_DATABASE系统表确认数据库的兼容模式: 1
CHANGE修改列 CHECK约束 DROP删除表 LIKE 表克隆 MODIFY修改列 TRUNCATE 删除表 ROUNDROBIN表 RENAME 重命名表名 设置与清除列默认值 字段名重命名 行列存压缩 添加与删除列 父主题: MySQL语法迁移
函数和表达式 概述 由于MySQL中的函数与表达式,在GaussDB(DWS)中不存在或者存在一定的差异,DSC工具会根据GaussDB(DWS)的支持情况做相应迁移。(兼容ADB for MySQL的语法支持) 类型对照 表1 类型对照表 MySQL/ADB函数类型 描述 MySQL
注释 MySQL支持由 '#' 或 '--' 字符引起的单行注释,而GaussDB(DWS)仅支持由双破折号 '--' 字符引起的单行注释。DSC工具迁移时会将 '#' 转化为 '--' 注释。 输入示例 1 2 3 4 5 6 7 ## comment sample create
如源数据为MySQL线下版本,请确保网络连通。 步骤一:准备MySQL源表数据 已购买云数据库RDS的MySQL引擎(本实践以MySQL 8.0.x为例),参见购买RDS实例。 已创建源数据库rds_demo,字符集utf8mb4,且库中已存在表rds_t1和数据。 步骤二:创建DWS集群
唯一索引 普通索引和前缀索引 HASH索引 BTREE索引 SPATIAL空间索引 FULLTEXT全文索引 删除索引 索引重命名 父主题: MySQL语法迁移
除法表达式 MySQL中,除法表达式中,当除数为0时,会返回null值。DWS会报错,因此对除法表达式进行转换,增加一个if条件表达式。 输入示例 1 2 select sum(c1) / c2 as result from table_t1; select sum(c1) / count
UPDATE MySQL的UPDATE操作形式包括:LOW_PRIORITY、ORDER BY、LIMIT 、IGNORE。 LOW_PRIORITY MySQL UPDATE语句如果使用LOW_PRIORITY修饰符,则执行UPDATE延迟。 输入示例 1 2 #测试 LOW_PRIORITY
TRUNCATE 删除表 MySQL在使用TRUNCATE语句删除表数据时可以省略“TABLE”关键字,GaussDB(DWS)不支持这种用法。此外,DSC工具在做迁移TRUNCATE语句时会添加“CONTINUE IDENTITY RESTRICT”关键字。 输入示例 1 2 TRUNCATE
引号 单引号 MySQL中别名带单引号,GaussDB(DWS)不支持,DSC迁移改为双引号。 输入示例 1 select name as 'mingzi' from t1; 输出示例 1 2 3 4 SELECT name AS "mingzi" FROM t1; 反引号
LIKE 表克隆 MySQL数据库中,可以使用CREATE TABLE .. LIKE ..方式克隆旧表结构创建新表。GaussDB(DWS)也支持这种建表方式。DSC工具迁移时会添加额外的表属性信息。 输入示例 1 2 3 4 5 6 7 8 CREATE TABLE IF NOT
主要包括云上和云下的MySQL数据迁移,支持整库迁移或者单表迁移,本文以云下MySQL的整库迁移为例。 云下MySQL数据迁移: CDM通过公网IP访问MySQL数据库,CDM与GaussDB(DWS)在同一个VPC下,CDM分别与MySQL和DWS建立JDBC连接。 云上RDS-MySQL数据迁移: