Обновление сервера 1С:Предприятия без простоя и потери баз

· 9 мин

Содержание

Обновить сервер 1С правильно — значит поставить новую платформу рядом со старой, остановить сеансы, переключить службу на новую версию, проверить кластер и только потом пускать пользователей. Базы при этом не трогают: платформа и конфигурация обновляются отдельно.

Типичная ситуация: в пятницу вечером админ ставит новый релиз платформы «поверх», в понедельник бухгалтерия не может войти, а клиенты на рабочих местах старее сервера. Ниже порядок, который этого избегает. Он подходит и для файлового варианта, но упор здесь на клиент-серверный: служба агента, кластер, rac и ras.

Что проверить до начала работ

Три вопроса решают всё. Нужна ли новая платформа вашей конфигурации? Поддерживает ли её текущая ОС и СУБД? Успеете ли вы обновить клиентов?

  • 📌 Откройте требования к платформе в описании релиза конфигурации: там указана минимальная версия платформы.
  • 📌 Сверьте версию СУБД (PostgreSQL, MS SQL) и ОС с таблицей совместимости на сайте разработчика.
  • 📌 Посмотрите, у скольких пользователей стоят тонкие клиенты и на скольких серверах приложений есть эта же платформа.
  • 📌 Проверьте лицензии: ключи программных лицензий привязаны к серверу, а не к версии, но аппаратный ключ должен остаться на месте.

Версия клиента и версия сервера должны совпадать. Если сервер 8.3.24, а у бухгалтера 8.3.22, вход в базу в лучшем случае потребует обновить клиент, в худшем — упадёт с ошибкой соединения.

Какой способ обновления выбрать

СпособКогда подходитРиски
Новая версия рядом, службу переключаютОдин сервер, окно 1-2 часаНужно аккуратно перенести параметры службы
Обновление поверх старой версииТолько мелкие сборки одной веткиНет быстрого отката, файлы могут быть заняты
Новый сервер, перенос кластераСмена ОС или железаДольше по времени, нужна проверка лицензий
Тестовый стенд, затем боевойКрупные базы, много пользователейНужен второй сервер или виртуальная машина

Для большинства организаций лучший вариант — первый. Для крупных баз полезен четвёртый: на стенде вы заранее увидите, как поведут себя внешние обработки, обмены и регламентные задания.

Сколько времени закладывать

Сама установка платформы занимает 10-20 минут. Завершение сеансов и проверка — ещё полчаса. Если после этого обновляется конфигурация и идёт реструктуризация большой базы (например, 200 ГБ), добавьте от одного до нескольких часов. Планируйте окно с запасом вдвое и не назначайте его на конец месяца или день сдачи отчётности.

Резервные копии: что именно сохранять

Без свежей копии не начинайте. Сохраните три вещи:

  1. Базы данных средствами СУБД (дамп PostgreSQL, бэкап MS SQL) и выгрузку в .dt для самых важных баз.
  2. Каталог данных кластера — тот, что содержит reg_1541 и списки баз. Узнать путь можно в свойствах службы агента сервера, параметр -d.
  3. Файл 1cv8.lst и настройки conf.cfg, nethasp.ini, если они менялись руками.

Каталог кластера копируйте только при остановленной службе. На живой службе копия получится «рваной».

Хорошая привычка: сделайте снимок виртуальной машины. Откат на снимок занимает минуты, а ручное восстановление кластера — часы.

Установка новой платформы рядом со старой

Платформу 1С можно держать в нескольких версиях одновременно. Каждая лежит в своей папке вида C:\Program Files\1cv8\8.3.XX.YYYY. Это значит, что старую версию ставить заново не придётся, если что-то пойдёт не так.

Порядок установки на Windows

  1. Скачайте дистрибутив серверной платформы с сайта поддержки. Нужен архив «Технологическая платформа 1С:Предприятия для Windows 64 bit».
  2. Запустите setup.exe от имени администратора.
  3. В списке компонентов включите «Сервер 1С:Предприятия». Если сервер физически один, оставьте тонкий клиент, он пригодится для проверки.
  4. Не удаляйте предыдущую версию. Установщик создаст новую папку.
  5. Закончив установку, не запускайте службу сразу. Сначала нужно переключить её на новую папку.

