Часто системные администраторы сталкиваются с ситуацией, когда служба PostgreSQL на Windows перестает корректно запускаться или процесс старта занимает критически долгое время (до 30 минут). Рассмотрим подробнее, почему это происходит и как настроить сервер для стабильной работы.
Основная причина такого поведения — некорректное завершение работы службы PostgreSQL. В среде Windows при выключении компьютера система часто просто «убивает» процессы, если они не успевают остановиться в отведенный тайм-аут. Если PostgreSQL не успевает выполнить checkpoint (сброс данных из оперативной памяти на диск), то при следующем включении база данных помечается как «несогласованная».
При запуске сервер начинает процесс аварийного восстановления (Crash Recovery). Он анализирует журналы предзаписи WAL, чтобы «откатить» незавершенные транзакции и обеспечить целостность данных. Именно этот процесс и занимает те самые 15–30 минут, которые вы наблюдаете.
Чтобы избежать принудительного восстановления данных, важно приучить систему к корректному завершению работы. Никогда не полагайтесь на автоматическое выключение Windows, если база данных активна.
net stop postgresql-x64-9.6 (имя службы может отличаться в зависимости от версии).pg_log.database system is shut down.Если сервер продолжает работать нестабильно, необходимо проанализировать файл postgresql.conf. Параметры, связанные с контрольными точками, напрямую влияют на скорость записи и восстановления. Рассмотрим, как их можно настроить для повышения стабильности:
Откройте конфигурационный файл postgresql.conf в текстовом редакторе и обратите внимание на параметры:
# Пример настроек checkpoint
max_wal_size = 1GB
min_wal_size = 80MB
effective_cache_size = 4GB
Важно: убедитесь, что эти строки не закомментированы (нет символа # в начале строки). Если они были закомментированы, система использовала дефолтные значения, которые могли быть неоптимальны для вашей нагрузки. Настройка max_wal_size позволяет серверу реже совершать запись на диск, однако слишком большие значения могут увеличить время восстановления при сбое, поэтому подбирайте их исходя из объема вашей базы данных.
Помимо настроек checkpoint, проанализируем еще два критических аспекта:
data, где лежат файлы базы данных.Следуя этим рекомендациям, вы сможете минимизировать время простоя системы и обеспечить стабильную работу 1С даже в условиях частых перезагрузок оборудования.