# 人大金仓数据库集成注意事项

2024年12月13日

建议所有做人大金仓数据库集成的A8-N/G6-N与项目都按如下手册做项目实施!

# 给金仓支持人员的注意事项

1、初始化数据库时,只能选择兼容Oracle模式(不支持其它模式)。 案例:信创连接人大金仓数据库无法启动OA:日志有all_tables关键字错误 (opens new window)

2、(别的库转金仓)转库时不要重命名原库的INDEX索引名称,产品是根据索引名称判断索引是否存在

3、确保大小写不敏感(如无配置点可忽略)

4、字符集编码UTF8(如无配置点可忽略)

5、V8.2之后协同OA就未使用过存储过程、视图、触发器、函数,转库时如发现存在这些东西,别的库转金仓如遇到以上问题,可能是客户、项目组、第三方加的,标准产品不涉及这些

6、高可用方案推荐使用金仓的主备模式。不支持读写分离,不支持分布式数据库。

7、转库后最常见的问题一是丢失索引,直接表现是上线后第一天系统各种卡顿,致远顾问可尝试用环境检查工具扫描缺失的索引,或者直接取致远XinChuang部署包中的初始化SQL给金仓,里面有全套索引可做补齐,初始SQL位置:2.V9.0SP1_XinChuang\deploytools\file\sql\init\A8N-2\KingBase目录

8、转库后最常见问题二是字段映射错误,直接表现是部分功能正常,部分功能页面各种报错。需要金仓必须按照如下字段映射关系做转库(非常关键,请务必将图片转给金仓):

案例:sqlserver转金仓后,使用报字段类型转换异常 (opens new window)

MYSQL ORACLE SQLSERVER POSTGRESQL DM KINGBASE(兼容Oracle) OSCAR GBASE HBM文件 POJO类型 场景
BIGINT INTEGER BIGINT INT8 BIGINT INT8 BIGINT BIGINT long java.lang.Long 主键
DATE DATE DATETIME TIMESTAMP(0) TIMESTAMP(0) TIMESTAMP(0) TIMESTAMP(0) TIMESTAMP(0) timestamp java.util.Date 日期
DATETIME DATE DATETIME TIMESTAMP(0) TIMESTAMP(0) TIMESTAMP(0) TIMESTAMP(0) TIMESTAMP(0) timestamp java.util.Date 日期时间
DECIMAL NUMBER NUMERIC NUMERIC NUMBER NUMERIC NUMBER NUMBER double java.lang.Double 小数
INT INTEGER INT INT4 INT INT4 INTEGER INT integer java.lang.Integer 整数
LONGBLOB BLOB IMAGE BYTEA BLOB BYTEA BLOB BLOB string java.lang.String 二进制对象
LONGTEXT CLOB NTEXT TEXT CLOB TEXT CLOB CLOB string java.lang.String 大文本
SMALLINT NUMBER(4) SMALLINT INT2 SMALLINT INT2 SMALLINT SMALLINT integer java.lang.Integer 数字枚举
VARCHAR VARCHAR2 NVARCHAR VARCHAR VARCHAR VARCHAR VARCHAR VARCHAR string java.lang.String 文本

# 给致远运维实施的注意事项

1、不要接转库这种活,专业的事交给数据库厂商专业人员,转错库上线后协同侧不受理数据修复操作!

2、老客户转金仓的路线是:非信创环境升级OA到最新版本=>再转信创库=>信创环境全新部署OA=>部署之后连到转库后的金仓库

3、信创环境务必使用XinChuang\deploytools包中的信创部署工具部署,这样能规避80%部署问题,详细看信创部署手册

4、信创部署工具部署时,找金仓建一个空库,采用全新安装部署方式,方便把金仓的一些基础配置写入中间件

5、中间件JVM一定要注册金仓驱动信息-Djdbcproxydriver.driverclass=com.kingbase8.Driver,中间件JNDI/JDBC配置的驱动类一定要用致远的自定义代理类com.seeyon.ctp.monitor.perf.jdbcmonitor.proxyobj.JMProxyDriver,否则会出现登录不了等莫名问题(详细看信创部署手册)。 典型案例:信创部署后init-admin无法登录系统,提示无效的用户名或密码 (opens new window)

6、中间件配置JDBC时一般不要指定驱动jar,把驱动jar直接放置到中间件lib目录下即可。金仓的驱动jar一定是找金仓提供与数据库版本相匹配的jar包,不要用致远XinChuang安装包中的金仓驱动(那个用了就各种错,那个仅用来做初始化SQL的)。

# 金仓扩展资料

1、人大金仓已经更名,现在叫:中电科金仓

2、金仓早期的R2、R3版本确实就只支持Oracle兼容模式,那时候V5已经完全适配金仓

3、因为很多小项目没有成本去独立适配金仓,所以金仓R6版本开始主动反向适配:自2022年开始,逐渐推出兼容Postgresql、兼容MySQL、兼容SQLServer模式的金仓数据库版本。

4、金仓的选择多了,我们OA就容易中招,有的MySQL用户误以为转金仓MySQL模式就能使用,实际这是错误的想法。不管OA客户原来使用什么数据库,最后都一定要转成金仓Oracle兼容模式!

5、金仓有成熟的工具完成PG、MySQL、SQLServer转金仓Oracle兼容模式,大家不要担心!

6、产品还没有适配金仓其它模式的规划,要知道适配只是第一步,后续的测试成本、每个新版本升级兼容成本、维护成本极高。

7、“有钱”的客户最终选择金仓之后,可能要求金仓部署集群高可用,则务必提醒金仓:

  • (如一定要高可用)推荐选择金仓高可用主备模式(R6 V8版本)

  • 不要使用金仓读写分离模式(产品没实现读写分离)

  • 金仓RAC共享存储模式(V9版本)据说有点贵

    创建人:het