Порядок установки на Linux

На Linux ставят пакеты deb или rpm нужной версии: сервер, общие библиотеки, при необходимости ws и crs. Установщик кладёт файлы в каталог вида /opt/1cv8/x86_64/8.3.XX.YYYY. Служба srv1cv83 указывает на конкретный каталог через параметры юнита или файл конфигурации, и менять её нужно вручную.

После установки на Linux проверьте права на каталог кластера. Служба работает под пользователем usr1cv8, и если каталог создавали от root, новая версия не сможет писать журналы.

Остановка: сначала сеансы, потом служба

Нельзя останавливать службу, пока в базах работают люди. Транзакции прервутся, а в файлах журнала останутся блокировки.

Запрет входа и завершение сеансов

Через консоль кластера или rac сначала запретите новые подключения, потом закройте существующие. Покажу на примере rac:

rac cluster list
rac infobase summary list --cluster=<ИД_кластера>
rac infobase update --infobase=<ИД_базы> --cluster=<ИД_кластера> --sessions-deny=on --scheduled-jobs-deny=on
rac session list --cluster=<ИД_кластера> --infobase=<ИД_базы>
rac session terminate --cluster=<ИД_кластера> --session=<ИД_сеанса>

Регламентные задания тоже отключайте: иначе фоновое задание стартует в момент, когда вы ставите платформу, и зависнет.

Предупредите пользователей заранее. Для этого у базы есть текст сообщения при блокировке и время начала блокировки: пользователь увидит предупреждение за несколько минут и успеет сохранить работу.

Остановка службы агента

Когда все сеансы закрыты, остановите службу:

  • Windows: служба «Агент сервера 1С:Предприятия 8.3 (x86-64)» в services.msc.
  • Linux: systemctl stop srv1cv83.

Проверьте в диспетчере задач (или ps), что процессы ragent, rmngr и rphost исчезли. Если остался висящий rphost, завершите его вручную — иначе он удерживает файлы старой версии.

Переключение службы на новую версию

Здесь чаще всего ошибаются. Установка платформы сама не меняет путь к ragent в существующей службе.

Windows

Самый безопасный способ — создать службу заново для новой версии. Командная строка администратора:

sc stop "1C:Enterprise 8.3 Server Agent (x86-64)"
sc delete "1C:Enterprise 8.3 Server Agent (x86-64)"
sc create "1C:Enterprise 8.3 Server Agent (x86-64)" binPath= "\"C:\Program Files\1cv8\8.3.XX.YYYY\bin\ragent.exe\" -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -d \"D:\srvinfo\"" start= auto

Параметры -d, -port, -regport и -range копируйте точно из старой службы. Если ошибиться в каталоге -d, служба создаст пустой кластер, и вам покажется, что все базы пропали. Они не пропали: просто агент смотрит в другое место.

Имя службы и параметры у вас могут отличаться. Прежде чем удалять, откройте свойства старой службы и запишите путь запуска целиком. Учётная запись, от имени которой работает служба, тоже должна остаться прежней.

Часть админов вместо пересоздания меняет ImagePath службы в реестре. Результат тот же, но пересоздание нагляднее и оставляет меньше шансов опечататься.

Linux

Откройте файл юнита (обычно /etc/systemd/system/srv1cv83.service или создаваемый установщиком), поправьте путь к ragent на новый каталог и выполните:

systemctl daemon-reload
systemctl start srv1cv83
systemctl status srv1cv83

В статусе должны быть строки об активной службе и три процесса: ragent, rmngr, rphost.

Проверка кластера и баз после запуска

Сервер запустился — это ещё не успех. Проверьте по списку:

  • ✅ Кластер виден в консоли администрирования или в выводе rac cluster list.
  • ✅ В кластере те же информационные базы, что и раньше.
  • ✅ Рабочие серверы (rphost) запущены, нагрузка распределяется.
  • ✅ Параметры кластера: число процессов, лимиты памяти, перезапуск процессов — остались прежними.
  • ✅ Запрет входа ещё включён, пользователи не зашли раньше времени.

