MySQL迁移人大金仓kingbase

前言:前段时间接到一个任务,说是数据库要由mysql改成人大金仓,项目代码也需要修改适配(另一个同事负责),而我则是负责数据库的迁移工作,期限是七天(2024-01-26已上线),在这之前我甚至都没听过人大金仓这个名词,而且也没有相关文档的交接更没有技术人员支撑,起初我还让项目负责人去跟集团的DBA协调一下让他们帮迁移,理由1.DBA有迁移经验以及工具 2.项目时间紧任务重(让我这个连人大金仓都没听过的人去做这个事,怕耽误工期),但是事情有时候总是事与愿违,所以最后还得自己来,不然也不会有这篇笔记了。

连人大金仓都没听过的我所以肯定是不会操作的,并且也是经历了百度上众多文章的灌输踩了很多坑,我不想大家有跟我一样的历程,因为这太浪费时间了,特此写下此文章分享经验,话不多说,我们开始主题:

一.迁移准备:mysql数据库、kingbase数据库、迁移工具

 

kingbase相关手册文档:https://help.kingbase.com.cn/v8/index.html   官网论坛:https://bbs.kingbase.com.cn/topic

kingbase数据库服务(内置了迁移工具)下载地址:https://www.kingbase.com.cn/xzzx/index.htm

下载安装包:

下载授权文件(安装的时候需要),左侧菜单有授权文件的版本差异说明,一般本地调试测试的话下载开发版即可

 安装

 

 详细的安装教程自己百度一下哈

 

 

二.要迁移到kingbase数据库,首先得创建一个kingbase数据库(切记:先在dev开发环境或者test测试环境操作),如果已经创建了kingbase数据库此步骤省略

1.切换到kingbase服务的目录下(linux安装kingbase数据库服务不在此处介绍,百度一下哈)

2.输入用户名密码登录kingbase客户端,并且指定数据库为test

3.输入创建数据库语句,此时test_bi就创建完成了

4.输入反斜杠+小写的L  查看数据库列表

 三.使用人大金仓提供的迁移工具KDTS进行数据迁移

安装完成之后KingbaseESV8下有很多文件,其中也包括一些文档以及工具

 

启动完成后访问:http://localhost:54523

 将前面准备的mysql数据库信息填入源数据库

 将准备的kingbase数据库test_bi信息填入目标数据库

 

 

问:为什么这里只选择了同步数据,而不是把数据结构、主键、索引、视图、存储过程等一起同步?

答:因为数据类型不支持,比如mysql的datetime类型用这个工具搞不了,存储过程也有一些语法的问题,所以我只选择了同步数据

问:那数据结构以及索引这些怎么搞过去?

答:数据结构等内容我选择了最原始的方式,导出mysql的表结构DDL语句然后修改成kingbase支持的语法格式,然后跑sql脚本建表建索引等,文章最后会有文件下载提供参考

 

问:为什么创建目标模式要选否?

答:这个跟kingbase数据库关,目前就知道表是要创建在public模式下才能访问,其他的没有深究。

可自行查阅表、模式、数据库之间的关系,或者传送门:https://blog.csdn.net/arthemis_14/article/details/132768929

以上配置完成之后,点击”保存并且迁移“按钮,如果数据迁移失败,则点击详情查看具体信息,大概率是字段类型的问题

文章读到这里你可能会问:那为什么表结构以及存储过程这些用MySQL的导出的DDL去改造适配kingbase,数据也直接导出insert语句直接跑就好了嘛,为什么要需要用KDTS工具呢?

为了防止上线部署迁移出现意外,我做了两手准备:1.使用kdts工具同步生产数据 2.将生产数据导出insert语句的脚本(这种方式有弊端,必须停服进行离线迁移,不能有新增数据导致数据不全),万幸之前了解到本次迁移部署就是离线的,所以就选择了最稳妥的方式-跑脚本

mysql跟kingbase的差异内容以及此次迁移的数据字段类型 汇总在了如下文件链接,供各位大佬参考,如有疑问的可以留言,一起学习

文件链接,点击下载

 

 

 

posted @ 2024-01-29 18:09  小巫同学  阅读(1956)  评论(0编辑  收藏  举报