Что делать при table lock?

Middle
186 просмотров
AFK Offer AI

Сначала найди, кто держит лок — pg_stat_activity + pg_locks. Если это долгая транзакция — можно убить через pg_terminate_backend(). Для предотвращения: используй короткие транзакции, ставь lock_timeout, избегай DDL на горячих таблицах. ALTER TABLE берёт ACCESS EXCLUSIVE lock — делай это в low traffic window. Для добавления NOT NULL колонки используй двухшаговый подход: добавь nullable, залей данные, потом добавь constraint.

Следующий вопрос

Как дебажить connection timeout?