KingbaseES ksqlrc檔案介紹
阿新 • • 發佈:2022-04-08
-
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);" &
在會話二,測試之前的自定義指令碼