メニュー
Amazon Redshift
データベース開発者ガイド (API Version 2012-12-01)

PG_TERMINATE_BACKEND

セッションを終了します。ユーザー自身が所有するセッションを終了できます。スーパーユーザーはどのセッションでも終了できます。

構文

Copy
pg_terminate_backend( pid )

引数

pid

終了するセッションのプロセス ID。整数値である必要があります。

戻り型

なし

使用に関する注意事項

同時接続の制限に近づいている場合、PG_TERMINATE_BACKEND を使用してアイドル状態のセッションを終了し、接続を解放することができます。詳細については、「Amazon Redshift での制限」を参照してください。

複数のセッションのクエリが同じテーブルのロックを保持している場合、PG_TERMINATE_BACKEND を使用してセッションの 1 つを終了することができます。これにより、終了したセッションで現在実行中のトランザクションがあれば、そのすべてのロックが強制的に解放され、トランザクションがロールバックされます。STV_LOCKS システムテーブルに対してクエリを実行して、現在保持しているロックを表示します。

クエリがトランザクションブロック (BEGIN… END) 内にない場合、CANCEL コマンドまたは PG_CANCEL_BACKEND 関数を使用してクエリをキャンセルできます。

次のステートメントでは、STV_LOCKS テーブルに対してクエリを実行し、現在のトランザクションで有効なすべてのロックを表示します。

Copy
select table_id, last_update, lock_owner, lock_owner_pid, lock_status from stv_locks; table_id | last_update | lock_owner | lock_owner_pid | lock_status ----------+----------------------------+------------+----------------+------------------------ 100295 | 2014-01-06 23:50:56.290917 | 95402 | 7723 | Holding write lock 100304 | 2014-01-06 23:50:57.408457 | 95402 | 7723 | Holding write lock 100304 | 2014-01-06 23:50:57.409986 | 95402 | 7723 | Holding insert lock (3 rows)

次のステートメントは、ロックを保持しているセッションを終了します。

Copy
select pg_terminate_backend(7723);