DM数据迁移工具提供了主流大型数据库迁移到DM、DM迁移到主流大型数据库、DM到DM、文件迁移到DM以及DM迁移到文件的功能。

DM数据迁移工具支持:
◆ 主流大型数据库Oracle、SQLServer、MySQL、DB2、PostgreSQL、Informix、Kingbase、Sybase的模式、表、视图、序列、索引迁移到DM;
◆ ODBC数据源、JDBC数据源的模式、表、视图迁移到DM;
◆ DM数据库的模式、表、视图、序列、索引迁移到主流大型数据库Oracle、SQLServer、MySQL;
◆ DM数据库之间模式、表、序列、视图、存储过程/函数、包、类、同义词、触发器、对象权限的迁移;
◆ DM数据库模式、表、序列、视图、存储过程/函数、包、类、同义词、触发器、对象权限迁移到XML文件;
◆ DM数据库模式、表、序列、视图、存储过程/函数、包、类、同义词、触发器、对象权限迁移到SQL脚本文件;
◆ DM数据库的表、视图数据迁移到文本文件;
◆ DM数据库的表、视图数据迁移到Excel文件;
◆ DM数据库的表、视图数据迁移到Word文件;
◆ SQL脚本文件迁移到DM数据库;
◆ XML文件迁移到DM数据库;
◆ 指定格式的文本文件、Word文件和Excel文件迁移到DM数据库。

本文介绍达梦DTS的使用和从Oracle到达梦的迁移及常见问题分享。

准备工作:

1、搭建MySql环境,填充数据

2、部署达梦数据库,字符集参数注意和Mysql一致,大小写建议不敏感

开始迁移:

 1、打开DTS后新建工程

 

达梦8的mysql模式 达梦和mysql性能_DM

 2、新建迁移

达梦8的mysql模式 达梦和mysql性能_达梦8的mysql模式_02

 3、选择迁移类型,MySQL到DM

达梦8的mysql模式 达梦和mysql性能_MySQL_03

 4、输入源端信息

达梦8的mysql模式 达梦和mysql性能_达梦8的mysql模式_04

 5、输入目标端信息

达梦8的mysql模式 达梦和mysql性能_达梦8的mysql模式_05

6、在达梦上创建相应的用户和表空间,MySQL 的体系架构是单实例多库,达梦的体系架构是单库多实例,从 MySQL 迁移到达梦的时候就需要针对 MySQL 中的每一个库在达梦里面创建一个用户和表空间来对应,Mysql一个库相当于达梦一个模式

达梦8的mysql模式 达梦和mysql性能_达梦8的mysql模式_06

 7、选择迁移到新建的模式

达梦8的mysql模式 达梦和mysql性能_DM_07

 8、选择迁移对象

达梦8的mysql模式 达梦和mysql性能_数据库_08

 9、审阅迁移任务

达梦8的mysql模式 达梦和mysql性能_DM_09

迁移错误处理

 10、查看失败的迁移,对其进行处理,DM 和 MySQL 体系结构上存在差异,SQL 语法也存在一定的差异,DM 针 对 MySQL 做了部分兼容性,但由于有根本性的差异,还需要一定的人工干预

达梦8的mysql模式 达梦和mysql性能_数据库_10

 这里的报的错都是违反表唯一性约束,这种情况是因为表中设置了唯一性约束或者主键约束,但是数据中有重复记录,还有可能是原始库的约束被禁用了,或者数据重复迁移造成的

在确定源数据没有问题的情况下,迁移的时候选择删除后再拷贝,如下图所示:

在迁移界面中,选中要迁移的表,然后点击【转换】

达梦8的mysql模式 达梦和mysql性能_MySQL_11

达梦8的mysql模式 达梦和mysql性能_数据库_12

 然后可以看到刚才的出错迁移成功了,

达梦8的mysql模式 达梦和mysql性能_达梦8的mysql模式_13

 11、这里我还遇到的一个错误是:/* 错误消息: 对象[CREATEDATE]DEFAULT约束表达式无效*/ 

达梦8的mysql模式 达梦和mysql性能_MySQL_14

 这是因为在 MySQL 中时间类型 TIMESTAMP 默认 default 设置为“0000-00-00 00:00:00”,而 在 DM 中 TIMESTAMP 类型数据不能为“0000-00-0000:00:00”,在 DM 中是不合法的,必须在 ‘0001-01-01 00:00:00.000000’ 到 ‘9999-12-31 23:59:59.999999’之间