Ситуация, когда на сервере внезапно прекращают работу сразу все критически важные службы — и агент сервера 1С (ragent), и MS SQL Server — является критической для любого бизнеса. Особенно тревожным симптомом является то, что службы не запускаются повторно: при попытке ручного старта процесс инициализируется, но мгновенно переходит в состояние «Остановлено». В данной статье мы подробно разберем алгоритм диагностики этой проблемы, проанализируем возможные причины (от сетевых конфликтов до вирусных атак) и рассмотрим методы восстановления работоспособности системы.
Прежде чем предпринимать какие-либо активные действия, нам необходимо выяснить первопричину сбоя. В операционной системе Windows для этого предназначены журналы событий. Разберем по шагам, куда именно следует смотреть:
C:\Program Files\Microsoft SQL Server\MSSQL[Номер_версии].MSSQLSERVER\MSSQL\Log\ERRORLOG. Откроем его любым текстовым редактором и проанализируем последние записи перед остановкой.ragent успевает создать запись, стоит заглянуть в папку srvinfo, где хранятся логи кластера.Рассмотрим ситуацию, описанную в практике решения подобных инцидентов. Часто причиной невозможности запуска SQL-сервера и связанных с ним служб является конфликт протоколов. В современных версиях Windows Server протокол IPv6 включен по умолчанию, но его некорректная настройка или конфликты в DNS могут блокировать «привязку» (binding) сетевых портов SQL-сервера.
Проанализируем решение: если SQL Server пытается прослушивать все IP-адреса, но сталкивается с ошибкой инициализации IPv6-интерфейса, он может аварийно завершить работу. Выясним, помогает ли отключение IPv6 в свойствах сетевого адаптера или через реестр. Как показывает опыт, после отключения IPv6 служба SQL Server часто начинает стартовать стабильно, так как переходит на использование только проверенного IPv4.
Разберем ситуацию, когда службы запускаются от имени доменного или локального пользователя. Проверим следующие моменты:
USR1CV8 или учетной записи SQL-сервера истек срок действия пароля, службы не смогут пройти аутентификацию при запуске.Если SQL-сервер удалось запустить, а агент сервера 1С по-прежнему отказывается работать, проанализируем состояние файлов настроек кластера. Все настройки кластера (список баз, администраторов и т.д.) хранятся в файлах с расширением .lst.
Посмотрим на типичное местоположение этих файлов:
C:\Program Files\1cv8\srvinfo\reg_1541\1CV8Reg.lst
Если в момент сбоя (например, при резком отключении питания или переполнении диска) файл 1CV8Reg.lst был перезаписан некорректно и стал иметь нулевой размер или «битую» структуру, ragent не сможет его прочитать и остановится. В этом случае мы рекомендуем:
srvinfo.1CV8Reg.lst и запустить службу. Если служба стартует (с пустым списком баз), значит проблема в повреждении файла.Это самый жуткий сценарий. Современные шифровальщики специально нацелены на базы данных. Они останавливают службы SQL и 1С, чтобы снять блокировку с файлов баз данных (.mdf, .ldf, .1CD) и зашифровать их.
Проанализируем ситуацию: если в папках с базами появились файлы с расширениями типа .crypted, .locked или текстовые файлы с требованием выкупа, значит сервер скомпрометирован. В этом случае запуск служб невозможен, так как системные базы SQL (например, master или model) также повреждены. Единственным надежным решением будет полная переустановка системы и восстановление данных из чистых бэкапов, хранившихся вне этого сервера.
Выясним, достаточно ли места на системном диске и на дисках с базами данных. SQL-серверу критически необходимо место для базы tempdb. Если диск переполнен, tempdb не сможет расшириться при старте, что приведет к немедленной остановке всей службы MSSQLSERVER. Аналогично, агент 1С требует места для записи своих временных файлов и логов в папке srvinfo.
Чтобы увидеть конкретное сообщение об ошибке, которое не попадает в логи, мы можем запустить процесс агента 1С в консольном режиме. Для этого выполним следующие действия в командной строке (cmd):
cd "C:\Program Files\1cv8\8.3.XX.XXXX\bin"
ragent.exe -debug -srvc -agent
Внимательно изучим вывод консоли. Если проблема связана с портами, мы увидим сообщение Error binding socket. Если проблема в лицензировании — сообщение об отсутствии ключа защиты.
Проанализируем влияние системы защиты. Служба Sentinel LDK (или HASP) также может стать причиной сбоя. Если агент 1С при старте не может инициализировать связь с драйвером защиты, он может прекратить работу. Рассмотрим возможность обновления драйверов защиты или проверки физического наличия USB-ключа в сервере (если используется аппаратная защита). Также стоит проверить, не заблокированы ли порты 1947 (HASP) антивирусом или брандмауэром.
Подводя итог, можно сказать, что одновременная остановка 1С и SQL чаще всего связана либо с инфраструктурными изменениями (сеть, права, обновления Windows), либо с внешним деструктивным воздействием (вирусы). Рекомендуем придерживаться следующего плана действий:
srvinfo.ragent.exe и sqlservr.exe.Если после выполнения всех инструкций службы не запускаются, а логи не дают ясного ответа, наиболее эффективным (хоть и трудозатратным) методом может стать переустановка компонентов сервера 1С и SQL, как это было сделано в рассмотренном нами примере из практики.