Mysql迁移DM国产达梦数据库完整步骤记录

 更新时间:2024年07月06日 11:52:10   作者:重生1993  
最近工作中用到国产数据库达梦,简称DM,下面这篇文章主要给大家介绍了关于Mysql迁移DM国产达梦数据库完整步骤的相关资料,文中通过图文介绍的非常详细,需要的朋友可以参考下

甲方爸爸要求,信创的机器(arm架构),现在需要迁移mysql到达梦,先在本地(x86-64架构)模拟下咯!

1 快速迁移

1.1 已有用户的情况下迁移

用户:ESO

模式:ESO

不理解账号创建的同学,先直接跳转章节3.3部分查看。

不会安装达梦数据库的同学,移步本人其他文章查看(Windows版,Docker防踩坑版、信创版)

1.1.1 打开迁移工具

1.1.2 创建工程

右击空白处,新建

1.1.3 新建迁移

1.1.3.1 选择迁移方式

MySql迁移DM

1.1.3.2 配置数据源

输入你的mysql配置后,刷新,选择要迁移的数据库名

1.1.3.3 配置目的

输入你要迁入的达梦数据库的配置

1.1.3.4 迁移选项

先用默认

保持对象名大小写,不勾选,达梦默认表名和字段名都大写

1.1.3.5 指定模式

1.1.3.6 指定对象

全选你要迁移的表

1.1.3.7 审阅任务

点击完成开始迁移

1.1.3.8 迁移完成

1.1.4 查看迁移后的表

1.1.4.1 登录新用户ESO

1.1.4.2 查看表数据

1.1.4.3  spring连接配置

1.2 无用户的情况下迁移

和1.1操作流程一样,但是账号用的是SYSDBA;

迁移后的表,会自动新建一个模式ESO,但是是属于SYSDBA用户的,也没有独立的表空间;

2 迁移后的报错

2.1报错内容

无效的表或视图名[SYS_USER]
; 第3 行附近出现错误:
无效的表或视图名[SYS_USER]; nested exception is dm.jdbc.driver.DMException: 第3 行附近出现错误:
无效的表或视图名[SYS_USER]] with root cause

dm.jdbc.driver.DMException: 第3 行附近出现错误:
无效的表或视图名[SYS_USER]
    at dm.jdbc.driver.DBError.throwException(DBError.java:684)

提取关键信息

  • 无效的表或视图名[SYS_USER]
  • ### SQL: SELECT  *  FROM sys_user     WHERE (username = ?)

把报错中的sql,在达梦数据库里执行一遍

发现该sql语句是报错的;

2.3 分析报错

首先,达梦数据库安装时,选择的是大小写敏感,所以查看达梦的表名是否大写

所以,sql语句里必须写成:

SELECT  *  FROM  "SYS_USER"

还是报错,原因是,当前表所在的模式(理解为mysql的数据库)是ESO,我们登录账户是SYSDBA,两者不一致时,需要写上模式作为前缀。若一致则不需要写(用ESO账号登录时)

正确sql如下

select  *  from "ESO"."SYS_USER"

2.3暴力解决Java代码中问题

2.3.1实体类Entity解决方式

通过@TableName()注解,指定表名。

@TableName("sys_user")   改成   @TableName("ESO.SYS_USER")

2.3.2mapper里的原始sql解决方式

报错内容:

首先确认这里的实体类SysUserTokenEntity已经修改兼容好了。

“注意,过滤只看.java文件”

然后过滤只看.xml文件,去排查mapper。

修改完成如下:

2.3.3其他手动sql解决方式

  • 把表名qrtz_手动改成大写QRTZ_;
  • 前缀加上 ESO.
  • 完整:"ESO.QRTZ_"

2.4破釜沉舟解决问题

        暴力解决,需要一个个的去兼容修改,适合代码量不多的情况,很麻烦很费时间,还影响原来的代码;

        我们采用章节3进行可视化重装,实现指定用户和模式以及大小写不敏感;需要用到章节1的快速迁移来实现。

3 可视化重装 for Windows

3.1删除实例服务

3.1.1停止实例服务

打开DM库服务查看器

右击停止数据库实例服务

3.1.2删除数据库服务实例

打开DM数据库配置助手

选择数据库

确认删除

3.2 创建数据库实例

3.2.1 新建

3.2.2 模板

默认即可

3.2.3 数据实例保存目录

