pg_restore и эксклюзивные блокировки

Доброго времени суток всем. Недавно озадачился вопросом восстановления бд через pg_restore с использованием мультипоточности (флаг -j).
Verbose-вывод процеса pg_restore ошибок не содержит, результат выполнения - положительный. Тем не менее в логе постреса появляются записи:

2015-01-22 12:33:31 YEKT [10372]: [2-1] user=postgres,db=maindb_dev DETAIL: Process 10372 waits for AccessExclusiveLock on relation 1987967 of database 1983954.
2015-01-22 12:33:31 YEKT [10372]: [3-1] user=postgres,db=maindb_dev STATEMENT: ALTER TABLE ONLY t_changelog
ADD CONSTRAINT pk_t_changelog PRIMARY KEY (id_source, id);
Т.е., насколько я понимаю, ALTER TABLE ждет пока будет снята блокировка, а потом выполнится. В общем, жду вашиш соображений.

Опции просмотра комментариев

Выберите предпочитаемый вами способ показа комментариев и нажмите "Сохранить настройки" для активации изменений.

Непонятно. Это уже после

Непонятно. Это уже после восстановления появляются сообщения во время обычной работы или эти сообщения были во время восстановления?

Во время восстановления.

Во время восстановления.

Если во время восстановления,

Если во время восстановления, которое как вы написали идёт в несколько потоков, то я бы предположил, что это нормально.
Действительно, при ALTER TABLE, когда меняется структура таблицы или на неё наклываются ограничения (как в данном случае PRIMARY KEY), она должна быть залочена и позволять лить туда данные на мой взгляд не лучшая идея.

Спасибо

Спасибо

Опции просмотра комментариев

Выберите предпочитаемый вами способ показа комментариев и нажмите "Сохранить настройки" для активации изменений.

Back to top

(С) Виктор Вислобоков, 2008-2023