软件系统国产化改造开发层面,达梦(DM)数据库改造问题记录

本系统前(vue)后端(java spring boot)为列子,数据库由MySQL--->DM(达梦),中间件为中创的国产化相关软件,如tomcat、nginx、redis等。重点讲数据库及代码端的更改,中间件在服务端以替换的国产化软件替换即可。

1、数据迁移:mysql-->DM

1)首先安装DM数据库,官网下载安装:产品下载 | 达梦在线服务平台

2)安装完毕会由DM迁移工具,用这个工具实现数据库迁移

3)后续就是下一步执行,选择相关数据库及表,执行无误之后就迁移完成,返回DM管理工具(达梦数据库客户端)即可看到已迁移完毕,迁移过程中可能出现问题,如字段、数据冲突等,所以空表迁移问题最少,遇到具体问题根据日志修改后从新执行,我这里五六个库几十张表一起迁移,一次成功,时间几秒钟。(表不复杂,数据少,注意客户端上有当前登录名和端口,后续会用到)

这里有坑!需要特别注意,(1)“保持对象大小写”这个不能勾,很多人说需要勾选,为了保持原样,但是勾选后会报错找不到列名,即便代码中sql是小写,数据库中保持了小写,但是在访问连接的时候仍然是大写!(不勾选默认过来的表名、字段名都是大写)DM对大小写特别敏感。(2)在选择迁移的数据表的时候,特别是多数据库迁移过来的时候尽量选择为同一个模式“SYSDBA”,这样所有表都在同一个模式下面,不然过来还是多模式的话访问的时候sql中需要加上不同的模式名才能访问到表,这样对于开发来说改造的sql也很多,尤其是有些在jar中的改不了,就很麻烦,虽然有很多方式说在连接字符串和其他地方指定,但是我试了不生效,最终就是把所有表都迁移到一个模式,也就是默认模式下面。

4)DM忘记密码怎么办?手工修改dm.ini(安装路径:xxx\DM\data\DAMENG),添加参数配置 ENABLE_LOCAL_OSAUTH = 1,先关闭服务,修改ini后重启就可以登录设置密码。后续添加的参数删除。

 2、数据迁移完毕后更改后端配置(前端不用改造)。

1)更改pom文件配置:添加达梦驱动依赖

2)更改application.yml数据库连接配置,有三个地方需要注意。url连接变化,与mysql的区别,以及dm驱动。

3、错误排查举例,这个配置的地方尝试依次去掉filters: stat,slf4j,wall,我的去掉wall就正常了。如出现其他问题也可根据提示慢慢排查。

Caused by: java.lang.IllegalStateException: dbType not support : dm, url jdbc:dm://127.0.0.1.......

4、改造工程,接下来配置等准备工作做完就是改造的大工程了,也就是mysql和达梦不兼容的sql语法、函数等改造,把mysql中不适配的语法、函数替换为相同作用的dm语法和函数,这里涉及的比较多我就不一一举例了,可根据错误去逐一替换,最后解决所有报错,及系统相关功能检查,所有sql检查后,代码层面系统基本就基本完成,剩余服务端根据提供的国产化工具进行替换就行。后续处理这些sql遇到的问题会再发出来。

5、一些查询的例子,可参考:

MySQL/人大金仓与达梦(DM)SQL语言的一些区别_mysql与达梦语法区别-优快云博客

达梦数据和mysql数据库的区别_达梦数据库和mysql的区别-优快云博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值