暂无图片
暂无图片
3
暂无图片
暂无图片
暂无图片

国产化数据库适配 | SQL Server 迁移适配人大金仓

原创 每天译点晓知识 2023-06-08
547

传统关系型数据库->金仓数据库迁移适配

简介

金仓数据库的最新版本为KingbaseES V8, KingbaseES V8在系统的可靠性、可用性、性能和兼容性等方面进行了重大改进,支持多种操作系统和硬件平台支持Unix、Linux和Windows等数十个操作系统产品版本;支持X86、X86_64及国产龙芯、飞腾、申威等CPU硬件体系结构。并具备与这些版本服务器和管理工具之间的无缝互操作能力。

针对不同类型的客户需求,KingbaseES V8设计并实现了企业版、标准版、专业版版等多类版本。这些版本全部构建于同一数据库引擎内。在不同平台上,这些版本完全兼容。KingbaseES V8数据库应用程序可从笔记本电脑扩展到台式机、大型数据库服务器,以至整个企业网络,而无需重新设计。此外,当用户业务发展需更大的数据处理能力时,KingbaseES V8还支持各个版本之间的平滑升级。

KingbaseES V8目前已发布:标准版、企业版、专业版等版本;满足各种业务场景对通用数据库管理系统的技术需求。

本文,以KingbaseES V8进行展开:

下载&安装
金仓客户端工具 1686213696043.jpg

快速接入指南

Step1

打开客户端安装所在目录

image.png

Step2

打开ClientTools\guitools\KDts\KDTS-WEB\bin目录如下,

image.png

Step3

点击执行startup.bat文件出现CMD窗口如下,

image.png

Step4

打开浏览器,输入地址-> http://localhost:8000/,按Enter回车如下,

image.png

建立数据源、目标数据源相关数据库版本、服务端口、jdbc连接…

Step5

按照上述配置,数据库迁移就告一段落,总体上来说需要改的,就是验证下迁移过来的数据类型和长度,以及SQL函数兼容与否,可以通过DBeaver连接国产数据库如下,

image.png

当然,也可以通过金仓客户端连接并编辑或浏览表结构及数据,

image.png

这里,我们的数据库表结构以及数据迁移完成后,接下来就是我们项目工程jdbc驱动适配连接如下,

image.png

image.png

image.png

Step6

通过Druid或Hikaricp数据库连接池,正常连接到数据库之后,后续就是到了作SQL方言函数的兼容适配环节了->可参考之前多数据库适配SQL兼容处理方式

image.png

像数据库连接池中,其实也都在不断兼容国产数据库,若是没有作对应处理的话,我们可以采用Java的类加载机制重写里面的类及方法去覆盖实现即可。

image.png

总结

最后,我们在项目工程引入jdbc连接

url: jdbc:kingbase8://{ip}:{port}?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai&useSSL=true&characterEncoding=UTF-8  
username: {user} 
password: {pwd}

结尾

附:当遇到部分表结构以及数据迁移出错,则可对当前出错部分重新迁移,调整表结构字段位宽即可。

这里,记录一下迁移过程中遇到的问题,在迁移的时候,报某些字段超长。则查看数据源中那些字段的类型及长度,在达梦数据库中增加位宽。

像在MySql中varchar是表示字符,varchar(50)表示可以存放50个字符,例如,DM的默认跟Oracle是一样的,varchar(50)表示50个字节。这就意味着,50个字节,如果存中文,在utf-8的字符集下,只能存最多16个。所以,如果MySql库到DM,varchar类型,需特别留意一下。

可参考之前的文章->记一次国产数据库适配的思考过程

最后修改时间:2023-07-16 16:25:06
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论