Mysql迁移至KingBase(金仓数据库)避坑指南-Java版

这篇具有很好参考价值的文章主要介绍了Mysql迁移至KingBase(金仓数据库)避坑指南-Java版。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

        最近因为项目国产化需要,需要将Mysql数据库适配到金仓数据库中,就此给大家分享一下我的采坑过程。如有错误。恳请指正!

一、资源准备

  1. 官网地址 人大金仓-成为世界卓越的数据库产品与服务提供商
  2. 金仓社区 金仓社区-数据库使用者、DBA开发人员、数据化经营者已入驻
  3. 安装包、证书资源下载地址
    1. 人大金仓-成为世界卓越的数据库产品与服务提供商
    2. 安装包根据需要下载。授权文件一定要记得下载不然无法安装(90天试用好像)。接口驱动下载第一个就好了。技术文档建议下全部的。金仓的技术文档还是很全的!Mysql迁移至KingBase(金仓数据库)避坑指南-Java版
  4. 开发资料
    1. 以下是我下载的资料(PDF-全部文档)Mysql迁移至KingBase(金仓数据库)避坑指南-Java版
  5. 迁移资料详解
    1. jdbc-x86.zip 驱动,相当于JDBC驱动
    2. 主要关注1、2里面的文档Mysql迁移至KingBase(金仓数据库)避坑指南-Java版
    3. 安装后得到的工具库 第一个:集群部署工具 第二个:迁移工具  第三个: 开发工具(相当于Navicat)Mysql迁移至KingBase(金仓数据库)避坑指南-Java版
  6. 其他资源收集
    1. SQL语法转化(SQL迁移利器) http://59.108.228.18:8022/migrate/tools
    2. 社区问答 金仓话题-金仓社区

二、数据库安装

 好啦,资源已经准备好了。现在开始安装。具体安装过程本文并不体现。只附上安装教程和注意事项。

  1. Linux安装
    1. 前置要求:磁盘一定要够,不然安装不上去。笔者本来用虚拟机因为内存不够转到服务器安装了。
    2. 安装教程:KingbaseES 命令行安装数据库 - 技术干货 - 金仓社区
  2. Window安装
    1. 安装教程: KingbaseES iso安装包安装指导说明 - 技术干货 - 金仓社区 基本傻瓜式操作,一步步按需要安装就可以了
  3. 安装注意事项
    1. 磁盘空间一定要够
    2. 如果是Mysql迁移,推荐安装选择Oracle模式并且忽略大小写。同Mysql一致

