# 人大金仓数据库集成注意事项
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