Сервер мини изнутри: процессы, порты, отладка и пределы

· 9 мин

Содержание

«1С:Предприятие 8. Сервер мини» работает на тех же программах, что и обычный сервер 1С: агент ragent, менеджер кластера rmngr, рабочие процессы rphost, порты 1540, 1541 и диапазон 1560–1591. Отличается он лицензией. Она разрешает не больше 5 одновременных пользовательских сеансов во всех базах кластера вместе.

Отсюда практический вывод: отдельного «мини-дистрибутива» нет. Сервер мини ставится, запускается в отладочном режиме, администрируется и диагностируется так же, как полный сервер. Ниже по порядку: чем режимы различаются, как поднимается служба, из чего состоит кластер, как подключить базу и где искать причину, если клиенты не подключаются.

Чем Сервер мини отличается от полноценного сервера 1С

Главное отличие — в лицензии, а не в коде. Когда сервер получает лицензию «мини», он ограничивает число сеансов. Всё остальное работает как в обычной клиент-серверной схеме.

ПараметрСервер миниПолный сервер (64-бит)
Дистрибутивобщий дистрибутив сервера 1Стот же
Процессыragent, rmngr, rphostте же
Сеансы 1С:Предприятияне больше 5 на все базыограничены клиентскими лицензиями
Число информационных базне ограниченоне ограничено
СУБДMS SQL Server, PostgreSQL и другие поддерживаемыете же
Клиентские лицензиинужны отдельнонужны отдельно

📌 Что важно понять про лимит:

  • 🔢 пять сеансов — это сумма по всем базам. Три бухгалтера в БП и два кадровика в ЗУП уже исчерпали лимит;
  • 🧑‍💻 сеанс Конфигуратора, по опыту администраторов, сверх этих пяти не блокируется, но рассчитывать на это при планировании нагрузки не стоит;
  • 🔑 лицензия сервера не заменяет клиентские: на каждого пользователя всё равно нужна клиентская лицензия.

Сервер мини выгоден, когда база уже переросла файловый режим по надёжности, а пользователей мало. Например, 3–4 человека в одной БП, которым нужен регламентный бэкап средствами СУБД и нет блокировок файла 1Cv8.1CD.

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

После установки сервера с отметкой «установить как сервис Windows » появляется служба агента. Её имя выглядит как 1C:Enterprise 8.3 Server Agent (x86-64). Служба запускает ragent.exe с параметрами, которые видно в свойствах службы, в поле «Исполняемый файл».

Типичная командная строка:

"C:\Program Files\1cv8\8.3.24.1548\bin\ragent.exe" -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -d "C:\Program Files\1cv8\srvinfo"

Что здесь что:

  1. -srvc — запуск в роли службы Windows.
  2. -agent — режим агента сервера.
  3. -port 1540 — порт агента.
  4. -regport 1541 — порт менеджера кластера.
  5. -range 1560:1591 — диапазон портов для рабочих процессов.
  6. -d — каталог служебных данных кластера (srvinfo).

Включение отладки на сервере

Чтобы разработчик мог ставить точки останова в серверном коде, агент запускают с ключом -debug. Без него Конфигуратор подключится к базе, но серверные модули отлаживаться не будут.

Порядок действий:

  1. Предупредите пользователей: при перезапуске службы все сеансы оборвутся. Делайте это вне рабочего времени или после согласования.
  2. Остановите службу агента.
  3. Откройте редактор реестра, раздел HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ и найдите ключ службы агента 1С.
  4. В параметре ImagePath допишите в конец строки -debug.
  5. Запустите службу и проверьте в диспетчере задач, что ragent.exe поднялся.

Правьте только хвост строки ImagePath. Сломанная кавычка в пути к ragent.exe — и служба перестанет стартовать вовсе.

Если нужна отладка по протоколу HTTP (обязательна для мобильных клиентов и удобна в EDT), к -debug добавляют -http. Тогда отладка идёт через сервер отладки dbgs, по умолчанию на порту 1550.

Не оставляйте -debug на рабочем сервере постоянно. Отладка добавляет накладные расходы, а на машине с лимитом в 5 сеансов ресурсы обычно и так скромные.

Запуск на Linux

