ビュー(pg_stat_activity)を使用する場合、以下の手順でコネクションを切断します。
psqlコマンドで、データベースpostgresに接続します。
> psql postgres psql (11.1) Type "help" for help.
長時間、待ち状態のクライアントのコネクションを切断します。
pg_terminate_backend()を利用して、長時間接続中のコネクションを切断します。
ただし、アプリケーションの互換性を維持することを考慮し、下記のSQL文中のシステムカタログや関数を直接参照したり使用しないようにしてください。
以下の例は、クライアントの待ち状態が、60分以上の場合、コネクションを切断します。
select pid,usename,application_name,client_hostname,pg_terminate_backend(pid) from pg_stat_activity where state='idle in transaction' and current_timestamp > cast(query_start + interval '60 minutes' as timestamp); -[ RECORD 1 ]--------+--------------- pid | 4684 usename | fsepuser application_name | apl1 client_addr | 192.11.11.1 pg_terminate_backend | t
参照
pg_terminate_backendの詳細は、“PostgreSQL Documentation”の“The SQL Language”の“System Administration Functions”を参照してください。
アプリケーションの互換性の維持に関する詳細は、“アプリケーション開発ガイド”の“アプリケーションの互換に関する注意事項”を参照してください。