首页 > 数据库 >MySQL迁移人大金仓kingbase

MySQL迁移人大金仓kingbase

时间:2024-01-29 18:11:34浏览次数:24  
标签:金仓 人大 数据库 MySQL kingbase mysql 迁移

前言:前段时间接到一个任务,说是数据库要由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的差异内容以及此次迁移的数据字段类型 汇总在了如下文件链接,供各位大佬参考,如有疑问的可以留言,一起学习

文件链接,点击下载

 

 

 

标签:金仓,人大,数据库,MySQL,kingbase,mysql,迁移
From: https://www.cnblogs.com/w-wu/p/17994135

相关文章

  • MySQL金额数字转为大写中文
    MySQL版本:5.7.34-log*通过创建函数的方法,目前可以实现整数金额的转换,网上暂未找到MySQL版本的故自己参照其他数据库版本的改编了一下,*仅供参考!!!使用方法:selectrmb(10000)CREATEDEFINER=`root`@`%`FUNCTION`rmb_upper`(jeint)RETURNSvarchar(200)DETERMINISTICBE......
  • 配置mysql (Redhat)
    前提准备:MySQL下载 https://dev.mysql.com/downloads/mysql/ 当前安装版本5.71.检查是否安装mysql:rpm-aq|grepmysql 如果有输出则先停止服务:servicemysqldstart批量删除包rpm-eXXX--nodeps2.检查mariadb:rpm-qa|grepmariadb如果有输出则删除相关包 rpm-e......
  • 【MYSQL】4、mysql中的Innodb_buffer_pool_reads和Innodb_buffer_pool_read_requests
    原文链接:https://blog.csdn.net/qq_35462323/article/details/1318115931、Innodb_buffer_pool_reads和Innodb_buffer_pool_read_requests的含义?Innodb_buffer_pool_readsInnodb_buffer_pool_readsThenumberoflogicalreadsthatInnoDBcouldnotsatisfyfromthebuffer......
  • 解决MySQL设置时区时的错误Unknown or incorrect time zone: 'Asia/Shanghai'
    问题描述:在trino中配置了mysql.properties文件,但是通过trino客户端,执行命令showschemasfrommysql;查看数据库信息时报错:Errorlistingschemasforcatalogmysql:java.sql.SQLNonTransientConnectionException:Couldnotcreateconnectiontodatabaseserver.Attempted......
  • MySQL 常用工具
    系统数据库MySQL数据库安装完成后,自带了以下四个数据库,具体作用如下: 常用工具mysql该mysql不是指mysql服务,而是指mysql的客户端工具 mysqladminmysqladmin是一个执行管理操作的客户端程序。可以用它来检查服务器的配置和当前状态、创建并删除数据库等。 my......
  • GaussDB(for MySQL)剪枝功能,让查询性能提升70倍!
    作者,祝青平,华为云数据库内核高级工程师。擅长数据库优化器内核研发,9年数据库内核研发经验,参与多个TP以及AP数据库的研发工作。近日,华为云数据库社区下面有这样一条用户提问留言:请问,如何通过MySQL提升DISTINCT,尤其是多表连接下DISTINCT的查询效率?在回答这个问题之前,我们先了解一......
  • MySQL InnoDB MVCC
    MVCC-基本概念当前读读取的是记录的最新版本,读取时还要保证其他并发事务不能修改当前记录,会对读取的记录进行加锁。对于我们日常的操作,如:select...lockinsharemode(共享锁),select...forupdate,update,insert,delete(排他锁)都是一种当前读。快照读简单的selec......
  • MySQL InnoDB事务原理
    事务事务是一组操作的集合,它是一个不可分割的工作单位,事务会把所有的操作作为一个整体一起向系统提交或撤销操作请求,即这些操作要么同时成功,要么同时失败。 特性原子性(Atomicity):事务是不可分割的最小操作单元,要么全部成功,要么全部失败。一致性(Consistency):事务完成时,必......
  • Windows安装MySql时出现“Failed to find valid data directory”的错误
    1、......
  • MySql执行Sql语句时出现“MySqlException: Parameter ‘@maxNo‘ must be defined.”
    1、......