Серверный вариант 1С: от установки службы до первой базы в кластере

· 10 мин

Содержание

Клиент-серверная 1С запускается так: на сервере ставят компонент «Сервер 1С:Предприятия», служба поднимает агент сервера и кластер, в кластер добавляют информационную базу, а пользователи подключаются к ней с клиентских машин через строку Srvr="имя_сервера";Ref="имя_базы";. СУБД (PostgreSQL или MS SQL Server) стоит рядом или на отдельной машине.

Ниже весь путь по порядку: что подготовить, как поставить сервер 1С, как создать кластер и базу, где настраиваются лицензии и порты, что делать, когда служба не стартует. Речь о платформе 8.3 с интерфейсом «Такси» и Windows Server 2016 и новее; для Linux отличия отмечены отдельно.

Что подготовить до установки

Сначала решите, как будут расположены компоненты. От этого зависит и нагрузка, и сложность обслуживания.

СхемаКогда подходитРиск
Всё на одной машине (1С + СУБД)До 10-15 пользователей, небольшие базыКонкуренция за память между СУБД и рабочими процессами
Сервер 1С и СУБД на разных машинахОт 20-30 пользователей, тяжёлые отчётыНужна быстрая сеть между ними
Несколько рабочих серверов в кластереСотни пользователей, высокая доступностьСложнее настройка и лицензирование

Цифры ориентировочные: многое зависит от конфигурации и сценариев работы. Для старта хватит двух-четырёх ядер и 16 ГБ памяти на всё про всё, диск лучше SSD.

Проверьте перед установкой:

  • 🖥️ Версия ОС: Windows Server 2016 и новее либо поддерживаемый дистрибутив Linux.
  • 🔢 Номер платформы на сервере и на клиентах: сервер должен быть не ниже клиента по первым трём группам цифр, а лучше совпадать полностью.
  • 📁 Место: отдельный диск или раздел под служебные каталоги кластера и под базы СУБД.
  • 👤 Учётная запись: под ней будет работать служба. Её права и пароль продумайте заранее.
  • 🗄️ СУБД установлена и настроена: для PostgreSQL ставят сборку, рекомендованную для 1С, для MS SQL Server — версию, поддерживаемую вашей платформой.

Файловую базу тоже можно «выложить на сервер», но это просто общая папка. Клиент-серверным режим становится только с кластером и СУБД.

Установка сервера 1С:Предприятия

Windows

В установщике платформы выберите «Выборочная установка» и отметьте «Сервер 1С:Предприятия». Если машина будет только сервером, клиентские компоненты можно не ставить, но консоль администрирования пригодится — оставьте её.

Дальше установщик спросит, как запускать сервер:

  1. Как служба Windows. Это нормальный вариант для работы.
  2. От имени пользователя USR1CV8 (создаётся установщиком) либо от своей учётной записи. Если оставить предложенную, пароль задайте сложный и сохраните.

Служба называется «Агент сервера 1С:Предприятия 8.3 (x86-64)». После установки убедитесь в оснастке служб, что она запущена и тип запуска — «Автоматически».

Linux

Ставят пакеты платформы (в формате deb или rpm, в зависимости от дистрибутива), включая серверный. Затем:

systemctl enable srv1cv8-8.3.xx.xxxx@default
systemctl start srv1cv8-8.3.xx.xxxx@default
systemctl status srv1cv8-8.3.xx.xxxx@default

Вместо 8.3.xx.xxxx подставьте номер вашей платформы. Служба работает от пользователя usr1cv8, каталог данных кластера по умолчанию находится в его домашней папке. Если нужен другой диск, задайте путь в параметрах запуска службы до первого старта.

Остановка или перезапуск службы обрывает все сеансы пользователей. Делайте это в нерабочее время и сначала предупредите людей.

Кластер серверов: что это и как создать

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

После первого запуска службы кластер по умолчанию уже создан: он слушает порт 1541, а агент сервера — 1540. Проверить и управлять им удобнее всего через консоль администрирования.

Подключение консоли

  1. Запустите «Администрирование серверов 1С:Предприятия».
  2. В дереве выберите «Центральные серверы 1С:Предприятия» и создайте новый.
  3. Укажите имя сервера и порт агента, обычно 1540.
  4. Раскройте узел: внутри появится кластер. Если его нет, создайте через пункт «Кластеры → Создать».

При создании нового кластера задают имя, порт (по умолчанию 1541), интервал перезапуска рабочих процессов и допустимый объём памяти. На старте оставьте значения по умолчанию. Тонкую настройку делают по результатам наблюдений.

