金倉數據庫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




