Как правильно установить, настроить и оптимизировать MS SQL Server 2014 и 1С:Предприятие 8.3 в клиент-серверном режиме?

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

Развертывание клиент-серверного варианта работы «1С:Предприятия 8.3» на базе СУБД Microsoft SQL Server 2014 требует комплексного подхода, включающего не только базовую инсталляцию компонентов, но и глубокую оптимизацию параметров операционной системы, экземпляра СУБД и кластера 1С. Разберем по шагам весь процесс подготовки сервера, настройки критических параметров СУБД и обеспечения стабильной работы платформы.

1. Подготовка и оптимизация операционной системы Windows Server

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

  1. Настройка схемы электропитания: В панели управления Windows Server обязательно выберем схему «Высокая производительность» (High Performance). Стандартная «Сбалансированная» схема динамически снижает частоту процессора при кратковременных простоях, что приводит к микрофризам при выполнении коротких OLTP-запросов 1С.
  2. Мгновенная инициализация файлов (Instant File Initialization): Предоставим учетной записи службы SQL Server право локальной политики безопасности Выполнение задач по обслуживанию томов (SE_MANAGE_VOLUME_NAME). Это позволит СУБД мгновенно выделять дисковое пространство под растущие файлы данных (.mdf) без предварительного заполнения нулями.
  3. Блокировка страниц в памяти (Lock Pages in Memory): Предоставим учетной записи службы SQL Server право Блокировка страниц в памяти (SE_LOCK_MEMORY_NAME). Это защитит рабочий пул оперативной памяти СУБД от принудительного сброса в файл подкачки (pagefile) при пиковых системных нагрузках.
  4. Сетевые параметры виртуализации: Если сервер развернут в виртуальной среде (Hyper-V, VMware), в свойствах сетевого адаптера рекомендуется отключить аппаратные разгрузки Large Send Offload (LSO) и TCP Chimney Offload для исключения обрывов соединений между 1С и SQL.

2. Настройка ключевых параметров экземпляра MS SQL Server 2014

Для корректной и быстрой работы запросов платформы «1С:Предприятие» стандартных параметров SQL Server недостаточно. Выполним тонкую настройку экземпляра:

  1. Параметры сортировки (Collation): При установке экземпляра или создании баз данных критически важно использовать регистронезависимый порядок сортировки Cyrillic_General_1CI_AS (или Cyrillic_General_CI_AS). Кодовая страница системной базы tempdb и пользовательских баз должна строго совпадать, иначе при работе со временными таблицами 1С будут возникать ошибки несовместимости коллаций.
  2. Управление памятью: В свойствах сервера зададим явное ограничение Maximum server memory. Оставим операционной системе и процессам кластера 1С (ragent, rmngr, rphost) от 4 до 8 ГБ памяти, а остальной объем выделим под нужды SQL Server, чтобы исключить дефицит ресурсов.
  3. Параллелизм (MAXDOP и Cost Threshold): Запросы 1С оптимизированы для последовательной обработки. Установим параметр Max Degree of Parallelism (максимальная степень параллелизма) равным 1 (для исключения параллельных планов на уровне мелких запросов) либо установим значение, равное количеству физических ядер одного сокета, одновременно подняв Cost Threshold for Parallelism (стоимостной порог параллелизма) со стандартного значения 5 до 35–50.
  4. Оптимизация под нерегламентированную нагрузку: Включим параметр optimize for ad hoc workloads. Это снизит фрагментацию процедурного кэша СУБД за счет сохранения коротких заглушек планов при первом выполнении динамических запросов, типичных для платформы 1С.
  5. Флаги трассировки для запуска службы: В диспетчере конфигурации SQL Server (SQL Server Configuration Manager) в параметрах запуска службы добавим флаги:
    • -T1118 — принудительно отключает выделение смешанных экстентов (Mixed Extents), устраняя конкуренцию за служебные страницы SGAM в tempdb.
    • -T4199 — активирует комплекс исправлений и внутренних оптимизаций оптимизатора запросов.
    • -T9481 — возвращает старый алгоритм оценки кардинальности (Cardinality Estimator). В SQL Server 2014 новый алгоритм часто строит неоптимальные планы для сложных запросов 1С со временными таблицами. Альтернативно можно задать уровень совместимости базы (Compatibility Level) в значение 110 (уровень SQL 2012).
  6. Конфигурация TempDB: Файлы системной базы tempdb разместим на самом быстром дисковом накопителе (NVMe/SSD). Количество файлов данных tempdb сделаем равным количеству физических ядер CPU (но не более 8), задав им одинаковый начальный размер и фиксированный шаг автоувеличения.

3. Установка и настройка кластера «1С:Предприятие 8.3»

Рассмотрим порядок развертывания серверной части платформы 1С и её взаимодействия с базой данных:

  1. Установка службы: Установим компоненты сервера «1С:Предприятия» от имени выделенной непривилегированной доменной или локальной учетной записи (например, USR1CV8).
  2. Сетевые порты и Брандмауэр: Для нормальной работы клиентских подключений и консоли администрирования добавим входящие правила в Windows Firewall для основных диапазонов портов:
    • 1540 — главный процесс агента кластера (ragent);
    • 1541 — менеджер кластера (rmngr);
    • 1560-1591 — пул рабочих процессов (rphost).
    • 1433 — порт по умолчанию для подключений к MS SQL Server.
  3. Сетевое взаимодействие: Если сервер 1С и MS SQL Server установлены на одном физическом сервере (совмещенный режим), при добавлении информационной базы в качестве имени сервера баз данных укажем localhost или (local). Это позволит операционной системе автоматически использовать высокоскоростной протокол Shared Memory вместо сетевого стека TCP/IP.
  4. Отказоустойчивость и утечки памяти: В консоли администрирования серверов 1С настроим параметры кластера:
    • Зададим Допустимый объем памяти рабочих процессов и Интервал превышения допустимого объема памяти. Это обеспечит автоматический и прозрачный для пользователей перезапуск процессов rphost в случае накопления фрагментации памяти.
    • Установим ограничение Количество ИБ на процесс, чтобы изолировать информационные базы друг от друга и избежать падения всего кластера при сбое в рамках одной базы.

4. Регламентное обслуживание базы данных

Для предотвращения деградации производительности в среде MS SQL Server необходимо создать регулярные планы обслуживания (Maintenance Plans) или настроить скрипты со следующими обязательными регламентными задачами:

  1. Управление журналом транзакций: Для продуктивных баз используем модель восстановления Full с регулярным резервным копированием журнала транзакций каждые 15–30 минут, что предотвратит бесконтрольное разрастание файла .ldf. Для тестовых баз переключим модель восстановления в Simple.
  2. Обновление статистики: Настроим ежедневное обновление статистик со сканированием всех строк (WITH FULLSCAN) перед началом рабочего дня, так как устаревшая статистика является главной причиной выбора неэффективных планов выполнения запросов.
  3. Реиндексация и дефрагментация: В нерабочее время запланируем реорганизацию индексов (при фрагментации от 10% до 30%) и полную перестройку индексов (Rebuild Index при фрагментации выше 30%).
  4. Очистка процедурного кэша: Периодически выполняем сброс устаревших скомпилированных планов с помощью команды DBCC FREEPROCCACHE после масштабных обновлений конфигурации или реиндексации.
  5. Оптимизация журнала регистрации 1С: Переведем журнал регистрации на новый формат хранения (.lgd на базе SQLite) и настроим периодическое сокращение старых событий через конфигуратор или обработку администрирования.
← На главную