Администрирование · 10 мин
Как обновить сервер 1С на Linux
Пошаговое обновление сервера 1С:Предприятие на Linux: подготовка, резервное копирование, установка новой версии платформы, проверка служб и типичные ошибки.
Обновление сервера 1С:Предприятие на Linux — задача, которую нельзя выполнять «нажал далее и готово». Сервер приложений отвечает за работу всех пользователей, и ошибка в процессе обновления приводит к остановке учёта, обрыву сеансов и, в худшем случае, к рассинхронизации версий платформы между сервером и клиентами. Поэтому процедура всегда начинается с подготовки: снятия резервных копий, проверки совместимости версий и выбора технологического окна.
Технически обновление сводится к установке нового дистрибутива платформы из пакетов DEB или RPM, перезапуску службы агента сервера и проверке, что кластер поднялся на новой версии. Однако дьявол кроется в деталях: зависимости пакетов, права пользователя usr1cv8, параллельно установленные старые версии и необходимость обновить клиентские места одновременно с сервером.
Ниже разобран полный цикл обновления: от проверки текущей версии до контроля результата. Инструкции приведены для DEB-based систем (Debian, Ubuntu, Astra Linux) с пояснениями для RPM-based (CentOS, Red Hat, ALT Linux) там, где команды отличаются.
Подготовка: что проверить перед обновлением
Первый шаг — определить текущую версию платформы на сервере. Это можно сделать командой просмотра установленных пакетов или через консоль кластера. Заодно проверьте, какая версия требуется прикладному решению: вендоры конфигураций указывают минимально совместимую версию платформы в документации к релизу.
dpkg -l | grep 1c-enterprise # Debian/Ubuntu/Astra
rpm -qa | grep 1c-enterprise # CentOS/Red Hat/ALT
ls /opt/1cv8/ # каталоги установленных версийУбедитесь, что у вас есть: дистрибутив новой версии платформы с портала 1С (архив с deb- или rpm-пакетами), действующая лицензия (программная или доступный сервер HASP-ключа), права root или sudo на сервере, а также согласованное окно простоя. Обновление под нагрузкой недопустимо: активные сеансы будут разорваны.
Проверьте свободное место на диске — дистрибутив распаковывается в /opt/1cv8, и каждая версия занимает заметный объём. Также уточните, не используются ли компоненты, которые ставятся отдельными пакетами: сервер хранилища конфигураций, веб-серверные расширения (ws), дополнительные языковые модули. Их нужно обновлять вместе с основным сервером.
Резервное копирование перед обновлением
Минимальный набор копий: дамп каждой информационной базы средствами СУБД (pg_dump для PostgreSQL, mysqldump для MySQL, штатные средства для MS SQL), копия каталога srvinfo с реестром кластера и список установленных пакетов платформы. Дамп баз — это страховка от проблем в данных; копия srvinfo — от потери настроек кластера, рабочих серверов и списка баз.
pg_dump -U postgres -Fc mybase > /backup/mybase_$(date +%F).dump
cp -r /home/usr1cv8/.1cv8 /backup/1cv8_registry_$(date +%F)Храните копии вне обновляемого сервера — на сетевом ресурсе или другом хосте. Проверьте, что дамп реально создался и имеет ненулевой размер: битая копия, обнаруженная в момент восстановления, равносильна её отсутствию.
Завершение сеансов и остановка служб
Перед установкой новых пакетов необходимо выгнать пользователей и остановить агент сервера. Сеансы можно завершить через консоль администрирования кластера (на Windows-машине администратора) или программно через RAC: заблокировать информационные базы, дождаться завершения сеансов и принудительно отключить зависшие.
# Завершить все сеансы кластера через RAC
/opt/1cv8/x86_64/8.3.XX.XXXX/rac session terminate --cluster=<ID_кластера>
# Остановить агент сервера
systemctl stop srv1cv8-8.3.XX.XXXX@defaultИмя службы зависит от версии платформы — она создаётся отдельным unit-файлом для каждой установленной версии. Точное имя смотрите через systemctl list-units | grep srv1cv8. После остановки убедитесь, что процессы ragent, rphost и rmngr завершились: ps aux | grep 1cv8. Оставшиеся rphost-процессы завершите вручную, иначе установщик может столкнуться с заблокированными файлами.
Установка новой версии платформы
Распакуйте архив дистрибутива и установите пакеты. Для DEB-систем достаточно команды dpkg по всем пакетам каталога; при ошибках зависимостей выполните apt-get install -f. Для RPM-систем используйте rpm -Uvh, который корректно обновляет уже установленные пакеты той же версии и ставит новые рядом, если версия другая.
- 1Распаковать архив дистрибутива во временный каталог
- 2Установить пакеты: dpkg -i <em>.deb или rpm -Uvh </em>.rpm
- 3Убедиться, что появился каталог /opt/1cv8/x86_64/<новая версия>
- 4Запустить новую службу агента: systemctl start srv1cv8-<версия>@default
- 5Проверить, что кластер виден и список баз на месте
Важная особенность: платформа 1С на Linux допускает параллельную установку нескольких версий в /opt/1cv8. Старая версия при этом не удаляется автоматически — это упрощает откат, но требует следить за тем, какая служба запущена. Если запустить агенты двух версий с одинаковыми портами, возникнет конфликт: стандартные порты 1540–1541 (агент и менеджер) и диапазон 1560–1591 (рабочие процессы) должны быть заняты только одной версией.
Запуск новой версии и проверка результата
После установки запустите службу новой версии и добавьте её в автозагрузку, предварительно отключив автозапуск старой. Реестр кластера (srvinfo) подхватывается автоматически, если каталог данных не менялся — список баз, настройки и администраторы сохранятся.
systemctl disable srv1cv8-<старая_версия>@default
systemctl enable --now srv1cv8-<новая_версия>@default
systemctl status srv1cv8-<новая_версия>@defaultКак проверить результат
systemctl status показывает active (running), в процессах есть ragent, rmngr, rphost новой версии
Служба падает сразу после запуска, в journalctl -u ошибки портов или прав
Консоль администрирования и rac cluster list показывают новую версию платформы
Кластер отвечает, но версия осталась старой — запущен не тот агент
Тонкий/толстый клиент новой версии открывает базу без ошибок
Ошибка несовпадения версий — клиент старой платформы
Базы через браузер открываются после переопубликации webinst
Ошибка загрузки модуля веб-расширения
Финальная проверка — тестовый вход пользователем с реальными операциями: открытие документов, проведение, формирование отчёта. Только после этого можно считать обновление завершённым и снимать блокировку баз.
Обновление клиентских мест и PostgreSQL
Сервер и клиенты должны работать на одной версии платформы. После обновления сервера разверните новую версию на клиентских машинах: для Windows-клиентов — через групповые политики или публикацию дистрибутива, для Linux-клиентов — теми же пакетами. Если клиентов много, удобно разместить дистрибутив на сетевом ресурсе и обновлять централизованно.
Отдельный вопрос — СУБД. Обновление платформы 1С не требует обновления PostgreSQL, но проверьте совместимость: платформа поддерживает определённые версии СУБД. Если вы обновляете и PostgreSQL (например, сборку от 1С), делайте это отдельной процедурой с полным дампом кластера баз, а не совмещайте с обновлением платформы — так проще локализовать источник проблем.
Сравнение вариантов
Быстро, откат через запуск старой версии. Требует окна простоя и дисциплины с портами и службами.
Старый сервер остаётся рабочим до переключения, риск минимален. Требуется второй хост и перенос srvinfo и баз.
Воспроизводимо и удобно для парка серверов. Требует предварительной отладки playbooks на тестовом стенде.
Откат и типичные ошибки
Откат при параллельной установке прост: остановите службу новой версии, запустите службу старой, верните автозагрузку. Если вы успели обновить и клиентов — их придётся откатывать тоже. Если проблема затронула данные, восстанавливайте базы из дампов, снятых перед обновлением.
Что важно запомнить
Обновление сервера 1С на Linux — это резервная копия, остановка сеансов, установка пакетов новой версии, запуск правильной службы и обязательная синхронизация клиентов. Старую версию не удаляйте, пока новая не пройдёт проверку в реальной работе.
Частые вопросы
Можно ли обновить сервер 1С без остановки работы пользователей?
Полноценно — нет: установка пакетов и перезапуск агента требуют завершения сеансов. Сократить простой можно, подготовив всё заранее (дистрибутив на сервере, скрипты проверены, копии сняты) — тогда окно сводится к 15–30 минутам. Альтернатива — переезд на новый сервер с последующим переключением.
Нужно ли удалять старую версию платформы после обновления?
Не сразу. Оставьте её минимум на период обкатки новой версии — это ваш путь отката. Удаляйте старые версии (apt remove / rpm -e по пакетам), когда новая стабильно проработала несколько недель и копии srvinfo сохранены.
Клиент пишет «несовпадение версий» после обновления сервера. Что делать?
Клиентская платформа старее серверной. Обновите платформу на клиентском компьютере до той же версии, что и на сервере. Если клиентов много, используйте централизованную установку через сетевой ресурс или групповые политики.
Где лежат логи, если служба не стартует после обновления?
Смотрите журнал службы: journalctl -u srv1cv8-<версия>@default. Технологический журнал кластера настраивается через logcfg.xml в каталоге установки платформы. Частые причины сбоев — занятые порты другой версией агента и нарушенные права на каталог srvinfo (владелец должен быть usr1cv8).
Нужно ли обновлять конфигурацию базы после обновления платформы?
Обычно нет: прикладная конфигурация работает на новых версиях платформы в рамках совместимости. Но проверьте требования вендора конфигурации — иногда обновление прикладного решения требует конкретной минимальной версии платформы, и порядок обновления (сначала платформа, потом конфигурация) нужно соблюдать.