Amazon Redshift
数据库开发人员指南 (API 版本 2012-12-01)
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 Amazon AWS 入门

PG_TERMINATE_BACKEND

终止会话。您可终止您的用户拥有的会话。超级用户可终止任何会话。

语法

pg_terminate_backend( pid )

参数

pid

要终止的会话的进程 ID。需要一个整数值。

返回类型

使用说明

如果您即将达到并行连接的限制,请使用 PG_TERMINATE_BACKEND 终止空闲会话并释放连接。有关更多信息,请参阅 Amazon Redshift 中的限制

如果多个会话中的查询锁定到了同一个表,您可以使用 PG_TERMINATE_BACKEND 终止其中一个会话,这将强制已终止会话中所有当前运行的事务释放锁定并回滚事务。查询 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);