← На главную
Внезапные зависания программы 1С:Предприятие в клиент-серверном режиме у всех пользователей одновременно — распространенная проблема при администрировании инфраструктуры. Пользователи работают 10–15 минут, после чего клиентские приложения перестают отвечать на команды, а новые сеансы зависают на этапе запуска. Разберем основные причины таких блокировок, методы корректной диагностики и пошаговый порядок восстановления работы баз данных при сбоях кластера серверов 1С и СУБД MS SQL Server.
Анализ причин зависания: фоновые задания в изолированном контуре
Одной из скрытых причин полной блокировки рабочих процессов является выполнение регламентных заданий системным пользователем DefUser. Проанализируем механизм возникновения сбоя:
- Типовые конфигурации 1С по умолчанию запускают фоновые задачи: автоматическую загрузку курсов валют, проверку обновлений, актуализацию классификаторов (БИК, адресный классификатор) и отправку телеметрии.
- Если сервер находится в изолированной корпоративной сети без прямого доступа в интернет, фоновые потоки отправляют внешние веб-запросы и пытаются разрешить DNS-имена.
- Из-за отсутствия ответа сетевые сокеты переходят в режим длительного ожидания таймаута (TCP SYN timeout). Потоки накапливаются в пуле рабочего процесса
rphost, исчерпывают системные ресурсы и вызывают каскадное зависание всех пользовательских сеансов.
Для устранения этой проблемы выполним следующие действия в пользовательском режиме 1С:
- Перейдем в раздел администрирования программы и откроем список регламентных и фоновых заданий.
- Отключим расписание для всех задач, требующих доступа к внешним сервисам (загрузка новостей, классификаторов, проверка контрагентов, интернет-поддержка).
- При необходимости переведем журнал регистрации на классический текстовый формат, если новый формат на базе SQLite вызывает избыточные блокировки дисковой подсистемы.
Восстановление списка баз в кластере 1С после очистки каталога srvinfo
При аварийных сбоях кластера серверов 1С администраторы нередко прибегают к очистке служебной папки srvinfo (каталог настроек кластера ragent). Если удалить содержимое этой папки без создания резервной копии, служба сервера 1С запустится с «чистыми» настройками, а список зарегистрированных информационных баз в консоли администрирования кластера пропадет.
Файлы данных на стороне СУБД (файлы .mdf и .ldf) при этом остаются нетронутыми. Разберем по шагам, как заново подключить существующие базы данных MS SQL к кластеру серверов 1С:
- Узнаем точные имена баз данных и параметры подключения. Список ранее подключаемых баз можно найти в файле конфигурации стартера 1С:
ibases.v8i, который располагается в каталоге профиля пользователя AppData\Roaming\1C\1CEStart. - Откроем консоль Администрирование серверов 1С:Предприятия.
- Раскроем дерево нужного кластера, перейдем в ветку Информационные базы, нажмем правой кнопкой мыши и выберем Создать > Информационная база.
- В окне параметров укажем свойства:
- Имя — имя информационной базы в кластере 1С (как пользователи видят ее при подключении).
- Тип СУБД — выберем MS SQL Server.
- Сервер баз данных — точное имя сервера или экземпляра MS SQL Server (например,
SERVERNAME\MSSQL2008 или 127.0.0.1).
- Имя базы данных — точное наименование базы в MS SQL Server.
- Пользователь СУБД и Пароль — учетные данные администратора базы (например, учетная запись
sa).
- Создать базу данных в случае ее отсутствия — флаг устанавливать НЕ нужно, чтобы 1С подключилась к существующей базе, а не перезаписала ее.
- Нажмем ОК и проверим доступность базы клиентами.
Диагностика экземпляров MS SQL Server и ошибок версионности
Если при попытке монтирования или подключения базы данных SQL Server выдает ошибку о несоответствии версии (например, база создана в более новой версии СУБД), проанализируем установленные экземпляры:
- На одном физическом сервере могут параллельно работать несколько служб MS SQL Server (например, устаревший SQL Server 2005 Express Edition от стороннего ПО и рабочий SQL Server 2008 R2 / 2012 / 2016 для 1С).
- Убедимся, что служба целевого экземпляра MS SQL запущена в оснастке
services.msc. - В среде SQL Server Management Studio при подключении укажем правильное имя инстанса через обратный слэш:
ИМЯ_СЕРВЕРА\ИМЯ_ЭКЗЕМПЛЯРА. - В случае потери параметров запуска экземпляров воспользуемся системной утилитой
SQLDIAG из каталога Binn соответствующей версии SQL Server для анализа активных служб и портов.
Оптимизация и регулярное обслуживание MS SQL Server
Остановка работы 1С часто связана с отсутствием регламентного обслуживания СУБД и переполнением журнала транзакций (файла .ldf). Выполним базовые настройки:
- Ограничение памяти СУБД: Если сервер 1С и MS SQL Server установлены на одной машине, обязательно ограничим параметр
Max Server Memory в свойствах сервера SQL. Это предотвратит вытеснение процессов сервера 1С (rphost.exe, rmngr.exe) в файл подкачки. - Настройка планов обслуживания: Создадим регулярное расписание в SQL Server Agent для:
- Резервного копирования базы данных и журнала транзакций.
- Реиндексации и дефрагментации индексов.
- Обновления статистики (
UPDATE STATISTICS).
- Усечения (Shrink) разросшихся файлов журналов транзакций.
- Настройка базы tempdb: Разделим файл данных
tempdb на несколько файлов одинакового размера (по числу ядер процессора), чтобы избежать очередей распределения пространства при проведении тяжелых документов. - Антивирусные исключения: Добавим каталоги баз данных, служебную папку
srvinfo, временные каталоги Temp, а также процессы ragent.exe, rmngr.exe, rphost.exe и sqlservr.exe в исключения сканирования антивируса.