Является ли дамп базы данных pg_dump «в то время»? - PullRequest
3 голосов
/ 06 июля 2011

Я знаю, что PostgresQL pg_dump гарантирует согласованность, даже если БД изменяется во время выполнения дампа, но я хочу знать, содержит ли окончательный дамп какие-либо данные, измененные / вставленные после его запуска.

Для уточнения:

  1. Время t : я запускаю pg_dump
  2. Время t + 1 : имеются обновления / вставки в базу данных
  3. Время t + x : pg_dump завершается.

Я не хочу, чтобы в файле дампа присутствовали какие-либо изменения, сделанные за период 'x'.

Возможно ли это?

1 Ответ

6 голосов
/ 06 июля 2011

На этот вопрос ответили в другом вопросе SO: Выполнение pg_dump, пока еще много активных транзакций.

Краткий ответ - да: pg_dump открывает транзакцию, и никакие изменения, внесенные в базу данных, не будут видны ей во время дампа, поэтому снимки pg_dump являются атомарными и представляют собой согласованный снимок (т.е. никакой внешний ключ или другие ограничения не будут нарушено в моментальном снимке).

НТН

...