Здравствуйте, VladiCh, Вы писали:
VC>это все здорово но pg_dump так не делает
VC>он элементарно стартует read-only repeatable read транзакцию
VC>после этого все чтение внутри этой транзакции читается из снапшота созданного на момент ее старта, новые изменения ей не видны
VC>этот снапшот можно использовать из других соединений тоже если передать его id — бэкапить в несколько потоков
VC>никакой фрагмент лога никуда не добавляется, если кто-то что-то закоммитил за время бэкапа — в бэкап не попадает
Но этот способ, как мы знаем из ТС, падает на блокировках.
Я всего лишь объяснял, как сделать бэкап, не падая на блокировках, и не жертвуя консистентостью бэкапа. Способ вполне себе дедовский. Описан, например, в
Гарсиа-Молина раздел 17.5.2, стр. 872.