传统关系型数据库->海量数据库迁移适配
简介
海量数据库 G100 管理系统(简称Vastbase G100)是海量数据基于openGauss内核研发的企业级关系型数据库。产品从架构到引擎等多维度均进行深度优化,兼具极致性能与高兼容、高可用、高安全、多引擎、高并发等多种特性,提供高级别的产品质量保障和运行支撑。
本文,以Vastbase G100进行展开:
下载&安装
海量数据库客户端工具
快速接入指南
Step1
产品选择 Vastbase G100
Step2
功能选择 产品安装
Step3
安装模式 选择(默认数据库)
Step4
服务配置 测试SSH连接
安装数据库的服务器地址、安装数据库的端口、连接安装数据库服务器的用户名、连接安装数据库服务器的密码…
Step5
按照上述配置 环境依赖检查
Step6
数据库配置
Step7
确认配置 执行安装 连接
接下来,我们可以通过Vastbase G100 客户端工具 vsql,用于连接数据库,可以交互式地输入、编辑和执行 SQL语句。
当然,也可以通过DBeaver连接海量数据库如下,
通过Druid或Hikaricp数据库连接池,正常连接到数据库之后,后续就是到了作SQL方言函数的兼容适配环节了->可参考之前多数据库适配SQL兼容处理方式。
像数据库连接池中,其实也都在不断兼容国产数据库,若是没有作对应处理的话,我们可以采用Java的类加载机制重写里面的类及方法去覆盖实现即可。
总结
最后,我们在项目工程引入jdbc连接:
url: jdbc:postgresql://{ip}:{port}?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai&useSSL=true&characterEncoding=UTF-8
username: {user}
password: {pwd}
或者
jdbc:vastbase://{ip}:{port}?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai&useSSL=true&characterEncoding=UTF-8
如访问无需带库.表名访问,则设置如下,其中部分SQL方言或大小写敏感支持@厂商在数据库中加启动参数即可.
alter user yx_test set search_path to yx_test
若提示如下表不存在,也可在jdbc连接串后追加参数即可,
jdbc:postgresql://{ip}:{port}/db?currentSchema=yx_test
在工具中指定,
set search_path=yx_test;
结尾
附:当遇到部分表结构以及数据迁移出错,则可对当前出错部分重新迁移,调整表结构字段位宽即可。
这里,记录一下迁移过程中遇到的问题,在迁移的时候,报某些字段超长。则查看数据源中那些字段的类型及长度,在达梦数据库中增加位宽。
像在MySql中varchar是表示字符,varchar(50)表示可以存放50个字符,例如,DM的默认跟Oracle是一样的,varchar(50)表示50个字节。这就意味着,50个字节,如果存中文,在utf-8的字符集下,只能存最多16个。所以,如果MySql库到DM,varchar类型,需特别留意一下。
可参考之前的文章->记一次国产数据库适配的思考过程