Командная строка вместо консоли

Для автоматизации есть утилита администрирования rac и сервер ras. Запустите ras и посмотрите кластеры:

ras cluster --port=1545
rac localhost:1545 cluster list

Все остальные подкоманды смотрите в справке rac help. Утилиту удобно использовать в скриптах мониторинга, например для списка сеансов.

Информационные базы в кластере

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

Через консоль администрирования. В узле кластера откройте «Информационные базы» и создайте новую. Заполните:

  • имя базы: латиницей, без пробелов, его пользователи будут вводить в строке подключения;
  • тип СУБД: PostgreSQL или Microsoft SQL Server;
  • сервер баз данных и имя базы в СУБД;
  • пользователь и пароль СУБД;
  • флажок «Создать базу данных в случае её отсутствия».

Блокировку регламентных заданий и выдачу лицензий пока не трогайте.

Через стартовое окно клиента. «Добавить» → «Создание новой информационной базы» → «Без конфигурации» или из шаблона → тип расположения «На сервере 1С:Предприятия». Появятся те же поля: кластер, имя в кластере, СУБД.

Загрузка существующей базы

Если у вас есть выгрузка .dt, создайте пустую базу в кластере, откройте её в Конфигураторе и выберите «Администрирование → Загрузить информационную базу». Монопольный доступ нужен именно для загрузки, на остальные операции он не распространяется.

Загрузка затирает данные в целевой базе. Убедитесь, что вы выбрали пустую или тестовую базу, а не рабочую.

Строка подключения клиента

В списке баз клиента добавьте запись «На сервере 1С:Предприятия», укажите Кластер серверов в формате имя_сервера (если порт не стандартный, имя_сервера:порт) и Имя информационной базы. При запуске из командной строки или ярлыка:

1cv8.exe ENTERPRISE /S"srv-1c\accounting"

Здесь srv-1c — имя сервера, accounting — имя базы в кластере.

Лицензии и рабочие процессы

Откуда берутся лицензии

Серверной платформе нужна лицензия на каждого одновременно работающего пользователя. Лицензии бывают двух видов: аппаратные (ключ защиты) и программные (активируются по пин-коду и привязываются к серверу). Без лицензии платформа не запустит базу, исключение — учебная версия.

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

Посмотреть, кто занимает лицензии, можно в консоли: у кластера есть узел «Сеансы» и «Лицензии», а в командной строке пригодится такой вызов:

rac localhost:1545 session list --cluster=<идентификатор_кластера> --licenses

Идентификатор кластера покажет rac cluster list.

Рабочие процессы

Рабочий процесс (rphost) — это то, что реально выполняет запросы пользователей. Менеджер кластера (rmngr) распределяет клиентов по процессам. Настройки находятся в свойствах рабочего сервера:

  • Количество информационных баз на процесс и соединений на процесс — определяют, сколько процессов запустится. Много маленьких процессов надёжнее при сбое, но больше расходуют память.
  • Безопасный расход памяти за один вызов и максимальный объём памяти рабочих процессов — защита от вызовов, которые съедают всю оперативную память.
  • Интервал перезапуска — для стабильных систем нередко стоит раз в сутки, ночью.
  • Требования назначения функциональности — тут задают, какой сервер для чего используется, если их несколько.

Если на сервере 16 ГБ памяти и вы ограничили каждый рабочий процесс 4 ГБ, учтите, что одновременно их может быть несколько. Считайте суммарно, а не по одному, и оставляйте запас для СУБД и операционной системы.

Порты, сеть и безопасность

Клиент обращается к агенту сервера на 1540, тот перенаправляет его к менеджеру кластера на 1541, а дальше клиент работает с рабочими процессами. Диапазон портов для рабочих процессов задают в свойствах рабочего сервера; по умолчанию это 1560-1591.

Минимум для брандмауэра на сервере 1С:

ПортНазначение
1540Агент сервера
1541Менеджер кластера
1560-1591Рабочие процессы
1545Сервер администрирования ras, если он используется

Рекомендации по безопасности:

  1. Закройте порты для внешней сети. Доступ к серверу — из локальной сети или через VPN.
  2. Задайте администратора кластера с паролем: в консоли у кластера есть список администраторов. Потерянный пароль не «обнуляют» пересозданием кластера. Остановите службу, восстановите файлы кластера из резервной копии или обратитесь к администратору сервера.
  3. Не используйте для службы учётную запись доменного администратора. Достаточно отдельной учётной записи с правами на каталог данных кластера.
  4. Если нужен доступ пользователей из интернета, публикуйте веб-клиент через веб-сервер или терминальный сервер , а не открывайте порты кластера.

