KingbaseES 数据库客户端知多少
一、数据库客户端文件目录介绍
接下来让我们来看一下都生成了什么内容,其实只有一个KESRealPro目录,KESRealPro目录下按版本号放置不同版本的程序内容。安装根目录下的其他目录和文件都是快捷方式,实际指向KESRealPro下具体版本的对应目录或文件。


ClientTools
客户端工具,对应目录下存放了客户端安装时所需的命令行,可执行二进制文件,链接文件等。

• ClientTools\guitools\KStudio:开发管理工具,能运行在各种平台的图形工具,用于管理和配置KingbaseES数据库服务器,管理各种KingbaseES数据库对象,进行KingbaseES数据库的安全管理,调用查询分析器执行和测试SQL语句。
• ClientTools\guitools\KDts:数据库迁移工具,可以用于跨平台数据交换和迁移,支持同异构数据源之间的数据迁移。该目录下存放了迁移工具的相关程序和配置文件。
• ClientTools\guitools\DeployTools:集群部署工具,用于远程部署集群节点服务。该目录存放了集群部署工具相关的程序和配置文件。
SupTools
对应目录下存放了巡检工具相关脚本和配置文件。运维工具包括:系统数据与日志收集工具(kb_gathertool)、问题诊断辅助工具(kb_diagtool)、辅助运维工具(kb_modify_syscfg、kb_check、kb_backup)。

Interface
对应目录存放了各类应用程序开发接口程序包。

doc
对应目录包含帮助手册。

install
对应目录存放了安装过程中依赖和使用的各类文件。
• install\jre:Jre,存放了java工具需要用到的二进制文件。
• install\script:该目录下存放了数据库初始化脚本,包括initdb.bat,register.bat,sysctl.bat,unregister.bat,vcredist_x64.exe等。
• install\Logs:日志目录,存放了数据库安装,卸载,修改实例等日志文件。
• install\LICENSE.EN:许可协议(英文)
• install\LICENSE.ZH:许可协议(中文)

Uninstall
对应目录包含数据库卸载的相关配置文件。

FULL完全安装和Client安装区别:
- Server:对应目录存放了服务器二进制文件,链接文件等。
- Server\bin:服务器二进制文件,可以在该路径下进行启动服务,连接数据库,物理备份还原,逻辑备份还原等操作。
- license.dat:指向安装时使用的认证许可证书。
- Data:初始化生成的data文件,存放了数据库参数配置相关信息。
二、命令行客户端程序 Ksql 介绍
ksql是KingbaseES数据库客户端的命令行程序,它允许用户与KingbaseES数据库建立连接,并在命令行环境下执行SQL语句和管理数据库。ksql有以下的关键特点和功能。
(1)交互式SQL查询:ksql提供一个交互式的命令行界面,允许用户在命令提示符下直接输入SQL语句和命令,并立即获取结果。可以在ksql中执行各种SQL语句,包括SELECT、INSERT、UPDATE、DELETE 及数据库模式定义语言(data definition language,DDL)语句。
(2)元命令:ksql提供了一系列的元命令,以方便管理和操作数据库。元命令以反斜杠(\)开头,用于执行一些特定的任务,如导人和导出数据、创建和修改数据库对象(database object)、查看服务器状态等。
(3)历史记录:ksql会保存用户在客户端会话中输入的命令和查询历史记录,这样用
户可以方便地回顾和重新执行之前执行过的SQL语句
(4)输出格式控制:ksql提供多种输出格式选项,如表格形式、CSV格式、JSON格式等,以满足不同的数据显示和导出需求
ksql是一个功能强大且灵活的工具,无论是在开发、运维还是数据查询方面,ksql都是KingbaseES数据库用户常用的工具之一,它为用户提供了与KingbaseES数据库进行交互和管理的便捷方式。
Ksql 的使用
如果KingbaseES数据库服务器(IP地址为192.168.12.232/24)此时已经处于运行状态,在KingbaseES数据库客户端的主机上执行下面的命令,可以测试KingbaseES数据库的客户端Ksql 的使用。
Ksql 的命令行选项
KingbaseES数据库的客户端程序ksql的语法格式如下:
ksql [OPTION]-[DBNAME [USERNAME]]
其中的[OPTION]用于指定命令行选项。
使用-d选项指定连接的数据库名,U选项指定连接的数据库用户名,建立与KingbaseES数据库的连接。
$ ksql -Usystem -dtest -h 192.168.126.232 -p 54321
Password for user system:
Type “help” for help.
test=#\q
使用ksql的元命令\q可以退出ksql,也可以按Ctrl+D组合键退出。
使用-c选项直接在命令行中运行SQL语句。
$ ksql-dtest -h 192.168.100.22 -U system -p 54321 -c" SELECT version();"
$ ksql -Usystem -dtest -h 192.168.126.232 -c" SELECT version();"
Password for user system:
version
KingbaseES V009R001C002B0014 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-28), 64-bit
(1 row)
使用-f选项直接在命令行中运行SQL脚本。
以Linux操作系统为例,先生成一个测试用的SQL脚本文件test.sql:
cat > test.sql <<EOF
select datname,
numbackends as active_connections,
xact_commit as commits,
xact_rollback as rollbacks,
blks_read as blocks_read,
blks_hit as blocks_hit
from pg_stat_database;
EOF
然后执行如下命令,运行test.sql脚本文件。
$ ksql -Usystem -dtest -h 192.168.126.232 -p 54321 -f test.sql
Ksql 的元命令
使用客户端程序ksql 的元命令可以管理和查询KingbaseES数据库。
使用? 可以获取ksql元命令的帮助信息