Если сервер приложений не один, обновляйте каждый по очереди. Сначала главный центральный сервер, потом рабочие. Кластер с разными версиями платформы на узлах работать не будет.

Вход тестового пользователя

Снимите запрет только для себя: запустите тонкий клиент с ключом /UC и кодом разрешения, зайдите под администратором, откройте пару документов и один отчёт. Если база открылась и нет сообщений о версии, значит платформа и кластер в порядке.

Затем снимите блокировку для всех:

rac infobase update --infobase=<ИД_базы> --cluster=<ИД_кластера> --sessions-deny=off --scheduled-jobs-deny=off

Что делать с клиентами и конфигурациями

После сервера выровняйте клиентов. Тонкий клиент обновляется автоматически, если включена такая настройка в списке баз, и обновляться он будет с публикации или с сетевого каталога установки. Для веб-клиента достаточно переопубликовать базу на веб-сервере новой версией модуля.

Публикация на веб-сервере

Если базы опубликованы через IIS или Apache, перепубликуйте их утилитой администрирования веб-сервера или конфигуратором, указав новый каталог платформы. Старый модуль wsisapi.dll не подхватит новый сервер. После перепубликации проверьте, что в default.vrd остались ваши сервисы и права.

Обновление конфигурации

Новая платформа не требует немедленного обновления конфигурации, если выпуск конфигурации её поддерживает. Но часто обновляют обе вещи в одно окно. Тогда порядок такой:

  1. Платформа на сервере и клиентах.
  2. Проверка работы базы на текущем релизе конфигурации.
  3. Обновление конфигурации (файл .cf/.cfu или из списка обновлений) в конфигураторе, монопольно.
  4. Режим 1С:Предприятие: сработают обработчики обновления, дождитесь их завершения.

Не совмещайте в одну ночь смену платформы, обновление конфигурации и смену СУБД. Если что-то сломается, вы не поймёте, что именно.

Откат и типовые ошибки

Если после запуска сервер ведёт себя странно, у вас есть быстрый путь назад: старая версия платформы осталась на диске, а копия кластера лежит рядом.

Диагностика: выберите симптом

Как откатиться на прежнюю версию

  1. Остановите службу агента.
  2. Верните в параметрах службы путь к ragent старой версии.
  3. Если кластер уже «обновился» и старая версия не принимает его формат, восстановите каталог данных кластера из копии.
  4. Запустите службу и проверьте базы.

Базы данных в СУБД откатывать приходится редко: платформа сама их структуру не меняет. Дамп нужен, если одновременно обновляли конфигурацию.

Чек-лист на окно обслуживания

Обновление сервера 1С
Выполнено: 0 / 7

Частые вопросы

Можно ли обновить сервер 1С, пока работают пользователи?
Нет. Остановка службы оборвёт сеансы и транзакции. Сначала запретите вход и завершите сеансы, потом останавливайте службу.
Нужно ли удалять старую версию платформы?
Не сразу. Оставьте её на случай отката, а удалите через неделю-две стабильной работы. Старые версии не мешают друг другу.
Нужно ли обновлять конфигурацию вместе с платформой?
Не обязательно. Новая платформа обычно работает с текущим релизом конфигурации, но проверьте требования в описании релиза. Обновление конфигурации — отдельный шаг.
Что будет с лицензиями при смене версии?
Программные лицензии остаются привязаны к серверу и продолжают работать. Если используется аппаратный ключ, проверьте, что драйвер защиты установлен и ключ виден службе.
Как узнать, какая версия платформы работает на сервере?
Откройте консоль кластера или посмотрите путь запуска ragent в свойствах службы: номер версии есть в имени папки. Клиент показывает версию в окне «О программе».
Зачем перерегистрировать службу, если платформа уже установлена?
Установка не меняет путь запуска существующей службы. Пока вы его не поправите, сервер продолжит работать на старой версии, а клиенты после обновления с ним не сойдутся.