Администрирование · 12 мин
Как установить патч PostgreSQL для 1С
Пошаговая установка патча PostgreSQL для 1С: выбор версии, обновление на Linux и Windows, перенос базы, проверка результата и типичные ошибки администраторов.
Под «патчем PostgreSQL для 1С» обычно понимают либо минорное обновление специальной сборки PostgreSQL, которую фирма «1С» публикует на портале releases.1c.ru, либо отдельный исправительный патч, устраняющий конкретную ошибку СУБД. В обоих случаях процедура похожа: обновляются бинарные файлы сервера, а кластер баз данных остаётся на месте, если меняется только третий номер версии (например, 15.4 → 15.8).
Главное правило безопасности: до начала любых действий у вас должна быть рабочая резервная копия всех баз. Ошибка при обновлении СУБД способна повредить кластер целиком, и восстановление возможно только из бэкапа. Второе обязательное условие — обновление выполняется в часы, когда пользователи не работают: на время установки сервер баз данных будет остановлен.
Ниже разобран полный цикл: как определить, какой патч нужен, где его взять, как установить на Linux и Windows, как проверить результат и что делать при проблемах.
Как понять, какой патч вам нужен
Сначала выясните текущую версию PostgreSQL. Проще всего выполнить запрос SELECT version(); в любом клиенте (psql, pgAdmin) или посмотреть версию в консоли кластера серверов 1С. Запишите полный номер: мажорная версия (например, 13, 14, 15) и минорная (например, 15.4).
Далее уточните, какая сборка установлена. Для 1С используется не «ванильный» PostgreSQL, а адаптированная сборка с портала 1С — в ней встроены исправления для работы платформы (обработка типов, полнотекстовый поиск, совместимость с механизмами 1С). Если сервер ставили из репозитория 1С, строка версии обычно содержит пометку вида 1C. Обновлять такую сборку пакетами из общего репозитория PostgreSQL нельзя — получите несовместимую конфигурацию.
Причина установки патча тоже влияет на выбор. Если исправляется известная ошибка (например, падение сервера на определённых запросах или уязвимость), смотрите в описании релиза на портале 1С, в какой минорной версии она закрыта. Если повод — рекомендация вендора, берите последний доступный минорный релиз вашей ветки.
Подготовка: резервная копия и окно обслуживания
Согласуйте с пользователями время простоя. До начала работ завершите сеансы 1С, остановите регламентные задания и убедитесь, что нет активных соединений с базами: список сеансов виден в консоли кластера 1С, а соединения с PostgreSQL — запросом к представлению pg_stat_activity.
Сделайте резервную копию двумя независимыми способами. Первый — логическая выгрузка каждой базы через pg_dump с ключом -Fc (пользовательский формат, сжатие). Второй — копия каталога данных кластера (обычно /var/lib/pgsql/.../data на Linux или каталог, указанный при инициализации на Windows) при остановленном сервере. Два разных механизма страхуют друг друга: если один бэкап окажется битым, останется второй.
Проверьте, что у вас есть права: на Linux — root или sudo, на Windows — права локального администратора и пароль учётной записи службы PostgreSQL, если она работает не под системной учётной записью. Также зафиксируйте текущие настройки: сохраните копии postgresql.conf, pg_hba.conf и параметров запуска службы — при установке пакета конфигурация иногда перезаписывается значениями по умолчанию.
Где скачать патч PostgreSQL для 1С
Дистрибутивы адаптированной сборки публикуются на портале releases.1c.ru в разделе обновлений программ, доступен по подписке ИТС. Там выбирается нужная ветка PostgreSQL и платформа: пакеты для разных дистрибутивов Linux (rpm, deb) или установщик для Windows.
Скачивайте пакет той же мажорной ветки, что установлена у вас, но с более новым минорным номером. Если на портале доступно несколько минорных версий вашей ветки, берите последнюю — минорные обновления накопительные и включают все предыдущие исправления.
Обратите внимание на разрядность и пакетный менеджер. Для rpm-дистрибутивов (CentOS, Red OS, ALT Linux) нужны rpm-пакеты, для deb-дистрибутивов (Debian, Ubuntu, Astra Linux) — deb. Установка «чужого» формата через конвертеры типа alien — частый источник проблем с зависимостями.
Установка патча на Linux
Порядок действий одинаков для rpm- и deb-систем, отличаются только команды. Сначала остановите службы: сервер 1С (srv1cv8) и PostgreSQL. Затем установите новые пакеты — пакетный менеджер заменит старые бинарные файлы новыми, каталог данных при этом не трогается.
sudo systemctl stop srv1cv8-8.3.24-...
sudo systemctl stop postgresql-15
sudo rpm -Uhv postgresql15-1c-<em>.rpm # для rpm-систем
# или: sudo dpkg -i postgresql-15-1c_</em>.deb # для deb-систем
sudo systemctl start postgresql-15
sudo systemctl start srv1cv8-8.3.24-...После установки пакетов, но до запуска службы проверьте, что конфигурационные файлы на месте и содержат ваши настройки. Некоторые пакеты кладут рядом файлы postgresql.conf.rpmnew или .dpkg-new — это эталонные конфиги новой версии, их стоит сравнить со своими и при необходимости перенести новые параметры вручную.
Запустите PostgreSQL и посмотрите журнал: journalctl -u postgresql-15 -n 50 или лог в каталоге данных. Сервер должен стартовать без ошибок, пройти этап восстановления (если останавливался некорректно) и начать принимать соединения. После этого запускайте сервер 1С.
Установка патча на Windows
На Windows обновление выполняется установщиком. Завершите сеансы пользователей, остановите службы «Агент сервера 1С:Предприятия» и PostgreSQL через оснастку services.msc. Затем запустите скачанный установщик от имени администратора — при установке «поверх» той же ветки он обновит файлы сервера, сохранив каталог данных и конфигурацию.
Если установщик предлагает инициализировать новый кластер — откажитесь от этого шага: новая инициализация создаст пустой кластер, а ваши базы останутся в старом каталоге данных. Убедитесь, что служба PostgreSQL после установки ссылается на правильный каталог данных (параметр -D в свойствах службы).
- 1Завершить сеансы 1С и остановить службу агента сервера 1С
- 2Остановить службу PostgreSQL через services.msc
- 3Снять копию каталога данных и конфигурационных файлов
- 4Запустить установщик нового минорного релиза от имени администратора
- 5Отказаться от инициализации нового кластера, если предложат
- 6Запустить службу PostgreSQL, проверить журнал событий
- 7Запустить агент сервера 1С и проверить подключение к базам
Отдельный сценарий: патч от ошибки в связке с 1С
Иногда «патчем» называют не обновление СУБД, а исправление на стороне платформы 1С или конфигурационный обходной путь для известной проблемы PostgreSQL — например, ошибок планировщика запросов на конкретных запросах. Такие случаи описываются в базе знаний 1С и обычно решаются обновлением платформы, а не СУБД.
Прежде чем обновлять PostgreSQL, убедитесь, что проблема действительно в нём. Признаки проблемы на стороне СУБД: ошибки в журнале PostgreSQL (segfault, PANIC), рассинхронизация планов запросов, известная ошибка конкретной минорной версии. Если же в журнале чисто, а ошибки возникают только в технологическом журнале 1С — вероятнее, нужен патч платформы.
Как выбрать действие
Проверка результата и откат
После запуска служб выполните контрольные проверки. Убедитесь, что версия изменилась: SELECT version(); должен показать новый минорный номер. Подключитесь к каждой базе 1С через консоль кластера и запустите тестовый вход в режиме предприятия: база должна открываться без ошибок, журнал регистрации — писаться.
Как проверить результат
Номер минорной версии увеличился, пометка сборки 1С сохранилась
Версия прежняя — пакет не установился; пропала пометка 1С — установлена чужая сборка
Сервер стартовал, нет ERROR/PANIC, соединения принимаются
Повторяющиеся ошибки, сервер падает или уходит в recovery
Все базы открываются, типовые операции выполняются
Ошибки подключения, зависания при открытии
Задания запускаются по расписанию без ошибок
Задания падают или не стартуют после обновления
Если после обновления базы не открываются или сервер не стартует, безопасный путь — откат. Остановите службы, верните прежние пакеты (для rpm — rpm -Uhv --oldpackage со старым пакетом, для deb — установка прежней версии через apt с указанием версии), при необходимости восстановите каталог данных из копии. Восстановление из pg_dump потребуется только если повреждены сами данные, что при минорном обновлении случается редко.
Ограничения и частые вопросы
Минорный патч не решает проблем производительности, вызванных настройками: если база тормозила до обновления, она будет тормозить и после, пока не настроены память, autovacuum и индексы. Также патч не меняет формат хранения — объём данных и структура таблиц остаются прежними.
Учитывайте, что сборка PostgreSQL от 1С обновляется с задержкой относительно апстрима: свежие минорные версии появляются на портале 1С позже, чем в общем репозитории PostgreSQL. Это нормально — не пытайтесь «догнать» апстрим чужими пакетами.
Что важно запомнить
Патч PostgreSQL для 1С — это минорное обновление сборки с портала 1С: резервная копия, остановка служб, установка пакетов той же ветки, запуск и проверка версии и работы баз. Мажорный переход и смена сборки — это миграция с выгрузкой данных, а не патч.
FAQ
Можно ли установить патч PostgreSQL без остановки работы пользователей?
Нет. Замена бинарных файлов сервера требует остановки службы PostgreSQL, а значит, все базы будут недоступны. Планируйте окно обслуживания в нерабочее время. Сама установка пакетов обычно занимает минуты, основное время уходит на бэкап и проверки.
Нужно ли пересоздавать базы 1С после минорного обновления PostgreSQL?
Нет. В рамках одной мажорной ветки формат данных совместим: сервер новой минорной версии работает с существующим каталогом данных. Пересоздание (выгрузка и загрузка) требуется только при смене мажорной версии или сборки.
Чем сборка PostgreSQL от 1С отличается от обычной?
Сборка с портала 1С содержит адаптации под платформу: особенности работы с типами данных, полнотекстовым поиском и механизмами, которые платформа использует при развёртывании баз. Платформа 1С официально поддерживает работу именно с этой сборкой и с Postgres Pro.
Обновление прошло, но база 1С не открывается — с чего начать?
Сначала смотрите журнал PostgreSQL: если сервер не стартовал или падает, причина в нём (конфигурация, несовместимость пакетов). Если сервер работает, проверьте, не изменился ли pg_hba.conf — возможно, сбросились правила доступа. Затем смотрите технологический журнал 1С на предмет ошибок подключения.
Можно ли обновиться сразу через несколько минорных версий, например с 15.2 на 15.8?
Да. Минорные обновления накопительные: достаточно установить последний минорный релиз вашей ветки, промежуточные ставить не нужно. Требования к процедуре те же — бэкап, остановка служб, установка пакета, проверка.
Где взять предыдущую версию пакета для отката?
На портале releases.1c.ru обычно доступны несколько последних релизов каждой ветки — скачайте нужный до начала обновления и держите под рукой. Дополнительная страховка — копия каталога данных, снятая до установки патча: с ней откат возможен даже при повреждении кластера.