Сервер 1С:Предприятия не отвечает: возвращаем кластер в рабочее состояние

· 9 мин

Содержание

Чтобы восстановить кластер серверов 1С, сначала выясните, что именно сломалось: служба агента не стартует, кластер пропал из консоли, не видны информационные базы или сеансы зависли. Дальше действуют по нарастающей: перезапуск службы → очистка кэша сервера (папки snccntx*) → возврат реестра кластера reg_1541 из резервной копии → перерегистрация службы и рабочих серверов. Пересоздание кластера с нуля — последний шаг, когда реестр потерян, а копии нет.

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

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

Идите от простого к сложному: служба → порты → консоль → журналы.

Служба агента сервера

Откройте services.msc и найдите службу «Агент сервера 1С:Предприятия 8.3». Проверьте три вещи:

  • ✅ состояние — «Выполняется»;
  • ✅ учётная запись — обычно USR1CV8 или доменная служебная;
  • ✅ строка запуска в свойствах службы, поле «Исполняемый файл».

Типичная строка запуска выглядит так:

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

Из неё берите две вещи: номер платформы в пути к ragent.exe и каталог реестра после ключа -d. Если после обновления платформы старая версия удалена, а служба по-прежнему ссылается на её папку, служба просто не запустится.

На Linux имя службы зависит от сборки и способа установки (ищите по systemctl list-units | grep 1cv8). Каталог реестра по умолчанию — /home/usr1cv8/.1cv8/1C/1cv8.

Порты и сеть

Клиент сначала обращается к агенту (порт 1540), затем к менеджеру кластера (1541) и рабочим процессам из диапазона 1560–1591. Проверьте, что порты слушаются:

netstat -ano | findstr "1540 1541"

Если строк нет — служба не поднялась или упала сразу после старта. Если строки есть, но клиенты не подключаются — смотрите брандмауэр и разрешение имени сервера: кластер отдаёт клиентам имя компьютера, и оно должно резолвиться с рабочих мест.

Консоль и rac

Откройте «Администрирование серверов 1С Предприятия». Если консоль не открывается или пишет об ошибке компонента, перерегистрируйте radmin.dll той же версии, что и сервер (командная строка от имени администратора):

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

Альтернатива консоли — сервер администрирования ras и утилита rac. Они работают и на Linux, и удобны для скриптов:

ras cluster --port=1545 localhost:1540
rac localhost:1545 cluster list
rac localhost:1545 server list --cluster=<UUID кластера>
rac localhost:1545 infobase summary list --cluster=<UUID кластера>

Если cluster list отвечает, а список баз пуст — повреждён или подменён реестр кластера. Если не отвечает вообще — проблема в службе.

Журналы

Смотрите «Журнал Windows → Приложение», источник 1C:Enterprise 8.3 Server. При падениях рабочих процессов включите технологический журнал через файл logcfg.xml в каталоге conf платформы и фиксируйте события EXCP и PROC. Аварийные дампы rphost тоже настраиваются там.

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

Восстановление реестра кластера из резервной копии

Вся конфигурация кластера лежит в каталоге reg_1541 внутри srvinfo. Ключевые файлы:

Файл / папкаЧто хранит
1CV8Clst.lstреестр кластера: базы, параметры подключения к СУБД, рабочие серверы, администраторы кластера, параметры процессов
1CV8Reg.lstреестр агента: список кластеров и администраторы центрального сервера
snccntx*сеансовый кэш, восстанавливать из копии не нужно
папки с UUID базслужебные данные баз, в том числе индекс полнотекстового поиска

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

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

  1. Остановите службу агента сервера.
  2. Переименуйте текущий reg_1541 в reg_1541_broken — не удаляйте, он может пригодиться для разбора.
  3. Скопируйте из резервной копии папку reg_1541 целиком, без папок snccntx*.
  4. Убедитесь, что в восстановленной папке есть оба файла — 1CV8Clst.lst и 1CV8Reg.lst.
  5. Проверьте права: учётная запись службы должна иметь полный доступ к srvinfo.
  6. Запустите службу и откройте консоль. Базы должны появиться в прежнем виде.

