ロックを見ることができます。
pg_locksを直接使用するよりも少し簡単にするためのビューを次に示します。
CREATE OR REPLACE VIEW public.active_locks AS
SELECT t.schemaname,
t.relname,
l.locktype,
l.page,
l.virtualtransaction,
l.pid,
l.mode,
l.granted
FROM pg_locks l
JOIN pg_stat_all_tables t ON l.relation = t.relid
WHERE t.schemaname <> 'pg_toast'::name AND t.schemaname <> 'pg_catalog'::name
ORDER BY t.schemaname, t.relname;
次に、ビューから選択するだけです:
SELECT * FROM active_locks;
そしてそれを殺す:
SELECT pg_cancel_backend('%pid%');
その他の解決策:http://wiki.postgresql.org/wiki/Lock_Monitoring