开发者社区> 1614584615711948> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

浅谈mysql数据库迁移至国产化达梦数据库

简介: 项目要求mysql数据库数据需要转到达梦数据库,对于达梦数据库的了解尚且不多,一开始使用手动转SQL脚本,效率极低,非常容易出错。达梦数据库的资料实在有限,经过后期研究,发现原来DM已经有自己的数据迁移工具,使用之后非常方便。对mysql数据库转达梦数据库的操作流程做一个简要分享。
+关注继续查看

1、首先我们需要在本地安装达梦数据库,安装好达梦数据库之后,便可以在开始->所有工具->达梦数据库中看到它自带的各种操作工具,如图所示:
1.png

2、创建项目工程
选择DM数据迁移工具,然后点击进入,在迁移管理里右键新建工程
image.png
输入工程名称,名称可以随便写,不影响后续操作
image.png

3、在项目下新建迁移
然后选中项目下的迁移,右键新建迁移,自定义迁移名称,点击确定
image.png

4、配置迁移内容
点击新建的迁移可以看到如下页面,并点击下一步:
image.png
然后选择mysql ==> DM7,点击下一步
image.png
输入对应的mysql数据库信息,点击刷新会自动从连接的数据库中带出数据库名,可下拉选择要迁移的数据库
注意指定驱动项需要mysql的驱动包,除了DM的包不需要导入之外,其他的都要,也就是这个,请选择合适自己数据库驱动包
image.png
image.png
选择迁移数据库后,点击下一步
image.png

输入DM的相关信息,此时指定驱动不需要选择,因为DM自带了自己的包,点击下一步
image.png
在目的模式选择需要mysql需要导入到对应的DM的数据库名称,如果还没有先去DM数据库创建数据库名称。
选中之后点击下一步
image.png

点击选择,就会全部选中,也就是你全部mysql的表都会被导入,然后点击下一步
image.png
然后显示的是详细信息,然后点击完成即可
image.png
完成之后便成功的将mysql导入进DM数据库啦!

5、mysql适配达梦数据库一些注意事项:
5.1达梦数据库jdbc驱动版本
因为使用 低版本的驱动,在sql语句上的写法可能会不同,例如查询时要加上模式名等
解决方法: 使用下面这个版本驱动,sql语句大部分和mysql一样

com.dm
jdbc
1.8

5.2达梦不支持mysql默认时间函数
使用达梦数据库字段的迁移工具,从mysql迁移数据库到达梦里时,如果mysql里表的时间字段设置了默认值,使用的是CURRENT_TIMESTAMP函数,在达梦8里迁移会报错,达梦7可正常迁移。
解决方法: 先将mysql中的表的默认值去掉,把表结构导过去之后,再在达梦中执行语句alter table 表名 modify 字段名 default sysdate
5.3达梦数据库不支持某些mybatis字符串的拼接写法
mybatis里"%“#{name}”%"这种写法达梦数据库会报错
解决方法: 使用函数CONCAT(‘%’,#{name},‘%’),双引号变成单引号
5.4达梦数据库与mysql数据库部分区别:
--创建表的时候,不支持在列的后面直接加 comment 注释,使用 COMMENT ON IS 代替
--不支持 date_sub 函数,使用 dateadd(datepart,n,date) 代替
--不支持 date_format 函数
--不支持 substring_index 函数等
5.5如果在解决函数适配问题时,直接找不到和MySQL对应的函数,可以看下oracle的相关函数,达梦数据库和 oracle 数据库比较像

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
MySQL数据库篇
1.约束 • 1.1约束的概念和分类 a. 约束的概念 • 约束是作业于表中列上的规则,用于限制加入表的数据 • 约束的存在保证了数据库中数据的正确性,有效性和完整性
43 0
MySQL数据库基本知识
MySQL数据库的基本命令
55 0
MYSQL数据库的日志文件
日志文件:用来记录MySQL实例对某种条件做出响应时写入的文件。如错误日志文件、二进制日志文件、慢查询日志文件、查询日志文件等。 错误日志 show variables like 'log_error'; system hostname; 可以看到错误文件的路径和文件名,默认情况下错误文件的文件名为服务器的主机名。
820 0
【MySql】mysql 数据库数据订正
       工作过程中时常遇到数据订正的需求,该操作本身不难。操作时要求能够保持回滚~对于能够满足回滚的要求,我通常执行备份表,然后执行变更!如果发送订正错误或者用户要求回滚的时候,就完全恢复整个表,这样做会有多余的操作,因为我们只要 实际上可以选择备份要进行...
855 0
1
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载