В актуальных версиях платформы для Linux поставляется юнит systemd. Ключ -debug добавляют в строку запуска ragent в файле юнита, затем выполняют systemctl daemon-reload и перезапускают службу. Предупреждение про обрыв сеансов действует и здесь.

Из каких процессов состоит облегчённый кластер

Кластер Сервера мини устроен так же, как у полного сервера. Просто в нём обычно один компьютер и немного нагрузки.

Цепочка подключения клиента:

  1. Клиент обращается к агенту сервера на порт 1540.
  2. Агент передаёт его менеджеру кластера на порт 1541.
  3. Менеджер кластера назначает рабочий процесс из диапазона 1560–1591, и дальше клиент работает с ним.
ПроцессРольЧто видно в диспетчере задач
ragentагент сервера: хранит список кластеров, принимает первое обращениеодин процесс
rmngrменеджер кластера: реестр баз, сеансы, блокировки, регламентные заданияодин или несколько
rphostрабочий процесс: выполняет серверный код и запросы к СУБДодин или несколько
rasсервер администрирования для утилиты racтолько если запущен

🗂️ Настройки кластера хранятся в каталоге srvinfo, в подкаталоге reg_1541. Там лежит файл 1CV8Clst.lst со списком баз и администраторов. Этот каталог стоит включить в резервное копирование : без него после сбоя базы придётся регистрировать заново.

Диапазон портов рабочих процессов задаётся в свойствах рабочего сервера в консоли кластера. Там же — параметры перезапуска процессов и требования назначения функциональности. Для Сервера мини эти настройки обычно оставляют по умолчанию.

Если на сервере включён брандмауэр, откройте входящие TCP 1540, 1541 и весь диапазон 1560–1591. Открытый только 1540 — частая причина, когда клиент «видит» сервер, но базу не открывает.

Регистрация информационных баз и подключение клиентов

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

СпособКогда удобенЧто нужно
Окно запуска 1С → «Добавить» → «Создание новой информационной базы» → «На сервере 1С:Предприятия»первая база, нет навыков консолиправа на создание баз в СУБД
Консоль администрирования серверов 1Снесколько баз, нужны параметры блокировкиустановленная консоль, зарегистрированный radmin.dll
Утилита rac через rasLinux, скрипты, удалённое администрированиезапущенный ras

Через консоль администрирования

  1. Откройте «Администрирование серверов 1С Предприятия».
  2. Добавьте центральный сервер: имя компьютера, порт 1540.
  3. Раскройте Кластеры → Локальный кластер → Информационные базы.
  4. В контекстном меню выберите «Создать → Информационная база».
  5. Заполните имя базы в кластере, тип СУБД, сервер БД, имя базы в СУБД, пользователя и пароль СУБД.
  6. Отметьте «Создать базу данных в случае её отсутствия», если базы в СУБД ещё нет.

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

regsvr32 "C:\Program Files\1cv8\8.3.24.1548\bin\radmin.dll"

Командную строку запускайте от имени администратора. Версия radmin.dll должна совпадать с версией сервера.

Через rac

Сначала запустите сервер администрирования, затем узнайте идентификатор кластера:

ras cluster --port=1545
rac cluster list
rac infobase summary list --cluster=<uuid-кластера>

Создание базы тоже доступно через rac infobase create, но набор ключей для СУБД длинный. Сверьте его со справкой rac help infobase для своей версии платформы.

Подключение пользователей

В окне запуска 1С пользователь добавляет существующую базу, тип «На сервере 1С:Предприятия». Указывает кластер серверов (имя компьютера) и имя базы в кластере. В строке подключения это выглядит так: Srvr="srv1c";Ref="buh";.

Имя базы в кластере и имя базы в СУБД — разные поля. Клиент указывает именно имя в кластере.

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

Диагностика сбоев и чтение логов в реальном времени

Когда что-то идёт не так, у администратора Сервера мини четыре источника информации.

🔍 Список сеансов. Консоль: Информационные базы → <база> → Сеансы. Через rac:

rac session list --cluster=<uuid-кластера>
rac session list --cluster=<uuid-кластера> --licenses

Второй вариант показывает, какие лицензии заняты. При лимите в 5 сеансов это первое, что стоит проверить. Зависший сеанс ушедшего сотрудника легко «съедает» место коллеги.

