Postgre SQL 故障排查

視圖分析問題

SELECT * FROM pg_stat_activity WHERE datname='數據庫名稱' and query like '%表名%'

查詢鎖(全局)

SELECT
a.datname,
locktype,
virtualtransaction,
transactionid,
nspname,
relname,
mode,
granted,
query,
a.pid,
cast(date_trunc('second',query_start) AS timestamp) AS query_start
FROM
pg_locks
LEFT OUTER JOIN pg_class ON (pg_locks.relation = pg_class.oid)
LEFT OUTER JOIN pg_namespace ON (pg_namespace.oid = pg_class.relnamespace),
pg_stat_activity a
WHERE NOT pg_locks.pid = pg_backend_pid()
AND pg_locks.pid=a.pid
and relname='表名' 
and a.datname='數據庫名稱'

查詢鎖

select T.PID, T.STATE, T.QUERY, T.WAIT_EVENT_TYPE, T.WAIT_EVENT,
T.QUERY_START
from PG_STAT_ACTIVITY T
where T.DATNAME = '數據庫用戶名'
and T.WAIT_EVENT_TYPE = 'Lock'
and t.QUERY like '%表名%';

刪除PID

嘗試刪除

SELECT pg_cancel_backend(PID);

或者

SELECT pg_terminate_backend(PID);

直接乾脆的刪除,類似 kill -9


Mr.superbeyone


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章