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);