Ksql 初始化文件 .ksqlrc
1. 配置文件层级与优先级
• 系统级配置
文件路径:位于 KingbaseES 安装目录的 etc/ksqlrc。
定位方法:运行 sys_config --sysconfdir 获取路径,或通过 KCISYSCONFDIR 环境变量自定义。
• 用户级配置
默认路径:~/.ksqlrc(当前用户主目录)。
自定义路径:通过 KSQLRC 环境变量指定(如 export KSQLRC=/path/to/custom.ksqlrc)。
• 优先级:用户级配置 > 系统级配置(若两者同时存在,用户级生效)。
2. 核心配置功能
(1) 输出格式设置
– 设置输出为扩展表格模式(对齐列)
\pset format expanded
– 输出为 CSV 格式(适合脚本处理)
\pset format csv
– 限制每页显示行数
\pset pager 20
(2) 显示方式控制
– 禁用输出截断(显示完整内容)
\pset border 0
– 启用截断(默认,超出宽度自动换行)
\pset border 1
(3) 连接信息(谨慎使用)
– 自动填充连接参数(避免命令行输入)
\set user ‘system’
\set dbname ‘test’
\set host ‘192.168.126.232’
– 启动时自动连接
\c :dbname :user :host
安全警告:避免明文存储密码,建议通过命令行交互输入或使用加密工具。
(4) 加载外部脚本
– 启动时自动执行 SQL 脚本
\i /path/to/init_queries.sql
(5) 自定义命令
– 定义快捷命令(如查询活动会话)
\set activity ‘SELECT pid, query FROM sys_stat_activity;’
– 使用自定义命令
:activity
3. 提示符定制
提示符类型
• PROMPT1:常规输入提示符(最常用)。
• PROMPT2:多行输入等待提示符(默认与 PROMPT1 相同)。
• PROMPT3:COPY FROM STDIN 行值输入提示符。
常用变量
变量 含义
%M 数据库服务器别名(-h 参数值或 [local])
%> 数据库端口号
%n 当前数据库用户名
%/ 当前数据库名称
%# 超级用户显示 #,普通用户显示 >
%p 当前连接的后台进程号
%R 事务状态:正常 =, 断开 !
%x 事务块状态(非空表示在事务中)
示例配置:
– 设置 PROMPT1 为 "用户名@数据库名 事务状态# "
\set PROMPT1 '%n@%/%R%# ’
– 效果示例:
system@test=#
4. 操作示例
步骤 1:创建用户级配置文件
#以 kingbase 用户身份编辑 .ksqlrc
vi ~/.ksqlrc
步骤 2:添加提示符配置
– 文件内容示例1
\set PROMPT1 ‘%n@%/%R%# ’
\pset format aligned – 设置对齐表格输出
\set activity ’ SELECT datname,usename,client_addr,client_port,application_name FROM sys_stat_activity;’ – 定义快捷命令
– 文件内容示例2
\set PROMPT1 '%date +%H:%M:%S% %M:%> %n@%/%R%#%x ’
\set PROMPT2 '%M %n@%/%R%# ’
\set activity1 ‘SELECT datname,usename,client_addr,client_port,application_name FROM sys_stat_activity WHERE pid <> pg_backend_pid();’
\set activity2 ‘SELECT datname, usename, client_addr, query, state, backend_start FROM sys_stat_activity;’
步骤 3:启动 ksql 并验证
#连接数据库
ksql -Usystem -dtest -h 192.168.126.232
输出效果:
Type “help” for help.
system@test=# – 提示符已生效
system@test=# :activity – 执行自定义命令

system@test=# :activity1 – 执行自定义命令

5. 安全建议
- 敏感信息保护
避免在 .ksqlrc 中明文存储密码,改用交互式输入或环境变量(如 PGPASSWORD)。 - 文件权限控制
chmod 600 ~/.ksqlrc # 限制仅当前用户可读写 - 环境变量替代
export PGPASSWORD=‘your_password’ # 通过环境变量传递密码
ksql -Usystem -dtest -h 192.168.126.232
6. 总结
通过合理配置 .ksqlrc,您可以:
• 统一开发环境设置(如输出格式、连接参数)。
• 提升效率(预加载脚本、自定义命令)。
• 个性化提示符以增强可读性。
建议将配置文件纳入版本控制(排除敏感信息),便于团队协作与环境一致性管理。
三、图形客户端程序 KStudio 介绍
以Linux操作系统为例,使用用户kingbase 的身份登录GUI界面,打开一个终端,执行如下命令,启动图形客户端程序KStudio。
$ KStudio


使用图形客户端KStudio,用户可以完成如下任务:管理数据库、管理表空间、管理用户和角色、查看系统参数,以及执行SQL语句。
四、集群部署工具 DeployTools 介绍
命令行进入到安装目录下$InstallDir/ClientTools/guitools/DeployTools,执行./deploy,启动数据库集群部署工具。
$ ./deploy

五、总结
"工欲善其事,必先利其器。"金仓数据库提供的客户端程序套件,通过多层次、多维度的工具组合,构建了完整的数据库管理生态体系。从面向开发人员的KSQL命令行交互工具,到为DBA深度优化的KStudio图形化管理平台;从数据迁移助手到性能监控中心,每个组件都体现了"工具链专业化、操作场景精细化"的设计理念。这套工具集不仅支持跨平台部署、兼容主流数据库协议,更通过可视化交互、自动化脚本生成等功能大幅降低运维门槛,其细粒度权限管理和审计追踪机制也为数据安全提供了坚实保障。随着国产化替代进程加速,金仓客户端工具在保持Oracle/MySQL兼容优势的同时,正以"低学习成本、高运维效率"的特性,成为政企数字化转型中数据库管理的关键支撑平台。