🔍 Рабочие процессы. rac process list --cluster=<uuid-кластера> или ветка «Рабочие процессы» в консоли. Видно, сколько памяти занимает каждый rphost и сколько в нём соединений.

🔍 Журнал регистрации базы. Открывается в режиме 1С:Предприятия или Конфигуратора. Показывает ошибки прикладного кода, входы пользователей, падения регламентных заданий.

🔍 Технологический журнал. Пишет события самой платформы: исключения, взаимоблокировки, долгие запросы. Включается файлом logcfg.xml в каталоге conf установленной платформы. Минимальный вариант для ловли исключений:

<?xml version="1.0" encoding="UTF-8"?>
<config xmlns="http://v8.1c.ru/v8/tech-log">
  <log location="C:\techlog" history="24">
    <event>
      <eq property="name" value="EXCP"/>
    </event>
    <property name="all"/>
  </log>
</config>

Сервер перечитывает файл сам, перезапуск не нужен. Логи появятся в C:\techlog в подкаталогах по процессам. Параметр history="24" хранит журналы за 24 часа.

Не включайте сбор всех событий без фильтра. Журнал за пару часов займёт гигабайты, а на небольшом сервере место на диске заканчивается быстро. Собрали данные — удалите или переименуйте logcfg.xml.

Чтобы смотреть ошибки «вживую», откройте свежий файл .log в редакторе, который подхватывает дописывание, или в PowerShell:

powershell Get-Content "C:\techlog\rphost_1234\26100712.log" -Wait -Tail 20

Имя подкаталога и файла у вас будет своё: процесс и его PID, затем год, месяц, день и час.

Если не помогло

Если клиенты всё равно не подключаются, проверьте лицензию сервера. Без активной лицензии сервер не обслуживает сеансы 1С:Предприятия. Затем сравните номера версий: номер платформы клиента должен совпадать с номером версии сервера. Расхождение хотя бы в последней цифре сборки даёт ошибку подключения.

Ограничения производительности и когда Сервер мини подходит

Сам по себе Сервер мини не «урезан» по скорости. Те же процессы работают с той же СУБД. Ограничения задают лимит сеансов и, как правило, скромное железо, на которое его ставят.

✅ Сервер мини уместен:

  • 👥 небольшой офис до 5 одновременно работающих пользователей;
  • 💾 нужен бэкап средствами СУБД по расписанию, а не копирование файла базы;
  • 🧪 тестовый или учебный стенд разработчика, где нужна отладка серверного кода в клиент-серверном режиме;
  • 🗄️ файловая база выросла и стала тормозить из-за блокировок при одновременной работе.

❌ Пора переходить на полный сервер:

  • 📈 пользователей стабильно больше пяти, и лимит мешает работе;
  • 🔄 нужны внешние подключения, веб-сервисы или обмены, которые постоянно держат сеансы;
  • 🏢 нужна отказоустойчивость или распределение нагрузки на несколько машин.

Ориентир по железу для 5 пользователей в одной типовой конфигурации: 4 ядра и 16 ГБ памяти на машине, где стоят и сервер 1С, и СУБД. Половину памяти обычно отдают СУБД. Диск — SSD: для клиент-серверной базы это важнее частоты процессора.

Проверка Сервера мини перед запуском в работу
Выполнено: 0 / 6

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

Нужно ли ставить отдельный дистрибутив для Сервера мини?
Нет. Ставится обычный сервер 1С. Режим «мини» определяется лицензией, которую получает сервер.
Можно ли держать на Сервере мини несколько баз?
Да, число баз не ограничено. Лимит в 5 сеансов общий для всех баз кластера.
Нужны ли клиентские лицензии при Сервере мини?
Да. Лицензия сервера и клиентские лицензии — разные вещи. На каждого пользователя нужна клиентская лицензия.
Можно ли перейти с Сервера мини на полный сервер без переноса баз?
Да. Базы и кластер остаются прежними, меняется только лицензия сервера. После установки новой лицензии лимит в 5 сеансов перестаёт действовать.
Почему отладка серверного кода не останавливается на точке останова?
Агент запущен без ключа -debug, или в Конфигураторе не подключены предметы отладки. Проверьте строку запуска службы и список предметов отладки.