Копия реестра должна быть от той же схемы сервера: те же имена компьютеров и порты. Если сервер переехал на другую машину, имя в реестре не совпадёт с новым, и кластер не поднимется корректно.

Если копии нет, но остался старый файл

1CV8Clst.lst — текстовый файл в скобочном формате. Даже если служба его не принимает, откройте его в блокноте: там видны имена баз, адрес сервера СУБД и имена баз данных. Этот список пригодится, если кластер придётся собирать заново.

💡 Копируйте reg_1541 по расписанию хотя бы раз в сутки. Без сеансового кэша папка обычно весит немного, а восстановление из неё занимает минуты.

Перерегистрация службы агента и рабочих серверов

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

Пересоздание службы

Командная строка от имени администратора, папка bin нужной версии:

ragent.exe -rmsrvc
ragent.exe -instsrvc -usr .\USR1CV8 -pwd ПарольСлужбы -regport 1541 -port 1540 -range 1560:1591 -d "C:\Program Files\1cv8\srvinfo"

После регистрации запустите службу в services.msc.

Ключ -d указывает на существующий каталог srvinfo, и реестр кластера сохраняется. Если указать пустую папку, служба создаст новый пустой кластер — частая причина «пропавших» баз после переустановки.

Второй путь — переустановить службу через установщик платформы, выбрав компонент сервера и установку как сервиса Windows. После этого проверьте ключ -d в строке запуска: если каталог srvinfo нестандартный, его придётся указать вручную.

Рабочие серверы в консоли

Раскройте кластер → «Рабочие серверы». Если там указано старое имя компьютера или сервер в состоянии ошибки:

  1. Создайте новый рабочий сервер: правой кнопкой «Рабочие серверы» → «Создать» → «Рабочий сервер».
  2. Укажите имя, сетевое имя компьютера, IP-порт 1540 и диапазон портов, например 1560:1591.
  3. Для основного сервера отметьте признак центрального сервера.
  4. Проверьте требования назначения функциональности, если они настраивались.
  5. Когда новый сервер появился и рабочие процессы запустились, удалите запись со старым именем.

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

Зависшие сеансы, блокировки и кэш сервера

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

Завершение сеансов

В консоли: кластер → «Информационные базы» → нужная база → «Сеансы». Выделите зависшие сеансы и завершите их через контекстное меню. Через rac:

rac localhost:1545 session list --cluster=<UUID кластера> --infobase=<UUID базы>
rac localhost:1545 session terminate --cluster=<UUID кластера> --session=<UUID сеанса>

Если кластер защищён паролем, добавьте --cluster-user= и --cluster-pwd=.

Завершение сеанса обрывает работу пользователя: несохранённый документ пропадёт. Сначала предупредите людей.

Флаги блокировки в свойствах базы

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

Очистка сеансового кэша

Если сеансы возвращаются после завершения, а при входе вылетают странные ошибки, чистят кэш сервера:

  1. Предупредите пользователей и дождитесь, пока все выйдут.
  2. Остановите службу агента.
  3. В каталоге reg_1541 удалите папки, имена которых начинаются с snccntx.
  4. Запустите службу.

Управляемые блокировки данных живут в памяти кластера, поэтому после перезапуска службы они освобождаются сами. Отдельно удалять «файлы блокировок» в клиент-серверном варианте не нужно.

После перезапуска кластера проверьте
Выполнено: 0 / 6

Пересоздание кластера с нуля: только когда другого пути нет

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

