Postgresql适配国产化人大金仓(kingbase)

背景

为推进国产技术的发展,公司部分项目实行软件国产化

目标

由原来的centos改为UOS,服务器及软件全部替换

适配计划

1、国产化环境搭建
2、原数据库字段长度扩容
3、数据库数据迁移
4、文件迁移

适配步骤

1、国产化环境搭建(略)

补充下人大金仓数据库安装,希望对大家有所帮助
1、创建目录
	#数据库安装目录
	/opt/Kingbase/ES/V8
	#数据存储目录
	/data/kingbase-54321
2、安装数据库(记得准备license.dat)
	1、解压数据库安装文件
	2、控制台安装:sh setup.sh -i console
	3、接受许可、指定license.dat文件(/opt/license.dat)、指定安装目录、指定存储目录,完成数据库安装
	4、启动数据库实例:sys_ctl -D /data/kingbase-54321
		#停止:sys_ctl stop -D /data/kingbase-54321
	5、初始化数据库:initdb -E UTF-8 -USYSTEM  --case-insensitive -D /data/kingbase-54321
		--case-insensitive:取消大小写敏感,如果不需要,步骤5可忽略
	6、修改数据文件下kingbase.config
			#解决where a_col = '' 的问题
			ora_input_emptystr_isnull = false 
			#port = 54322 需要修改端口的改 
	7、再次启动:
		sys_ctl stop -D /data/kingbase-54321
		sys_ctl -D /data/kingbase-54321 -l logfile start
	8、创建数据库
		#临时使用
		createdb -p 54321 -E utf-8 -O SYSTEM -U SYSTEM db_test
		ksql -p54321 -USYSTEM -d db_test
		CREATE DATABASE db_aaa ENCODING ='utf-8' LC_COLLATE="zh_CN.utf-8" LC_CTYPE="zh_CN.utf-8" TEMPLATE TEMPLATE0;
	9、创建库下的模式
		ksql -p54321 -USYSTEM -d db_aaa
		CREATE SCHEMA db_schema1;
		CREATE SCHEMA db_schema2;
		CREATE SCHEMA db_schema3;
3、完成安装
	如果一台服务器安装多实例数据库,这种方式也支持。

2、原数据库字段长度扩容(略)

长度扩容原因:原数据库中文占一个字符,kingbase占三个字符
提前扩容避免了哪些问题?
1、数据无法导入到目标库
2、索引文件有效 
3、避免其他问题出现

3、数据库数据备份

首先需要了解库和模式的关系
一个数据库下有多个模式

在目标库创建数据库,记得添加字符集和大小写敏感
在目标库下创建对应的模式
数据备份
1、导出表结构
   ./pg_dump -h172.16.xxx.xxx -p5432 -Uuser -ddb_test -ndb_schema--section=pre-data > /opt/bak/schema_table.dmp
2、导出数据
   ./pg_dump -h172.16.xxx.xxx -p5432 -Uuser -ddb_test  -ndb_schema --section=data > /opt/bak/schema_data.dmp
3、导出索引
   ./pg_dump -h172.16.xxx.xxx -p5432 -Uuser -ddb_test  -ndb_schema --section=post-data > /opt/bak/schema_index.dmp
4、修改脚本
	  1、编辑*_table.dmp和*_inedx.dmp文件,修改其中插件名称、系统模式、系统表中pg_为sys_
	  2、修改表中的数据库模式和所有者信息 ,(修改表文件和索引文件)
		 例如:
			 修改所有者:pg:Owner: user   改为 ksql :Owner: user(用户)
			 修改所有者:pg:OWNER TO user   改为 ksql :OWNER TO user(用户)
4、恢复(到人大金仓)

前提:需要创建好库和模式

1、恢复表结构
	ksql -h172.16.xx.xx -p54321 -Uuser -ddb_test < /date/move/schema_table.dmp
2、恢复数据
	ksql -h172.16.xx.xx -p54321 -Uuser -ddb_test < /date/move/schema_data.dmp
3、恢复索引
	ksql -h172.16.xx.xx -p54321 -Uuser -ddb_test < /date/move/schema_index.dmp
5、应用服务配置
dataSource.driverClass=com.kingbase8.Driver
dataSource.jdbcUrl=jdbc:kingbase8://172.16.xxx.xxx:54322/db_xxx?Charset=utf8
dataSource.user=SYSTEM
dataSource.password=xxxx
#方言
hibernate.dialect=org.hibernate.dialect.Kingbase8Dialect

4、文件迁移(略)

总结

开发环境迁移完成后需要对整个系统流程验证,这个过程涉及到数据库连接,方言适配(一般需要重写源码),函数替换,字段长度验证等。

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值