Здравствуйте, gandjustas, Вы писали:
G>Вот ты начинаешь копировать данные в момент Х, а за это время пользователи вносят изменения в объеме dX.
G>Должен ли этот dX попасть в бекап?
G>1) если нет, и вам нужна консистентность на момент X, то придется заблокировать всех (делает pg_dump)
G>2) если да, то надо записать состояние X, заблокировав dX, а потом дозаписать dX, блокируя изменения в (X/dX). (так делает pg_basebackup)
Эмм,
1. в момент старта бэкапа
-- Выполнить checkpoint
-- Записать в WAL метку "начало бэкапа"
2. В момент окончания бэкапа записать в WAL метку "конец бэкапа"
3. Добавить к бэкапу фрагмент лога между метками "начало бэкапа" и "конец бэкапа".
Ни в какой момент ничего не блокируется