KingbaseES ksqlrc文件介绍
-
ksqlrc文件作用
ksql在连接到数据库后但在接收正常的命令之前,会尝试读取并执行该文件中的命令,如果加上-X参数,则跳过该文件。
系统级的启动文件是ksqlrc,文件在安装好的KingbaseES的“系统配置”目录中。默认情况下,这个目录将是../etc/(相对于包含KingbaseES可执行文件的目录)。最可靠的定位方法是运行sys_config --sysconfdir
用户个人的启动文件是.ksqlrc,一般在用户home目录下,如~/.ksqlrc。
若同时设置2个文件,最终生效的是用户个人的配置。
DBA可以通过这个文件自定义客户端风格,定义一些常用的维护脚本。 -
编辑提示
ksql 默认有三个提示符:PROMPT1 、PROMPT2 、PROMPT3。
PROMPT1 是指当ksql等待新命令发出时的常规提示符,这个提示符使用得最多
PROMPT2 是指在命令输入过程中等待更多输入时发出的提示符, 例如当命令没有使用分号终止或者引用没有被关闭时就会发出这个提示符, PROMPT2 的默认设直值与 PROMPT1 一样;
PROMPT3 指在运行一个 SQL COPY FROM STDIN 命令并且需要在终端上输入一个行值时发出的提示符。
提示符常用选项:
%M :数据库服务器别名,不是指主机名,显示的是 psql 的 -h 参数设置的值;当连接建立在 Unix 域套接字上时则是 [local]
%> :数据库服务器的端口号 。
%n :数据库会话的用户名,在数据库会话期间,这个值可能会因为命令 SETSESSION AUTHORIZATION 的结果而改变 。
%/ :当前数据库名称。
%# :如果是超级用户则显示“#”,其他用户显示“>”,在数据库会话期间,这个值可能会因为命令 SET SESSION AUTHORIZATION 的结果而改变 。
%p :当前数据库连接的后台进程号 。
%R :在 PROMPT1 中通常显示“=”,如果进程被断开则显示“!” 。
%x: 指事务状态–通常为空白,除非在事务语句块中(*)
也可以加入shell命令.
vi ~/.psqlrc 添加以下内容
\set PROMPT1 '%`date +%H:%M:%S` %M:%> %n@%/%R%#%x '
\set PROMPT2 '%M %n@%/%R%# '
ksql连接数据库后看到的提示符就变成
09:29:22 [local]:54321 system@test=#
常用的设置项,在连入数据库后用 \set 命令可以看到,这里就不展示了。 若不习惯ksql的自动提交,一样可以在该文件中进行设置,这样就不用每次登陆后再进行设置。
- 定义常用脚本
vi ~/.psqlrc 添加以下内容
查询当前活动会话
\set active_session ' select pid, datname,usename,client_addr,query,query_start,state,wait_event from sys_stat_activity where query !~''<IDLE'' and pid <> pg_backend_pid() and state=''active'' order by query;'
测试:在会话一,执行 ksql -Usystem -p54321 test -c "select sys_sleep(60);" &
在会话二,测试之前的自定义脚本