三、开始迁移

  1. 环境准备
    1. 打开Navicat,准备源数据库,例如 db: test username: root password: mysql
    2. 打开 KStudio.exe,创建目标数据库,例如 db: test username:root password: mysql
    3. 这边需要保证迁移两边的库 数据库名、用户密码均同名(官方建议)
  2. 迁移流程
    1. 打开迁移工具,windows:bat linux:.sh(local host:8080)Mysql迁移至KingBase(金仓数据库)避坑指南-Java版
    2. 新建源数据库Mysql迁移至KingBase(金仓数据库)避坑指南-Java版
    3. 新建目标数据库(KES兼容模式如果不是Oracle数据库迁移两个好像都可以随便选,我这里都试过。最后选的是PG)Mysql迁移至KingBase(金仓数据库)避坑指南-Java版
    4. 新建迁移任务(默认配置就好,我在线程配置中开启了多线程,大概是迁移的时候会更快一点吧)Mysql迁移至KingBase(金仓数据库)避坑指南-Java版
    5. 迁移完成(我在迁移过程中没有遇到问题,大概迁移了10多分钟)Mysql迁移至KingBase(金仓数据库)避坑指南-Java版
    6. 修改迁移后的模式
      1. 迁移完成后查看库会发现多了个模式,我们可以将这个模式修改为public模式,到时候查询数据库的时候就能直接通过 select * from 表名 查询数据,否则就是 select * from public.表名
      2. 将public修改为其他名称
      3. 再将新的模式修改为public
    7. 代码集成
      1. 更换驱动为kingbase8-8.6.0.jar(通过内部引入jar包的方式)Mysql迁移至KingBase(金仓数据库)避坑指南-Java版
      2. 修改配置
        1. 数据源
          spring:
            datasource:
              driver-class-name: com.kingbase8.Driver
              type: com.alibaba.druid.pool.DruidDataSource
              url: jdbc:kingbase8://127.0.0.1:54321/phjygf?clientEncoding=UTF-8
              username: balabala
              password: balabala
        2. mybatis-plus
          @SpringBootConfiguration
          public class MyBatisPlusConfig {
          
              @Bean
              public MybatisPlusInterceptor mybatisPlusInterceptor() {
                  MybatisPlusInterceptor config = new MybatisPlusInterceptor();
                  config.addInnerInterceptor(new PaginationInnerInterceptor(DbType.POSTGRE_SQL));
                  return config;
              }
          
          }
          
        3. pagehelper
          pagehelper:
            #  方言 pg or oricle
            helper-dialect: postgresql

          到此配置完成,如果可以正常启动,那么接下来就可以做代码层面的适配了.如果遇到相关问题,建议查看下载下来的文档信息

  3. 迁移注意事项
    1. 如果迁移之前需要进行迁移评估,转到 http://59.108.228.18:8022/dashboard?source=bbs&token=eyJhbGciOiJIUzUxMiJ9.eyJpZCI6Mzg3NywiZW1haWwiOiIyOTkzNDQyNzUwQHFxLmNvbSIsInN1YiI6ImxkYiIsImlhdCI6MTY4MTgyMzUyNiwiZXhwIjoxNjgxODMwNzI2fQ.nii_qzCCO64emEOxRV4aODFleEV5ff4BFXJejcaufE_RfqVzjYYzz1fcKYUBGa_fhR94pZiQQX19E8pEp8PDTQ
    2. 如果不熟悉相关流程,详情见官方迁移文档
    3. 迁移后的模式强烈建议修改为public模式
    4. 驱动和方言配置都需要修改

