Как правильно установить и настроить связку 1С:Предприятие 8.3 и MS SQL Server 2016 на Windows Server 2019?

Системный администратор 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

Развертывание новой информационной системы на базе 1С и MS SQL Server — это задача, требующая не только понимания процесса инсталляции, но и учета множества нюансов оптимизации. Рассмотрим подробнее, в каком порядке лучше выполнять установку, как настроить серверную часть и какие параметры СУБД критичны для стабильной работы 1С:Предприятие.

Последовательность установки: имеет ли значение порядок?

Разберем основной вопрос: что ставить первым — сервер 1С или MS SQL Server? Как показывает практика и обсуждения опытных администраторов, технически порядок установки абсолютно не принципиален. Компоненты системы начинают взаимодействовать только в момент создания информационной базы через консоль администрирования или стартер 1С. Однако мы рекомендуем придерживаться следующей логической последовательности:

  1. Подготовка операционной системы: установка необходимых ролей и компонентов в Windows Server 2019.
  2. Установка MS SQL Server 2016: настройка экземпляра СУБД, подготовка дисковых подсистем.
  3. Установка платформы 1С:Предприятие: установка сервера приложений и необходимых драйверов защиты.
  4. Создание баз данных: объединение компонентов в единую систему.

Важно помнить, что в момент регистрации базы данных в консоли 1С сервер SQL Server уже должен быть запущен и доступен по сети (или через локальный протокол), иначе процесс завершится ошибкой подключения.

Архитектурные особенности: все на одном сервере или разделение?

Проанализируем ситуацию, когда и сервер 1С, и SQL Server находятся на одной физической или виртуальной машине. С одной стороны, это упрощает администрирование и позволяет использовать протокол Shared Memory для ускорения обмена данными. С другой стороны, оба процесса (rphost и sqlservr) будут неминуемо бороться за ресурсы процессора и оперативной памяти.

Если ресурсы позволяют, рассмотрите возможность разделения ролей. Выделение отдельных серверов под СУБД и сервер приложений 1С — это стандарт для высоконагруженных систем. Если же разделение невозможно, мы должны крайне жестко ограничить «аппетиты» каждой службы, чтобы они не мешали друг другу. При необходимости можно воспользоваться калькулятором для расчета аппаратных требований совмещенных и разделенных серверов.

Оптимизация MS SQL Server 2016 под задачи 1С

Выясним причину, по которой стандартные настройки SQL Server часто не подходят для 1С. 1С генерирует специфическую нагрузку с большим количеством мелких запросов и временных таблиц. Разберем по шагам ключевые настройки:

1. Ограничение памяти (Max Server Memory). Это критически важный параметр. По умолчанию SQL Server заберет всю доступную память, что приведет к вытеснению процессов 1С в файл подкачки. Вычислим оптимальный объем: оставьте ОС и процессам rphost минимум 8–16 ГБ, а остальное отдайте под SQL.

2. Настройка параллелизма (MAXDOP). Для баз 1С рекомендуется устанавливать Max Degree of Parallelism в значение 1. Это заставляет SQL выполнять один запрос в рамках одного ядра, что предотвращает избыточные блокировки на уровне движка СУБД. Если у вас очень мощный сервер, можно попробовать значение 2 или 4, но только после тщательного тестирования.

3. Параметр Cost Threshold for Parallelism. Если вы решили оставить MAXDOP отличным от 1, увеличьте порог стоимости параллелизма со стандартных 5 до 50. Это избавит систему от попыток распараллеливать простейшие запросы.

4. Настройка TempDB. Автор темы правильно отметил необходимость выноса TempDB на быстрые диски (NVMe/SSD). Создайте количество файлов данных TempDB, равное количеству логических ядер (но не более 8), и задайте им одинаковый начальный размер и шаг прироста.

Настройка операционной системы и электропитания

Посмотрим на настройки Windows Server 2019, которые часто упускаются из виду. Рассмотрим подробнее две основные манипуляции:

Использование протокола Shared Memory

Поскольку наши службы находятся на одной машине, мы можем значительно ускорить их взаимодействие. Проанализируем настройки SQL Server Configuration Manager. Убедитесь, что протокол Shared Memory включен. При добавлении базы в 1С в поле «Сервер баз данных» указывайте просто имя сервера или (local). Это позволит компонентам обмениваться данными напрямую через оперативную память, минуя сетевые протоколы TCP/IP.

Автоматизация обслуживания: Скрипты Олы Халленгрена

Ни одна установка не может считаться завершенной без настройки регламентных заданий. Разберем использование «золотого стандарта» — скриптов Олы Халленгрена. Это комплекс процедур для бэкапа, проверки целостности и, что самое важное для 1С, обслуживания индексов и статистик.

Для 1С критически важно:

  1. Обновлять статистики (Update Statistics) ежедневно, так как неактуальные данные о распределении значений в таблицах заставляют SQL выбирать неоптимальные планы запросов.
  2. Выполнять реорганизацию или перестроение индексов в зависимости от степени фрагментации.

Пример вызова процедуры для обновления статистик:


EXECUTE [dbo].[IndexOptimize]
@Databases = 'USER_DATABASES',
@FragmentationLow = NULL,
@FragmentationMedium = NULL,
@FragmentationHigh = NULL,
@UpdateStatistics = 'ALL',
@OnlyModifiedStatistics = 'Y'

Настройка сервера приложений 1С

На стороне 1С также требуются настройки. В консоли администрирования серверов 1С:Предприятие обратите внимание на параметры рабочих процессов. Для платформы 8.3 рекомендуется ограничивать объем памяти на один процесс rphost, чтобы в случае утечки памяти в одном сеансе не «падал» весь сервер. Установите параметры «Безопасный расход памяти за один вызов» и количество соединений на один процесс (оптимально 20-30), чтобы система могла балансировать нагрузку.

Таким образом, правильная установка — это лишь 30% успеха. Остальные 70% зависят от тонкой настройки взаимодействия СУБД, операционной системы и сервера приложений 1С. Для проверки эффективности параметров можно использовать инструмент для анализа настроек и нагрузки на SQL-сервер.

← На главную