信创改造mysql迁移达梦遇见的问题,及解决方案

mysql转达梦问题
安装初始化达梦数据库(默认安装即可)
安装达梦数据库(windows、linux)

初始化数据库实例关键信息

工具:DM数据库配置助手

步骤如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

初始化数据库实例后,切换到DM管理工具进行连接

执行数据库兼容性sql

查看COMPATIBLE_MODE参数:

select para_name,para_value,para_type from v$dm_ini where para_name=‘COMPATIBLE_MODE’;

经过查询参数意义如下:

0:不兼容,1:兼容SQL92标准,2:兼容ORACLE,3:兼容MS SQL SERVER,4:兼容MYSQL

我们需要兼容mysql,所以执行
sp_set_para_value(2,‘COMPATIBLE_MODE’,4);
执行完成记得提交事务!!这个是区别于mysql得必备步骤。

字符串比较大小写敏感取消原因说明

如果不取消,那么每个查询都得加上数据库名(模式名).表名进行查询,并且表名还得加上双引号,where筛选条件后得列名和值也都得加上双引号,语法很是严格
取消了大小写敏感后,那么我们springboot中得某些jar包内得sql语法兼容性就更强了,至少可以保证顺利启动

写法更类似mysql,如: 可以直接写成select * from sys_user进行查询操作

数据库迁移兼容问题

我们这里主要是mysql迁移达梦实现

主要是以下几点注意:

1.mysql中json格式转达梦数据类型。

这个json类型在mysql中是存在得,但是在达梦中是不存在得,直接转是不能转成功得。

将mysql中得json数据类型转成longText类型,然后再重新进行迁移,就可以完美迁移成功了,如果最好在在列进行约束下,设置列约束IS JSON,这样在进行存储得时候就可以按需存储。

2. mysql中和达梦varchar类型字符和字节数不一致,mysql中varchar(20),在达梦中差不多需要varchar(40)才能够存储。

按前面得图片中配置varchar类型以字符存储勾上后就可以完美解决问题

3. goupby 和 orderby不能作用于text、blob、clob等大字段中。

在DM8上对大字段类型列进行排序、分组等操作时,会报错-2685:试图在blob或者clob列上排序或比较

处理方式:修改数据库参数ENABLE_BLOB_CMP_FLAG

– 第三个参数是0或者1 0是不能操作大字段;类型 1是可以操作大数据类型

  sp_set_para_value(1,'ENABLE_BLOB_CMP_FLAG',1);

– 查询是否更改成功

Select para_name,para_value,para_type from v$dm_ini where para_name='ENABLE_BLOB_CMP_FLAG';

执行完成后提交事务。

springboot整合act

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值