メニュー
Amazon Redshift
データベース開発者ガイド (API Version 2012年12月1日)

PG_TERMINATE_BACKEND

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

構文

Copy
pg_terminate_backend( pid )

引数

pid

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

戻り型

なし

使用に関する注意事項

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

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

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

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

Copy
select * from svv_transactions; txn_owner | txn_db | xid | pid | txn_start | lock_mode | lockable_object_type | relation | granted ----------+-----------+-------+------+---------------------+-----------------+----------------------+----------+-------- rsuser | dev | 96178 | 8585 | 2017-04-12 20:13:07 | AccessShareLock | relation | 51940 | true rsuser | dev | 96178 | 8585 | 2017-04-12 20:13:07 | AccessShareLock | relation | 52000 | true rsuser | dev | 96178 | 8585 | 2017-04-12 20:13:07 | AccessShareLock | relation | 108623 | true rsuser | dev | 96178 | 8585 | 2017-04-12 20:13:07 | ExclusiveLock | transactionid | | true

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

Copy
select pg_terminate_backend(8585);