PG_TERMINATE_BACKEND - Amazon Redshift

PG_TERMINATE_BACKEND

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

構文

pg_terminate_backend( pid )

引数

pid

終了するセッションのプロセス ID。INTEGER 値は必須です。

戻り型

なし

使用に関する注意事項

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

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

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

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

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 | +-----------+--------+-------+------+---------------------+-----------------+----------------------+----------+---------+

ロックを保持しているセッションを終了するには、次の例を使用します。

SELECT PG_TERMINATE_BACKEND(8585);