Подготовка

  • 📋 Соберите список баз: имя в кластере, сервер СУБД, имя базы данных в СУБД, тип СУБД. Источники — старый 1CV8Clst.lst, список баз на рабочих местах (ibases.v8i), сама СУБД.
  • 🔑 Узнайте логин и пароль пользователя СУБД, под которым 1С подключается к базам.
  • 📝 Запишите нестандартные настройки: лицензии на сервере, требования назначения, параметры памяти процессов.

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

  1. Остановите службу, переименуйте старый srvinfo (не удаляйте).
  2. Запустите службу с пустым каталогом — агент создаст новый кластер на порту 1541.
  3. В консоли проверьте, что кластер и рабочий сервер появились.
  4. Добавьте каждую базу: «Информационные базы» → «Создать» → «Информационная база». Укажите те же сервер СУБД и имя базы данных.
  5. Снимите флажок «Создать базу данных в случае ее отсутствия». С ним при опечатке в имени появится новая пустая база вместо подключения к существующей.
  6. Задайте администратора кластера и, при необходимости, администратора центрального сервера.
  7. Проверьте вход в каждую базу и выполнение регламентных заданий.

Имя базы в кластере должно совпадать со старым, иначе на всех рабочих местах придётся менять строку подключения Srvr="сервер";Ref="имя_базы";.

Если кластер не поднимается и после этого

  • 🔍 Проверьте, не запущен ли второй агент на тех же портах (две версии платформы как службы).
  • 🔍 Сравните версию платформы на сервере и клиентах: клиент должен быть той же версии, что и сервер.
  • 🔍 Проверьте антивирус: он может блокировать запись в srvinfo или запуск rphost.
  • 🔍 Проверьте сервер лицензий и ключ HASP, если используются аппаратные ключи.

Профилактика: как не доводить кластер до восстановления

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

Резервные копии реестра

Простой bat для планировщика заданий:

@echo off
set SRC=C:\Program Files\1cv8\srvinfo
set DST=D:\Backup\srvinfo\%date:~6,4%-%date:~3,2%-%date:~0,2%
robocopy "%SRC%" "%DST%" /E /XD snccntx* /R:1 /W:1

Скрипт копирует весь srvinfo, кроме сеансового кэша. Храните копии минимум за неделю и не на том же диске.

Настройки рабочих процессов

В свойствах кластера задайте допустимый объём памяти рабочих процессов и интервал перезапуска. Так rphost, который разросся из-за утечки, будет перезапускаться плавно, без падения у всех пользователей.

Мониторинг

Что отслеживатьКак
Служба агента работаетмониторинг служб Windows или systemd
Порты 1540/1541 отвечаютпроверка TCP-порта из системы мониторинга
Число сеансов и процессовrac session list, rac process list по расписанию
Падения rphostтехнологический журнал, события EXCP
Свободное место на диске с srvinfoстандартная метрика сервера

💡 Перед обновлением платформы сначала скопируйте srvinfo, затем поставьте новую версию и проверьте строку запуска службы. Удаляйте старую версию только после того, как новая проработала несколько дней.

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

Потеряются ли данные бухгалтерии при восстановлении кластера?
Нет. Данные баз лежат в СУБД. Кластер хранит только список баз и параметры подключения, его восстановление таблицы не затрагивает.
Можно ли скопировать reg_1541 с работающего сервера?
Можно, но надёжнее сделать копию при остановленной службе или в момент, когда в конфигурацию кластера никто не вносит изменений. Сеансовый кэш копировать не нужно.
Забыли пароль администратора кластера. Что делать?
Остановите службу и верните 1CV8Clst.lst из копии, где пароль известен. Если копии нет, обратитесь к администратору, который настраивал сервер.
Подойдёт ли реестр кластера от другой версии платформы 8.3?
Как правило, да: при переходе на новую сборку 8.3 сервер использует прежний каталог srvinfo. Обратный переход на более старую сборку лучше делать с копии, снятой до обновления.
Нужно ли пересоздавать кластер при переносе сервера на новую машину?
Не обязательно. Можно перенести srvinfo, но затем заменить в консоли рабочий сервер со старым именем компьютера на новый. Проще и чище — зарегистрировать базы в новом кластере заново.