四、代码层面适配遇到的相关问题及其解决方案

  1. date_format函数无效
    1. 原因:不支持该函数
    2. 解决方案: 更换函数 date_format -> to_char
  2. Group by 分组中的字段在查询字段中也需要存在
  3. CONNECT BY clause required in this query block

    1. 原因:查询字段有关键字

    2. 解决方案:在关键字字段上加上""

  4. 将Mysql中的`符号更换为"

  5. 违反约束错误:修改约束或者业务逻辑

  6. year函数报错

    1. 原因:不支持该函数

    2. 解决方案:year(class_times.date)转换为->EXTRACT(YEAR FROM class_times.date)

  7. 操作符不是唯一的: varchar >= pg_catalog.date

    1. 原因:类型不一致

    2. 解决方案:转成相同类型的值然后再进行比较 to_char、to_date详情SQL文档

  8. Hint: 没有匹配指定名称和参数类型的函数. 您也许需要增加明确的类型转换.

    1. 原因: 不支持该函数

    2. 解决方案:更换函数或在业务层实现该功能

  9. 函数 FIND_IN_SET(unknown, varchar) 不存在

    1. 原因: 不支持该函数

    2. 解决方案:更换函数或在业务层实现该功能

  10. IFNULL -》COALESCE(p.valid,0)

  11. GROUP_CONCAT -》array_to_string(array_agg(t.cname),',')

好啦,今天的分享就到这了,希望能帮到需要迁移的小伙伴~文章来源地址https://www.toymoban.com/news/detail-497196.html

到了这里,关于Mysql迁移至KingBase(金仓数据库)避坑指南-Java版的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 金仓数据库 KingbaseES V8 GIS数据迁移方案(3. 基于ArcGIS平台的数据迁移到KES)

    本章主要介绍基于ArcGIS/GeoScene 平台的两种数据迁移方案,首先是基于KDTS的迁移,主要应用在数据图层较多且数据体量巨大的情况,另一种为利用ArcGIS/GeoScene 平台的异构数据库迁移,主要是一些少量图层或者小数据量的迁移需求。 3.1.1. KDTS迁移步骤 下面讲述通过KDTS工具完成

    2024年02月13日
    浏览(27)
  • 【数据库迁移系列】从MySQL到openGauss的数据库对象迁移实践

    在之前这一篇中我们分享过使用chameleon工具完成MySQL到openGauss的全量数据复制、实时在线复制。9.30新发布的openGauss 3.1.0版本 ,工具的全量迁移和增量迁移的性能不但有了全面提升,而且支持数据库对象视图、触发器、自定义函数、存储过程的迁移。 本篇就来分享一下使用c

    2024年02月02日
    浏览(48)
  • 数据库迁移之mysql到达梦数据库

    由于业务需求要求数据库国产化,因此将数据从mysql数据库中迁移到国产达梦数据库中。将mysql中的每个库迁移到达梦不同模式下,下面为详细过程。 (1)安装达梦客户端工具 (2)点击选择DM管理工具 (3)创建模式和用户 在用户菜单中,新建一个TEST模式以及相应的用户。

    2024年02月08日
    浏览(49)
  • mysql数据库迁移

    公司有个项目,刚开始数据量不是大的时候,数据库和服务上的所有应用数据都放在一个旧小盘中,随着项目数据的增长,旧的磁盘被占满了,导致系统无法写入数据,我和同事排查了很长时间,最终确定是磁盘被占满导致的一系列连锁问题。问题找到了,接下来就是想办法

    2024年02月14日
    浏览(37)
  • mysql数据库数据如何迁移目录

    默认位置 C:ProgramDataMySQLMySQL Server 8.0 步骤2中Data文件夹就是mysql存放数据的位置 这里举例移动到E盘下 原来my.ini文件不要修改文件位置,如果修改需要另行学习

    2024年02月07日
    浏览(50)
  • 如何迁移MySQL数据库?

    迁移MySQL数据库可以采取多种方法,以下是其中几种常用的方法: 备份和还原:将原有的MySQL数据库备份到一个文件中,然后将备份文件还原到新的MySQL服务器中。具体来说,可以使用mysqldump命令进行备份,使用mysql命令进行还原。例如,备份一个名为mydb的数据库可以使用以下

    2024年02月09日
    浏览(45)
  • MySQL数据库迁移(直接复制文件)

    MySQL数据库迁移(直接复制文件) - 简书 (jianshu.com) 看了几种方法: 1、修改注册表的 windows下迁移mysql数据 - 程序员丁先生 - 博客园 (cnblogs.com) 2、mysqldump指令将数据库表/数据保存成xx.sql文件存到本地的 (157条消息) 如何简单实现mysql数据库迁移_岁月呀的博客-CSDN博客 看着都复

    2024年02月15日
    浏览(40)
  • kingbase:数据库启动状态

    1  启停KingbaseES数据库 Linux下通过系统服务: root用户执行:   Linux下通过安装用户: 安装用户执行:   2  查看数据库当前进程状态 通过命令 ps –ef |grep kingbase 查看,kingbase进程是否存在,如下图所示,则为正常开启状态,否则不是。蓝色标注为主进程。   3  端口的查看

    2024年02月14日
    浏览(28)
  • Mysql数据库迁移|如何把一台服务器的mysql数据库迁移到另一台服务器上的myql中

      那么这里博主先安利一下一些干货满满的专栏啦! Linux专栏 https://blog.csdn.net/yu_cblog/category_11786077.html?spm=1001.2014.3001.5482 操作系统专栏 https://blog.csdn.net/yu_cblog/category_12165502.html?spm=1001.2014.3001.5482 手撕数据结构 https://blog.csdn.net/yu_cblog/category_11490888.html?spm=1001.2014.3001.5482 一、在

    2024年02月06日
    浏览(61)
  • mysql数据库 windows迁移至linux

    1.打开navicat,选择一个数据库进行操作: 之后文件会保存为一个xxx.sql文件,之后打开xftp,把生成的sql放进一个文件夹中( /home/dell/linuxmysql ): 之后登录mysql数据库,并创建一个新的数据库,然后把刚刚的数据导入到新的数据库中: 如果出现下面情况说明数据库已经成功导入

    2024年02月07日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包