首页/系统/信创系统运维速查/金仓 ksql 常用操作
迁移适配65 条

金仓 ksql 常用操作

ksql 是金仓命令行客户端(体验接近 psql):登录、执行 SQL/脚本、查看对象;用于迁移验收对账与日常运维。

信创系统运维速查系统更新于 2026-10-13

ksql 是什么

ksql 是人大金仓数据库自带的命令行客户端,使用体验接近 PostgreSQL 的 psql:支持交互式输入 SQL、执行脚本文件、查看对象结构。迁移项目里它承担两类任务,一是把存量 PL/SQL 与视图在目标库上试跑,二是做迁移后的对象与数据对账。

为什么不能照搬 psql 经验

金仓与 PostgreSQL 血缘接近,常用元命令与 SQL 语法可以复用,但扩展语法、系统视图名、参数名与默认端口都是金仓自己的。把 psql 脚本不加验证直接搬到金仓上跑,容易在系统视图查询与权限相关语句上报错,脚本上线前先在测试库过一遍更稳妥。

基本信息

所属产品人大金仓数据库(KingbaseES)
程序位置安装目录下的 Server/bin,如 /opt/Kingbase/ES/V8/Server/bin/ksql
默认端口54321,以实际实例配置为准
元命令反斜杠开头的客户端指令,如列表与查看结构

典型使用场景

  • 迁移后核对对象数量、表行数与约束是否与源库一致
  • 在目标库试跑存量视图与存储过程,提前暴露不兼容语法
  • 批量执行核验脚本并把输出归档为验收材料
  • 排查应用连接失败时,用客户端确认实例可登录、库名正确
  • 交付前清点数据库用户与权限配置

登录与交互

登录与交互
cd /opt/Kingbase/ES/V8/Server/bin
./ksql -U system -p 54321 -d test        # 按实际账号、端口、库名登录
# 登录后可用的客户端元命令:
# \l      列出数据库
# \dt     列出表
# \d 表名  查看表结构
# \q      退出

脚本化执行

脚本化执行
./ksql -U system -p 54321 -d test -c 'SELECT count(*) FROM t1;'   # 单条 SQL
./ksql -U system -p 54321 -d test -f /tmp/check.sql                # 执行脚本文件
./ksql -U system -p 54321 -d test -o /tmp/result.log -f /tmp/check.sql   # 输出重定向留档

对账与结构核查项

核查项目的常见差异
表与视图数量确认对象迁移完整迁移工具跳过报错对象
主键与唯一约束确认业务规则保留源库非标准写法转换失败
索引确认查询性能可接受大表索引遗漏导致上线后变慢
序列与自增值确认插入不冲突起始值未同步导致主键冲突
用户与权限确认应用账号可访问所需对象授权语句需按金仓语法重写
psql 的使用经验可以迁移,但金仓的扩展语法与系统视图以官方手册为准;涉及权限、字符集与排序规则的差异,建议在测试库中用真实业务数据验证后再上线。

易错点

  • 客户端元命令混进 SQL 脚本文件会报错,脚本里只保留标准 SQL 语句
  • 连接参数凭记忆填写,端口或库名写错后表现为连接失败,先交互登录验证再写进脚本
  • 照搬 PostgreSQL 的系统视图与参数名查状态,金仓可能不存在或不兼容,需对照官方手册
  • 序列起始值没有同步,迁移后插入数据报主键冲突,上线前应逐表核对自增列取值

数据来源与参考

  • 人大金仓官方文档(公开资料)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