--查看哪些表锁定了,查询到后复制其pid,可进行以下操作
SELECT
relname AS table_name,
l.pid,
mode,
granted,age(now(), query_start) AS duration
FROM sys_locks l
JOIN pg_class c ON l.relation = c.oid
JOIN sys_stat_activity a ON l.pid = a.pid
WHERE l.mode = 'AccessExclusiveLock'
AND c.relkind = 'r' -- 只查看普通表
ORDER BY duration DESC;
--查看1638594进程的详细信息
-- 查看等待锁的进程详情
SELECT
pid,
usename,
datname,
application_name,
client_addr,
state,
query,now() - query_start AS waiting_time,
pg_blocking_pids(pid) AS blocking_pids
FROM sys_stat_activity
WHERE pid = 1638594;
SELECT pid, usename, query, state,now() - query_start
FROM sys_stat_activity
WHERE pid = 1638594;
-- 优雅终止,允许事务回滚
SELECT pg_cancel_backend(1638594);
-- 强制终止,立即断开连接
SELECT pg_terminate_backend(1638594);