一般默认即可

3.2.4 数据库名配置,默认即可

3.2.4 初始化参数(丝滑迁移的关键1)

注意时区、字符集编码、大小写敏感

其中,大小写敏感必须去掉,

这样spring工程代码适配时,不需要暴力的去一个个转换成大写了

完成

3.2.5 再次启动服务

3.3 操作数据库

3.3.1 新建连接

账号密码一样

SYSDBA/SYSDBA

3.3.2 新建表空间

红框部分自己写

文件路径MY_ESO\MY_ESO.DBF不可以存在,否则会创建失败!

完整路径:E:\dmdbms\data\MY_ESO\MY_ESO.DBF

创建成功后,可以看到MY_ESO.DBF文件自动生成。

查看新建的表空间

3.3.3 创建用户(丝滑迁移的关键2)

新建用户ESO,会自动创建模式(类似数据库)ESO;

这样,原本的spring java代码,就不需要手动的去加上ESO.前缀

右击管理用户,新建

3.3.4 常规设置

账号密码设置、关联表空间和索引表空间、散列算法

ESO/12345678

创建成功

密码长度太短会报错

3.3.5 授权

3.3.6 模式

新建用户成功后,会生成一个和用户名同名的模式

模式里面才是实际对表的增删改查等操作

总结

到此这篇关于Mysql迁移DM国产达梦数据库完整步骤的文章就介绍到这了,更多相关Mysql迁移DM国产达梦数据库内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • MySQL通透详解架构设计

    MySQL通透详解架构设计

    这篇文章主要介绍了MySQL架构设计相关基础与原则,帮助大家更好的理解和使用MySQL,感兴趣的朋友可以了解下
    2022-02-02
  • MySQL性能压力基准测试工具sysbench的使用简介

    MySQL性能压力基准测试工具sysbench的使用简介

    这篇文章主要介绍了MySQL性能压力基准测试工具sysbench的使用简介,帮助大家更好的理解和学习使用MySQL,感兴趣的朋友可以了解下
    2021-04-04
  • SQL实现时间序列错位还原案列

    SQL实现时间序列错位还原案列

    这篇文章小编主要向大家介绍的是时间序列错位还原之SQL实现案例详解的相关资料,需要的小伙伴可以参考下面文章的具体内容
    2021-09-09
  • mysqlreport显示Com_中change_db占用比例高的问题的解决方法

    mysqlreport显示Com_中change_db占用比例高的问题的解决方法

    最近公司的mysql服务器经常出现阻塞状态。动不动就重启,给用户访问带来了相当的不便。
    2009-05-05
  • CentOS下安装MySQL5.6.10和安全配置教程详解

    CentOS下安装MySQL5.6.10和安全配置教程详解

    这篇文章主要介绍了CentOS下安装MySQL5.6.10和安全配置教的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2016-12-12
  • 一篇文章带你掌握MySQL索引下推

    一篇文章带你掌握MySQL索引下推

    索引条件下推,也叫索引下推,英文全称Index Condition Pushdown,简称ICP,索引下推是MySQL5.6新添加的特性,用于优化数据的查询,下面这篇文章主要给大家介绍了关于MySQL索引下推的相关资料,需要的朋友可以参考下
    2022-12-12
  • union和子查询中order by一起使用导致排序失效问题及解决

    union和子查询中order by一起使用导致排序失效问题及解决

    这篇文章主要介绍了union和子查询中order by一起使用导致排序失效问题及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-12-12
  • 一篇文章学会SQL中的递归用法(Mysql)

    一篇文章学会SQL中的递归用法(Mysql)

    这篇文章主要给大家介绍了关于如何一篇文章学会SQL中的递归用法,众所周知目前的mysql版本中并不支持直接的递归查询,但是通过递归到迭代转化的思路,还是可以在一句SQL内实现树的递归查询的,需要的朋友可以参考下
    2023-10-10
  • MySQL数据库安装和Navicat for MySQL配合使用教程

    MySQL数据库安装和Navicat for MySQL配合使用教程

    MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下公司。这篇文章主要介绍了MySQL数据库安装和Navicat for MySQL配合使用,需要的朋友可以参考下
    2019-06-06
  • MySQL查询优化必备知识点总结

    MySQL查询优化必备知识点总结

    这篇文章主要给大家介绍了关于MySQL查询优化必备知识点的相关资料,文中介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03

最新评论