检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
云上RDS-MySQL数据迁移: RDS、CDM和GaussDB(DWS)均在同一个VPC下,CDM分别与MySQL和DWS建立JDBC连接。如果云上RDS与DWS不在一个VPC,则CDM通过弹性公网IP访问RDS。 迁移前数据检查 连接MySQL实例,查看MySQL数据库情况。 mysql -h <host>-P<port>-u
概述 由于MySQL中的函数与表达式,在GaussDB(DWS)中不存在或者存在一定的差异,DSC工具会根据GaussDB(DWS)的支持情况做相应迁移。(兼容ADB for MySQL的语法支持) 类型对照 表1 类型对照表 MySQL/ADB函数类型 描述 MySQL INPUT
TRUNCATE 删除表 ROUNDROBIN表 RENAME 重命名表名 设置与清除列默认值 字段名重命名 行列存压缩 添加与删除列 父主题: MySQL语法迁移
LOCK GaussDB(DWS)不支持MySQL中的“ALTER TABLE tbName LOCK”语句,DSC工具迁移时会将其删除。 输入示例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
PASSWORD 在MySQL中,PASSWORD表示用户密码。GaussDB(DWS)不支持该参数,DSC迁移时会将该关键字删除。 输入示例 1 2 3 4 5 6 7 CREATE TABLE `public`.`runoob_alter_test`( `dataType1`
数据操作语句(DML) INSERT UPDATE REPLACE 引号 INTERVAL 除法表达式 GROUP BY转换 ROLLUP 父主题: MySQL语法迁移
COLLATE 在MySQL中,COLLATE表示默认的数据库排序规则。GaussDB(DWS)不支持该属性修改表定义信息,DSC迁移时会将该关键字删除。 输入示例 1 2 3 4 5 6 7 8 CREATE TABLE `public`.`runoob_tbl_test`(
GROUP BY转换 MySQL/ADB分组查询的时候允许查询非分组字段,不报错;DWS分组查询时只能查询分组字段和聚集函数,报错。因此补齐没有group by的查询分组字段。 输入示例 1 SELECT e.department_id, department_name, ROUND(AVG(salary)
CHECKSUM 在MySQL中,CHECKSUM表示对所有的行维护实时校验和。GaussDB(DWS)不支持该属性修改表定义信息,DSC迁移时会将该关键字删除。 输入示例 1 2 3 4 5 6 7 8 9 10 11 12 CREATE TABLE `public`
ROLLUP MySQL中的group by column with rollup需要转换为GaussDB(DWS)中的group by rollup (column); 输入示例 1 2 3 select id,product_id,count(1) from czb_account
HASH索引 GaussDB(DWS)不支持HASH索引。DSC工具迁移时会根据GaussDB(DWS)的特性将其迁移为普通索引。 内联HASH索引。 输入示例 1 2 3 4 5 6 7 8 9 10 11 12 CREATE TABLE `public`.`
了数据类型,用户存储数据时,须遵从这些数据类型的属性,否则可能会出错。下表列出了MySQL数字类型到GaussDB(DWS)的转换示例。 类型对照 表1 数字类型对照表 MySQL数字类型 MySQL INPUT GaussDB(DWS) OUTPUT DEC DEC DEC[(M[
集合类型 概述 MySQL ENUM是一个字符串对象,具有从列创建时在列规范中明确枚举的允许值列表中选择的值。 SET是一个字符串对象,可以有零个或多个值,每个值必须从创建表时指定的允许值列表中选择。 类型对照 表1 集合类型对照表 MySQL集合类型 MySQL INPUT GaussDB(DWS)
ENGINE 在MySQL中,ENGINE指定表的存储引擎。当存储引擎为ARCHIVE、BLACKHOLE、CSV、FEDERATED、INNODB、MYISAM、MEMORY、MRG_MYISAM、NDB、NDBCLUSTER和PERFOMANCE_SCHEMA时,DSC支持该属性迁移,迁移过程中会将该属性删除。
MODIFY修改列 MySQL使用MODIFY关键字修改列数据类型、设置非空约束。DSC工具迁移时会根据GaussDB(DWS)的特性进行相应适配。 输入示例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 CREATE
DEFAULT alter table增加列包含not null约束时,如果无default值,在MySQL中会插入默认值,而在GaussDB(DWS)中插入到非空表时会报错,因此针对常见数据类型,alter table add column包含not null约束补充默认default值(详情见表1)。
TRUNCATE 删除表 MySQL在使用TRUNCATE语句删除表数据时可以省略“TABLE”关键字,GaussDB(DWS)不支持这种用法。此外,DSC工具在做迁移TRUNCATE语句时会添加“CONTINUE IDENTITY RESTRICT”关键字。 输入示例 1 2 TRUNCATE
已创建虚拟私有云和子网,参见创建虚拟私有云和子网。 步骤一:准备MySQL数据 购买RDS实例,参见表1配置关键参数,其他参数可保持默认,如需了解详情请参见RDS文档。 表1 RDS参数 参数项 取值 计费模式 按需计费 区域 华北-北京四 实例名称 rds-demo 数据库引擎 MySQL 数据库版本 5.7及以上
runDSC.bat -S mysql 图3 DDL转换 可以在output文件夹下查看转换结果。 图4 DDL转换结果 连接GaussDB(DWS),执行以下SQL语句创建目标数据库,本例为migration。 1 CREATE DATABASE database_name WITH
二进制类型 概述 MySQL BIT数据类型被用于存储比特值。一种类型允许存储位值,可以从1到64。 MySQL BINARY和VARBINARY 类似CHAR并且VARCHAR,只不过它们包含二进制字符串。 类型对照 表1 二进制类型对照表 MySQL二进制类型 MySQL INPUT