零改造迁移实录:2000+存储过程从 SQL Server 迁移至 KingbaseES V9R4C12
在信创窗口期,我们将拥有 2000+ 存储过程、300+ 链接服务器的核心业务,从 SQL Server 2016/2019 平移到 KingbaseES V9R4C12(SQL Server 兼容版)。本文记录了一次'从下载到上线'的完整旅程,涵盖部署安装、兼容性验证、性能对比、踩坑与填坑及上线割接方案。
一、为什么要'平替'
过去十年,团队的核心业务一直跑在 SQL Server 2016/2019 双节点 AlwaysOn 集群上。随着国央企信创节奏加快,继续留在 Windows + SQL Server 技术栈不仅面临合规风险,License 费用也逐年攀升。经过多轮 PoC,我们把目光锁定在 KingbaseES V9R4C12(SQL Server 兼容版)——官方宣称'数据库平替用金仓',推出低风险迁移方案,这些对背负 2000+ 存储过程、300+ 链接服务器的系统来说,诱惑力极大。
二、Windows 与 Linux 安装部署
2.1 下载与安装
2.1.1 Windows 下载与安装
打开金仓官网地址,筛选 V9R4C12(SQLServer 兼容版),选择 X64_Windows 安装包。
下载完成后双击打开文件,会自动跳转到驱动器,点击 KINGBSASE.EXE 开始安装。
- 简介,点击接受然后下一步。
- 许可协议,新手建议完全安装。
- 选择安装集,选择想要安装的位置。
- 选择安装文件夹,安装。
- 预安装摘要、添加功能、选择安装集,系统自动安装。
- 正在安装,选择一个文件夹用于存储数据,该文件夹必须为空。
- 选择文件夹,数据库默认端口号:54321,用户名:system,输入对应的密码。
到这里就完成了 Windows 数据库的初始化工作。
2.1.2 Linux 下载与安装
官方下载页提供了 Linux x86_64 一键 tar 包与 Windows GUI 安装向导。
下载后通过 ftp 方式上传到 Linux 服务器上进行安装。
# 1. 创建 kingbase 用户
useradd kingbase && echo 'kingbase ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers
# 2. 解压
tar -xzf kingbasees_v9r4c12_linux_x64.tar.gz -C /opt
chown -R kingbase:kingbase /opt/kingbase
# 3. 初始化实例
su - kingbase
/opt/kingbase/install/initdb -D /data/kingbase -E UTF8 --locale=zh_CN.UTF-8
/opt/kingbase/install/kingbase -D /data/kingbase > kingbase.log 2>&1 &
2.2 金仓数据库开发工具 KStudio
打开刚才安装的工具 KStudio,新建连接,注意密码是刚才上面安装设置的密码。
点击测试连接,提示连接成功。
(1)新建数据库
CREATE DATABASE [xiaoxiang] WITH OWNER = [system] ENCODING 'UTF8' TEMPLATE [template1] TABLESPACE = [sys_default] lc_collate = 'zh_CN.UTF-8' lc_ctype connection_limit allow_connections is_template ;
DATABASE [xiaoxiang] Chinese_PRC_CI_AI;


