Сервер 1С:Предприятия не отвечает: возвращаем кластер в рабочее состояние
Содержание
Чтобы восстановить кластер серверов
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 баз | служебные данные баз, в том числе индекс полнотекстового поиска |
Порядок восстановления
Остановка службы обрывает работу всех пользователей на этом сервере. Делайте это вне рабочего времени или после предупреждения людей.
- Остановите службу агента сервера.
- Переименуйте текущий
reg_1541вreg_1541_broken— не удаляйте, он может пригодиться для разбора. - Скопируйте из резервной копии папку
reg_1541целиком, без папокsnccntx*. - Убедитесь, что в восстановленной папке есть оба файла —
1CV8Clst.lstи1CV8Reg.lst. - Проверьте права: учётная запись службы должна иметь полный доступ к
srvinfo. - Запустите службу и откройте консоль. Базы должны появиться в прежнем виде.
Копия реестра должна быть от той же схемы сервера: те же имена компьютеров и порты. Если сервер переехал на другую машину, имя в реестре не совпадёт с новым, и кластер не поднимется корректно.
Если копии нет, но остался старый файл
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 нестандартный, его придётся указать вручную.
Рабочие серверы в консоли
Раскройте кластер → «Рабочие серверы». Если там указано старое имя компьютера или сервер в состоянии ошибки:
- Создайте новый рабочий сервер: правой кнопкой «Рабочие серверы» → «Создать» → «Рабочий сервер».
- Укажите имя, сетевое имя компьютера, IP-порт 1540 и диапазон портов, например
1560:1591. - Для основного сервера отметьте признак центрального сервера.
- Проверьте требования назначения функциональности, если они настраивались.
- Когда новый сервер появился и рабочие процессы запустились, удалите запись со старым именем.
Порты рабочих процессов задаются в свойствах рабочего сервера, а не кластера. Если на двух серверах разные диапазоны, это нормально — главное, чтобы брандмауэр их пропускал.
Зависшие сеансы, блокировки и кэш сервера
Иногда кластер формально жив, но работать нельзя: висят сеансы, база не открывается, обновление пишет о наличии подключений.
Завершение сеансов
В консоли: кластер → «Информационные базы» → нужная база → «Сеансы». Выделите зависшие сеансы и завершите их через контекстное меню. Через rac:
rac localhost:1545 session list --cluster=<UUID кластера> --infobase=<UUID базы>
rac localhost:1545 session terminate --cluster=<UUID кластера> --session=<UUID сеанса>
Если кластер защищён паролем, добавьте --cluster-user= и --cluster-pwd=.
Завершение сеанса обрывает работу пользователя: несохранённый документ пропадёт. Сначала предупредите людей.
Флаги блокировки в свойствах базы
После неудачного обновления в свойствах информационной базы (двойной щелчок по базе в консоли) могут остаться включёнными «Блокировка начала сеансов включена» и «Блокировка регламентных заданий включена». Снимите эти флажки и сохраните — пользователи снова смогут войти, задания начнут выполняться.
Очистка сеансового кэша
Если сеансы возвращаются после завершения, а при входе вылетают странные ошибки, чистят кэш сервера:
- Предупредите пользователей и дождитесь, пока все выйдут.
- Остановите службу агента.
- В каталоге
reg_1541удалите папки, имена которых начинаются сsnccntx. - Запустите службу.
Управляемые блокировки данных живут в памяти кластера, поэтому после перезапуска службы они освобождаются сами. Отдельно удалять «файлы блокировок» в клиент-серверном варианте не нужно.
Пересоздание кластера с нуля: только когда другого пути нет
Это крайний вариант: реестр разрушен, копии нет, восстановить службу на старом каталоге не получилось. Данные баз в СУБД при этом не теряются, но придётся заново зарегистрировать каждую базу и перенастроить параметры.
Подготовка
- 📋 Соберите список баз: имя в кластере, сервер СУБД, имя базы данных в СУБД, тип СУБД. Источники — старый
1CV8Clst.lst, список баз на рабочих местах (ibases.v8i), сама СУБД. - 🔑 Узнайте логин и пароль пользователя СУБД, под которым 1С подключается к базам.
- 📝 Запишите нестандартные настройки: лицензии на сервере, требования назначения, параметры памяти процессов.
Порядок действий
- Остановите службу, переименуйте старый
srvinfo(не удаляйте). - Запустите службу с пустым каталогом — агент создаст новый кластер на порту 1541.
- В консоли проверьте, что кластер и рабочий сервер появились.
- Добавьте каждую базу: «Информационные базы» → «Создать» → «Информационная база». Укажите те же сервер СУБД и имя базы данных.
- Снимите флажок «Создать базу данных в случае ее отсутствия». С ним при опечатке в имени появится новая пустая база вместо подключения к существующей.
- Задайте администратора кластера и, при необходимости, администратора центрального сервера.
- Проверьте вход в каждую базу и выполнение регламентных заданий.
Имя базы в кластере должно совпадать со старым, иначе на всех рабочих местах придётся менять строку подключения 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?
srvinfo. Обратный переход на более старую сборку лучше делать с копии, снятой до обновления.Нужно ли пересоздавать кластер при переносе сервера на новую машину?
srvinfo, но затем заменить в консоли рабочий сервер со старым именем компьютера на новый. Проще и чище — зарегистрировать базы в новом кластере заново.