问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

MySQL替换达梦数据的2种方式实践

创作时间:
作者:
@小白创作中心

MySQL替换达梦数据的2种方式实践

引用
CSDN
1.
https://blog.csdn.net/qq_38840984/article/details/140243693

在政务项目中,数据库国产化改造是一个重要的技术课题。本文将介绍两种将MySQL数据库替换为达梦数据库的实践方案,包括使用达梦的数据库迁移工具和通过代码配置进行适配。

概要

在政务项目中,数据库国产化改造是一个重要的技术课题。本文将介绍两种将MySQL数据库替换为达梦数据库的实践方案,包括使用达梦的数据库迁移工具和通过代码配置进行适配。

整体思路以及实施过程

数据库适配一般有两种方案:

  1. 使用达梦的数据库迁移工具:达梦提供了专门的数据迁移工具,适合进行数据迁移。但是需要注意,迁移后可能不完全兼容,例如字段类型、数据非空判断等可能需要额外处理。迁移后需要进行系统测试以确保功能正常。

    从达梦官网下载Windows安装包,解压后可以找到迁移工具。迁移工具支持表结构迁移和数据迁移。

数据库配置的改动

在适配过程中,需要注意以下配置改动:

  • 计算精度设置:MySQL默认不保留小数可能导致SQL问题,需要设置计算精度。

    sp_set_para_value(2,'CALC_AS_DECIMAL',1);
    
  • GROUP BY 语句配置:达梦数据库要求GROUP BY 语句必须包含所有查询字段。如果需要修改这一行为,可以调整以下配置:

    sp_set_para_value(1,'GROUP_OPT_FLAG',1);
    

实操过程

  1. 下载源码编译:从Gitee下载源码并进行编译,源码地址:https://gitee.com/myth20/mysql2dm-spring-boot-starter/tree/master

  2. 添加依赖:将达梦数据库驱动和达梦proxy添加到项目依赖中。

    <dependency>
        <groupId>com.dameng</groupId>
        <artifactId>DmJdbcDriver18</artifactId>
        <version>8.1.2.79</version>
    </dependency>
    <dependency>
        <groupId>com.myth</groupId>
        <artifactId>mysql2dm-spring-boot-starter</artifactId>
        <version>1.0.0</version>
    </dependency>
    
  3. 修改数据库配置:更新数据源配置,替换为达梦数据库的驱动和连接URL。

    datasource:
        type: com.alibaba.druid.pool.DruidDataSource
        druid:  
          driver-class-name: dm.jdbc.driver.DmDriver
          username: root
          password: abc123
          url: jdbc:dm://ip:port/database/rewriteBatchedStatements=true&zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=utf-8
    
  4. 测试结果:通过查看转换后的SQL日志,可以快速发现并解决转换过程中存在的问题。

小结

  • 第一种方式:需要全量核对SQL语法,工作量较大。
  • 第二种方式:相对更便捷,但可能存在不兼容的语法,且语法转换会带来一定的性能消耗,需要手动适配。

第二种方式也可以应用于其他中间件的迁移,例如XXL-JOB、Nacos等。后续将分享XXL-JOB、Nacos底层数据库替换的源码,提供SQL表结构和源码仓库。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号