Настройка точного времени (NTP Chrony) на Linux сервере PostgreSQL для 1С
- Ошибки последовательности транзакций в 1С при одновременной работе сервера приложений и СУБД.
- Документы проводятся «будущим временем» или задним числом с разницей в несколько секунд/минут.
- Сбои кластерной репликации PostgreSQL и рассинхронизация блокировок сеансов 1С.
Почему точное время критично для связки 1С + PostgreSQL?
Если сервер 1С и сервер PostgreSQL работают на разных машинах (или в виртуальных машинах), разница во времени даже в 1-2 секунды приводит к блокировкам транзакций, сбоям версионирования данных и ошибкам блокировок Lock conflict.
Шаг 1. Установка современного демона синхронизации Chrony
# Для Ubuntu / Debian:
sudo apt-get update && sudo apt-get install chrony -y
# Для Rocky Linux / AlmaLinux / RHEL / CentOS:
sudo dnf install chrony -yШаг 2. Настройка серверов точного времени
- Откройте конфигурационный файл chrony в текстовом редакторе:
sudo nano /etc/chrony/chrony.conf # (в Ubuntu/Debian)
# или
sudo nano /etc/chrony.conf # (в RHEL/Rocky)- Убедитесь, что указаны надежные пулы серверов (или ваш локальный контроллер домена Active Directory):
server pool.ntp.org iburst
server time.google.com iburst
server time.cloudflare.com iburst
# Разрешить скачкообразную коррекцию времени при старте:
makestep 1.0 3
rtcsyncШаг 3. Запуск и включение автозагрузки службы
sudo systemctl enable --now chrony # (в Ubuntu/Debian)
# или
sudo systemctl enable --now chronyd # (в Rocky/RHEL)
sudo systemctl restart chrony || sudo systemctl restart chronydШаг 4. Проверка статуса синхронизации
Выполните команду проверки источников точного времени:
chronyc sources -vСимвол ^* рядом с именем сервера означает, что время успешно синхронизировано с этим источником с высокой точностью.
Частые вопросы (FAQ)
Как проверить текущую дату, время и часовой пояс на Linux?
Выполните команду timedatectl. В строке 'System clock synchronized' должно стоять значение 'yes'.
Как правильно выставить нужный часовой пояс (например, Москва)?
Выполните команду: sudo timedatectl set-timezone Europe/Moscow.
Почему виртуальные машины на KVM/ESXi часто теряют точное время?
Виртуальные процессоры не всегда точно передают аппаратные прерывания таймера (TSC). Использование chrony с опцией makestep решает проблему дрейфа часов виртуализации.
Нужно ли синхронизировать время с сервером 1С, если PostgreSQL стоит на той же машине?
Если 1С и PostgreSQL на одном сервере, время системных часов у них общее, но синхронизация с NTP все равно обязательна для корректной работы фискальных накопителей и интеграций по API.