PG_TERMINATE_BACKEND - Amazon Redshift

PG_TERMINATE_BACKEND

Encerra uma sessão. Você pode encerrar uma sessão de propriedade de seu usuário. Um superusuário pode encerrar qualquer sessão.

Sintaxe

pg_terminate_backend( pid )

Argumentos

pid

O ID de processo da sessão a ser encerrada. Requer um valor INTEGER.

Tipo de retorno

Nenhum

Observações de uso

Se você estiver próximos de alcançar o limite de conexões simultâneas, use PG_TERMINATE_BACKEND para encerrar sessões ociosas e liberar as conexões. Para obter mais informações, consulte Limites no Amazon Redshift.

Se consultas em várias sessões têm bloqueios na mesma tabela, você pode usar a função PG_TERMINATE_BACKEND para encerrar uma das sessões, o que força todas as transações atualmente em execução na sessão encerrada a liberar todos os bloqueios e reverter a transação. Consulte a tabela de catálogo PG_LOCKS para visualizar os bloqueios atuais.

Se uma consulta não estiver em um bloco de transação (BEGIN… END), você pode cancelar a consulta usando o comando CANCEL ou a função PG_CANCEL_BACKEND.

Exemplos

Para consultar a tabela SVV_TRANSACTIONS a fim de visualizar todos os bloqueios em vigor para transações atuais, use o exemplo a seguir..

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 encerrar a sessão com os bloqueios, use o exemplo a seguir.

SELECT PG_TERMINATE_BACKEND(8585);