PostgreSQL

接続中のセッションを全部切る方法

投稿日:

セッション毎にプロセスが動いている。
pg_terminate_backend()を使ってプロセスを落とせば良い。
動いているプロセスを落とせばセッションは切れる。
killで落とすと上手くいかないので注意。

基本形

基本形は以下の通り。

通常、セッションは複数存在するため、切りたいセッションのプロセスIDを選択して
pg_terminate_backend()に渡す必要がある。

自分以外全部切る

生きているセッションをpg_terminate_backend()(後述)を使って探し、
pg_terminate_backend()に食わせて落とす。
自分自身のpidは pg_backend_pid() で得られる。

datnameはTypoではない!

動的統計情報ビュー

上で使っているpg_stat_activityは動的統計情報ビューというビルトインのビューの一つ。
27.2.2. 統計情報の表示
サーバ当たり1行の形式で、
状態や現在の問い合わせ等のプロセスの現在の活動状況に関連した情報を表示する。

取れるデータ達は以下の通り。PostgresSQLのバージョンによって異なるが、
よく使いそうなものは変わらなそう。使う場合には要注意。

-PostgreSQL
-

Copyright© ikuty.com , 2020 AllRights Reserved Powered by AFFINGER4.