Re[3]: Бекапы PostresSQL 15 без блокировок работы
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 28.10.24 13:45
Оценка: -1
Здравствуйте, Gt_, Вы писали:


G>>Вот ты начинаешь копировать данные в момент Х, а за это время пользователи вносят изменения в объеме dX.

G>>Должен ли этот dX попасть в бекап?
G>>1) если нет, и вам нужна консистентность на момент X, то придется заблокировать всех (делает pg_dump)


Gt_>да ладно. быть не может что бы так проигрывал конкурентам. PG классический версионник, в чем там может быть сложность вычитать таблицу на момент X без блокировок ?

Да вычитать то не проблема. Проблема в том, что за время бекапа таблица не должна поменяться. А то ты скопировал первые 1000 строк, другой пользователь сфорировал из них частичные суммы дописал в конец, а пока копировал вторую тысячу первую тысячу удалил.

Gt_>в доке тоже говориться что без локов обходиться:

Gt_>pg_dump is a utility for backing up a PostgreSQL database. It makes consistent backups even if the database is being used concurrently. pg_dump does not block other users accessing the database (readers or writers).
Gt_>https://www.postgresql.org/docs/current/app-pgdump.html

Внезапно написанное не означает что без локов. Написанное означает что ты можешь выполнить запрос на чтение или запись и он выполнится. Не уточняя что иногда может выполнится после окончания бекапа.
pg_dump такто навешивает локи на таблицы во время бекапа, а некоторых режимах просто падает если таблица поменяется за время бекапа.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.