人大金仓踩坑指南

现在越来越多的项目要求-切换国产数据库系统,或达梦(性能高),或人大金仓(扩展性高,更稳定),跨平台如果上来就干,坑还是不少的,本人有幸踩个遍.
1. 软件有效期,人大金仓可不便宜,不少政府采购网上都是标价10万+, 测试时候用专业版玩一玩就好
到期后,可以直接下载其他版本的授权文件进行替换,比如我用的是企业版,到期后可以用开发版本的授权文件替换,路径为:./sys_ctl -D /home/kingbase/kdb/data reload
2.最大连接数,默认是10个连接,开发版不支持修改(手动改完无法生效),需要将授权替换成企业版方可修改
-- 查看最大并发连接量
show max_connections;
-- 查看系统配置信息
SELECT sourcefile,name,setting,applied FROM sys_file_settings;
-- 查看当前连接数
select connections();
-- 查看连接详情
select * from sys_stat_activity;
-- 设置并发连接数量
alter user system with connection limit 1000;
-- 关闭空闲连接
SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE state='idle'
-- 查询license有效期
select GET_LICENSE_VALIDDAYS();
3. 主键自增
-- 创建序列
CREATE SEQUENCE table_name_id_seq;
-- 序列关联表
ALTER TABLE example_table ALTER COLUMN id SET DEFAULT nextval('table_name_id_seq');
-- 设置自增长初始值, 默认值为1
ALTER SEQUENCE table_name_id_seq START WITH 1;
-- 设置自增长间隔数,默认值为1
ALTER SEQUENCE table_name_id_seq INCREMENT BY 1;
-- 设置序列最大值,默认最大值9223372036854775807
ALTER SEQUENCE table_name_id_seq MAXVALUE 9223372036854775807;
4. 自带表和项目表名相同
alter database dbName set search_path to "$user", govengine, public, sys, sys_catalog, pg_catalog;
alter system set search_path="$user", public,sys_catalog;
select sys_reload_conf();
5. 关闭严格模式
安装路径下,类似 D:\Kingbase\data 找到 kingbase.conf 文件,
最后一行添加 sql_mode='ANSI_QUOTES' , 重启服务即可
6. 过期替换授权文件
查找安装路径,rpm -qa | grep -i kingbase/home/kingbase/kdb/KESRealPro/V008R006C008B0014/Server/bin/sys_ctl
替换 /home/kingbase/kdb/KESRealPro/V008R006C008B0014 路径下的授权文件
# 停库
/home/kingbase/kdb/KESRealPro/V008R006C008B0014/Server/bin/sys_ctl \
stop -D /home/kingbase/kdb/data
# 起库(日志可写到 data 目录)
/home/kingbase/kdb/KESRealPro/V008R006C008B0014/Server/bin/sys_ctl \
start -D /home/kingbase/kdb/data \
-l /home/kingbase/kdb/data/kingbase.log
# 查看状态
/home/kingbase/kdb/KESRealPro/V008R006C008B0014/Server/bin/sys_ctl \
status -D /home/kingbase/kdb/data