Если что-то не работает: диагностика

Типичные сообщения и проверки

СимптомЧто проверить
Клиент пишет, что не удалось подключиться к серверуЗапущена ли служба; доступны ли 1540 и 1541 по сети с клиентской машины
База видна, но входа нет: «Нет доступных лицензий»Свободные лицензии, не зависшие ли старые сеансы
Служба не стартует после изменения учётной записиПрава пользователя на каталог данных кластера и на каталог установки
После перезагрузки кластер пустойСлужба запущена с другим каталогом данных; сравните параметр каталога в настройках службы
Версия клиента не подходитНомер платформы клиента выше сервера: обновите сервер или поставьте клиент нужной версии

Журналы

Две базовые точки опоры:

  • Журнал регистрации базы: в Конфигураторе через «Администрирование → Журнал регистрации». Показывает действия пользователей и ошибки.
  • Технологический журнал включается файлом logcfg.xml в каталоге conf платформы. В нём описывают, какие события писать и куда. Включайте узко, под конкретную проблему: широкий сбор быстро набирает гигабайты.

Журналы службы Windows смотрите в «Просмотре событий». На Linux — journalctl -u с именем службы.

Зависшие сеансы и процессы

Если сеанс пользователя завис, его можно завершить через консоль: «Сеансы» → выбрать → удалить. Рабочий процесс завершают в узле «Рабочие процессы», но это обрывает работу всех, кто на нём сидит. Делайте это, когда другого пути нет, и по возможности ночью.

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

Резервные копии и обновление платформы на сервере

Серверная база живёт в СУБД, поэтому копировать папку с файлами, как у файловой базы, бессмысленно. Делайте копии средствами СУБД: полную по расписанию, для MS SQL Server — плюс копии журнала транзакций, если нужна точность восстановления до часа. Выгрузка .dt из Конфигуратора годится как дополнительная страховка перед обновлением конфигурации, но не как единственная копия.

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

Как обновить платформу

Новую версию ставят рядом со старой: платформы с разными номерами сосуществуют на одном сервере. Порядок такой:

  1. Установите новую платформу на сервер, не удаляя старую.
  2. Создайте и запустите службу агента новой версии на других портах либо остановите старую в согласованное окно.
  3. Для Linux включите службу с новым номером и отключите прежнюю.
  4. Обновите клиентские места до той же версии: клиент с номером ниже сервера подключиться не сможет.
  5. Через несколько дней, убедившись, что всё стабильно, удалите старую версию.

Переключение службы обрывает сеансы. Назначайте его на вечер или выходные и предупреждайте пользователей заранее.

Обновление конфигурации и обновление платформы — разные операции. Первое меняет метаданные базы, второе заменяет исполняемые файлы. Не совмещайте их в один день, если не готовы искать причину сбоя среди двух изменений.

Что настроить в СУБД сразу

Для PostgreSQL и MS SQL Server стоит сразу выставить параметры, которые влияют на скорость: объём памяти СУБД, место хранения временных данных, регулярное обслуживание индексов и статистики. Точные значения зависят от объёма базы и железа. Начните с рекомендаций производителя вашей СУБД для работы с 1С и меняйте по замерам, а не по чужим форумным советам.

Порядок первого запуска одним списком

Для тех, кто разворачивает в первый раз и хочет проверить себя:

Первый запуск сервера 1С
Выполнено: 0 / 8

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

Нужен ли сервер 1С для пяти пользователей?
Не обязательно. Для небольшой команды хватает файлового режима. Клиент-серверный вариант оправдан, когда база растёт, отчёты идут долго или файловая блокировка мешает работе.
Можно ли поставить сервер 1С и СУБД на одну машину?
Да, для небольших баз это обычная схема. Следите за памятью: ограничьте её для СУБД, чтобы рабочие процессы не остались без ресурсов.
Какой порт использует сервер 1С?
Агент сервера слушает 1540, менеджер кластера — 1541. Рабочие процессы получают порты из диапазона, который задан в свойствах рабочего сервера.
Чем отличается `ras` от `rac`?
ras — это сервер, который принимает запросы, а rac — клиент командной строки, который их отправляет. Для скриптов запускают оба.
Можно ли запустить несколько кластеров на одной машине?
Можно, если у каждого свои порты и свой каталог данных. Для большинства задач это лишнее: несколько баз спокойно живут в одном кластере.