金仓数据库sqlserver兼容版本,要问兼容到哪个版本呢?当前是SQL Server 2016版,
版本更新方面:
该版本新增了对SQLServer若干系统视图和内置函数的支持,支持ICU库并对其进行了优化;支持更多的高级查询功能,包括FOR XML子句、PIVOT行列转换操作、GROUP BY子句中基于不同数据类型进行分组、DINSTICT子句与ORDER BY联合中列别名的使用等;新增DML操作触发更新统计信息功能,提升查询性能与增强系统的稳定性;新增临时表优化功能,提升了函数执行效率。在客户端编程接口方面,.Net驱动中新增了对SQL Server 中一些日期函数的支持,加入了更多针对各行业应用场景的定制化功能,助力企业实现平滑迁移和业务高效运行。
1. 实验准备
1.1 确认当前环境的

1.2 关闭原有集群【谨慎操作】

1.3 卸载当前集群环境
/yk/data/Kingbase/cluster/kingbase/bin
1.4 重新挂载安装用的ISO
[root@dba236 data]# umount kbinstall
[root@dba236 data]# mount KingbaseES_V009R004C012B0006_Lin64_install.iso kbinstall/
mount: /dev/loop0 is write-protected, mounting read-only
1.5 进入挂载的ISO目录,复制配置到其他文件夹(由于当前挂载只读)并修改执行安装
配置,重点配置路径及账密
USER_INSTALL_DIR=/yk/data/Kingbase/kms
USER_SELECTED_DATA_FOLDER=/yk/data/Kingbase/kms/data
安装如下,静默安装,输出日志很简洁
./sys_ctl -w start -D /yk/data/Kingbase/kms/data -l /yk/data/Kingbase/kms/data/sys_log/startup.log Now launch installer... .Complete.
安装完成后,查看安装目录,会看到很多链接文件,这就对了:
1.6 安装完成后,连接到数据库并查看版本,会看到版本比之前要精简多了
[kingbase@dba236 bin]$ ksql -p 54321 -d test -U system
Licesen Type: SALES-企业版.
Type "help" for help.
test=# select version();
version
-------------------------
KingbaseES V009R004C012
(1 row)


比对之前版本

1.7 设置快捷登录ksql
cat ~./bash_profile
alias ks='ksql -p 54321 -d test -U system'
alias kcd='cd /yk/data/Kingbase/kms/Server/bin'
# 立即生效
source ~./bash_profile
PS : 安装具体细节参照之前写的:十分钟内搞定金仓数据库V8静默安装(新手完全上手)
https://bbs.kingbase.com.cn/blogDetail?postsId=9a0cfd3b13dad2b395ee0e2df4a1b3dd
2. 兼容性测试
2.1 top N 验证
创建表并插入数据
CREATE TABLE T2 (
ID INT PRIMARY KEY,
NAME NVARCHAR(100),
);
test=# INSERT INTO t2 VALUES (1, 'Guangzhou');
INSERT 0 1
test=# INSERT INTO t2 VALUES (2, 'Chendu');
INSERT 0 1
test=# INSERT INTO t2 VALUES (3, 'Beijing');
INSERT 0 1

(1)语句查询使用top
SELECT TOP 2 ID, Name FROM t2

(2)存储过程使用top
CREATE PROCEDURE GetTopT2
AS
BEGIN
SELECT TOP 2 ID, Name FROM t2
END;
CALL GetTopT2();

结果:TOP语法在查询和存储过程中均兼容。
2.2 建表与特殊数据类型
测试项:支持ROWVERSION(自增版本戳)、UNIQUEIDENTIFIER(GUID)、最后一个字段逗号兼容。
SQL示例:
CREATE TABLE t9 (
ID INT PRIMARY KEY,
NAME NVARCHAR(100),
GUIDCOL UNIQUEIDENTIFIER, -- 兼容ROWGUIDCOL
ROWVER ROWVERSION, -- 每次更新自动递增
);
验证操作:
INSERT INTO t9 (ID, NAME) VALUES (1, 'Vir');
SELECT * FROM t9; -- 查看自动生成的Guid和ROWVER
UPDATE t9 SET NAME = 'Vir_Updated' WHERE ID=1;
SELECT @@DBTS; -- 检查ROWVER版本号变化(应递增)
++ 结果: ++
• ROWVERSION在更新后自动递增(如0x0000000000000001 → 0x0000000000000002)。
• 最后一个字段后的逗号无语法报错(兼容)【完美~~】。

2.3 索引操作
测试项:索引创建、重建、并发查询。
(1) 创建索引
CREATE INDEX idx_name ON t9 (Name);
(2) 重建索引
ALTER INDEX idx_name ON t9 REBUILD;
ALTER INDEX idx_name REBUILD ;

3. 遇到问题处理
3.1 缺少依赖导致安装失败
如图告警 ./setup.sh: line 171: fc-cache: command not found

处理办法: 安装插件
sudo yum install fontconfig -y

3.2 各种不行,一度以为下错了版本【心都要碎了~~】

4. 参考文档
安装手册: https://bbs.kingbase.com.cn/docHtml?recId=bf40609a9c064fe3593c2040d4d899c8&url=aHR0cHM6Ly9iYnMua2luZ2Jhc2UuY29tLmNuL2tpbmdiYXNlLWRvYy92OS40LjEyL2luc3RhbGwtdXBkYXRhL2luc3RhbGwtbGludXgvaW5kZXguaHRtbA




