PG_TERMINATE_BACKEND - Amazon Redshift

PG_TERMINATE_BACKEND

Termina una sesión. Puede terminar una sesión propiedad de su usuario. Un superusuario puede terminar cualquier sesión.

Sintaxis

pg_terminate_backend( pid )

Argumentos

pid

El ID de proceso de la sesión que se terminará. Requiere un valor INTEGER.

Tipo de retorno

Ninguna

Notas de uso

Si está cerca de alcanzar el límite para las conexiones simultáneas, utilice PG_TERMINATE_BACKEND para terminar las sesiones inactivas y liberar conexiones. Para obtener más información, consulte Límites de Amazon Redshift.

Si las consultas de distintas sesiones tienen bloqueos en la misma tabla, puede usar la función PG_TERMINATE_BACKEND para terminar una de las sesiones, lo que fuerza que las transacciones en ejecución de la sesión terminada liberen todos los bloqueos y reviertan la transacción. Consulte la tabla de catálogo PG_LOCKS para ver los bloqueos actuales.

Si una consulta no está en un bloque de transacción (BEGIN ... END), puede cancelar la consulta utilizando el comando CANCEL o la función PG_CANCEL_BACKEND.

Ejemplos

Para consultar la tabla SVV_TRANSACTIONS para ver todos los bloqueos vigentes para las transacciones actuales, use el siguiente ejemplo.

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

Para finalizar la sesión que contiene los bloqueos, utilice el siguiente ejemplo.

SELECT PG_TERMINATE_BACKEND(8585);