Ситуация: при попытке добавить столбец в одну из таблиц, получил сообщение, что таблица заблокирована из-за процесса с номером Х. «Странно» подумал я, т.к. собственно никаких запросов, тем более «тяжелых» в данный момент не выполнял. Посмотрел текущие запросы и обнаружил:
|
SELECT user, pid, client_addr, query, query_start, NOW() - query_start AS elapsed FROM pg_stat_activity WHERE query != '<IDLE>' -- AND EXTRACT(EPOCH FROM (NOW() - query_start)) > 1 ORDER BY elapsed DESC; |
Что процесс, на который ругалась БД, был запущен еще несколько дней назад, и не понятно по какой причине еще до сих пор не завершен. По идее то бы тут конечно нужно по выяснять, а почему это собственно произошло… но я не стал. А просто завершил процесс:
|
SELECT pg_cancel_backend(113964) |