Amazon Redshift
数据库开发人员指南 (API Version 2012-12-01)
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。点 击 Getting Started with Amazon AWS to see specific differences applicable to the China (Beijing) Region.

PG_TERMINATE_BACKEND

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

语法

Copy
pg_terminate_backend( pid )

参数

pid

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

返回类型

使用说明

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

如果多个会话中的查询锁定到了同一个表,您可以使用 PG_TERMINATE_BACKEND 终止其中一个会话,这将强制已终止会话中所有当前运行的事务释放锁定并回滚事务。查询 PG__LOCKS 目录表以查看当前持有的锁。

如果某个查询不在事务块 (BEGIN … END) 中,您可使用 CANCEL 命令或 PG_CANCEL_BACKEND 函数取消该查询。

示例

以下语句将查询 SVV_TRANSACTIONS 表以查看对当前事务生效的所有锁:

Copy
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

以下语句将终止保持锁定的会话:

Copy
select pg_terminate_backend(8585);