Назад | Перейти на главную страницу

Как приостановить Postgres перед созданием снимка LVM / ZFS?

Как я могу указать Postgres завершить все «незавершенные» транзакции, но отложить запуск новых (не отключая клиентов) до тех пор, пока я не сделаю снимок ZFS или LVM (что занимает меньше секунды).

например

  1. приостановить Postgres, ожидая завершения "незавершенных" транзакций
  2. синхронизировать с диском
  3. сделать снимок ZFS / LVM
  4. возобновить Postgres

Сообщение, упомянутое в ответе @ user121391, верное, но вкратце:

  • Ты не можешь Пауза postgresql любым способом (заставить его продолжать открытые транзакции и не обрабатывать новые транзакции)
  • Если базовый снимок является атомарным (снимки ZFS кажутся атомарными), перед снимком ничего делать не нужно, если вы запустите новый postgres на снимке, база данных запустится в режиме восстановления (как при аварийной остановке предыдущего процесса).
  • pg_start_backup сделает процесс восстановления немного быстрее (так как контрольная точка создана, и ожидающих записей в WAL будет меньше)

Этот ответ на dba.stackexchange кажется, что вам нужно.

Кажется, что комментарии не связываются автоматически на боковой панели (внутри сети), поэтому мне нужно написать еще кое-что, чтобы предотвратить автоматическое преобразование в комментарий ... да.