ページの先頭行へ戻る
Enterprise Postgres 9.5 運用ガイド
FUJITSU Software

10.4.2 psコマンドを使用する場合

標準的なUnixツール(psコマンド)を使用する場合、以下の手順でコネクションを切断します。

  

  1. psコマンドを実行します。
    なお、“<xy>”は、製品のバージョンレベルを示します。

    > ps axwfo user,pid,ppid,tty,command | grep postgres
    fsepuser    19174 18027 pts/1                 \_ grep postgres
    fsepuser    20517     1 ?        /opt/fsepv<xy>server64/bin/postgres -D /disk01/data  
    fsepuser    20518 20517 ?         \_ postgres: logger process
    fsepuser    20520 20517 ?         \_ postgres: checkpointer process
    fsepuser    20521 20517 ?         \_ postgres: writer process
    fsepuser    20522 20517 ?         \_ postgres: wal writer process
    fsepuser    20523 20517 ?         \_ postgres: autovacuum launcher process
    fsepuser    20524 20517 ?         \_ postgres: archiver process
    fsepuser    20525 20517 ?         \_ postgres: stats collector process
    fsepuser    18673 20517 ?         \_ postgres: fsepuser postgres 192.168.100.1(49448) idle
    fsepuser    16643 20517 ?         \_ postgres: fsepuser db01 192.168.100.11(49449) UPDATE waiting
    fsepuser    16644 20517 ?         \_ postgres: fsepuser db01 192.168.100.12(49450) idle in transaction

    プロセスID(16643)は、UPDATE文で長時間接続したコネクションや、資源を占有したコネクション(waiting)の可能性があります。

      

  2. 長時間、待ち状態のクライアントのコネクションを切断します。

    pg_terminate_backend()を利用して、上記1.で特定したプロセスIDのコネクションを切断します。

    ただし、アプリケーションの互換性を維持することを考慮し、下記のSQL文中の関数を使用しないようにしてください。

    postgres=# SELECT pg_terminate_backend (16643);
     pg_terminate_backend
    -------------------
    t
    (1 row)

      

参照

  • pg_terminate_backendの詳細は、“PostgreSQL文書”の“SQL言語”の“システム管理関数”を参照してください。

  • アプリケーションの互換性の維持に関する詳細は、“アプリケーション開発ガイド”の“アプリケーションの互換に関する注意事項”を参照してください。