Как правильно рассчитать лицензии MS SQL Server и 1С при переходе с файловой базы на клиент-серверную архитектуру?

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

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

1. Выбор схемы лицензирования MS SQL Server: «Сервер + CAL» или «По ядрам» (Per Core)

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

  1. Модель «Сервер + Клиентские лицензии (Server + CAL)»: приобретается одна лицензия на сам сервер СУБД и требуемое количество клиентских лицензий (CAL — Client Access License) на каждое рабочее место или пользователя. Для пользователей «1С:Предприятие» доступны специальные совместные продукты (MS SQL Server Runtime), распространяемые через партнерскую сеть 1С с существенной скидкой. Важно: лицензия Runtime имеет юридическое ограничение — СУБД разрешено использовать исключительно для работы баз данных 1С.
  2. Модель «По ядрам» (Per Core): лицензируются вычислительные ядра сервера. При этом клиентские лицензии CAL отдельно не требуются — количество подключающихся пользователей не ограничивается. Однако у этой модели действуют жесткие правила минимальной закупки: лицензированию подлежат минимум 4 ядра на один физический процессор (сокет). Таким образом, минимальный комплект составляет 2 двухъядерные лицензии (4 ядра), а при наличии двух процессоров — не менее 8 ядер.

Сравним экономическую целесообразность: для рабочих групп от 5 до 100 пользователей схема «Сервер + CAL» (особенно в редакции Runtime) обходится в разы дешевле, чем лицензирование по ядрам. Покупка лицензий на ядра становится выгодной только при огромном количестве одновременных подключений (от нескольких сотен до тысяч пользователей) либо при организации внешних веб-сервисов с неконтролируемым потоком обращений.

2. Эффект мультиплексирования и необходимость SQL CAL в трехзвенной архитектуре

Часто возникает вопрос: «Зачем покупать клиентские лицензии MS SQL CAL на каждого пользователя, если к базе данных подключается только сервер приложений 1С под одной технической учетной записью?»

Рассмотрим официальную позицию лицензионного соглашения Microsoft (EULA). Программное обеспечение, которое объединяет подключения, перенаправляет запросы или сокращает число прямых обращений к СУБД (серверы приложений, веб-серверы, пулы подключений), классифицируется как средство мультиплексирования. Использование мультиплексора не уменьшает количество требуемых лицензий.

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

Следует учитывать, что в дистрибутивах MS SQL Server стандартных редакций клиентские CAL-лицензии физически не активируются и в консоль управления не вводятся. Лицензирование является «бумажным» (юридическим), подтверждаемым лицензионными соглашениями и финансовыми документами при проверке.

3. Лицензирование сервера «1С:Предприятие 8»

Для запуска клиент-серверного режима необходима обязательная лицензия на сервер 1С. Выясним разницу между доступными вариантами:

  1. Лицензия на 32-разрядный сервер (x86): обладает меньшей стоимостью, однако рабочий процесс rphost ограничен 4 ГБ виртуального адресного пространства. Это может приводить к аварийным завершениям процессов из-за нехватки памяти при формировании тяжелых отчетов, групповом перепроведении документов или фоновых регламентных заданиях.
  2. Лицензия на 64-разрядный сервер (x64): обеспечивает полноценную масштабируемость, снятие ограничений на использование оперативной памяти процессами кластера и стабильную работу современных конфигураций (ERP, КА, УТ, БП 3.0).

4. Механизм раздачи клиентских лицензий 1С при работе с несколькими базами

Если пользователи одновременно открывают несколько информационных баз (например, «Бухгалтерия предприятия» и «Зарплата и управление персоналом»), необходимо грамотно настроить выдачу клиентских лицензий 1С:

  1. Локальная установка лицензий (на рабочую станцию / через HASP License Manager): клиентская лицензия привязывается к аппаратному рабочему месту. В этом случае пользователь на одном ПК может запустить неограниченное количество баз 1С и окон программы в рамках одной клиентской лицензии 1С.
  2. Выдача лицензий сервером 1С (опция «Разрешить выдачу лицензий сервером»): сервер 1С выдает лицензию на каждый отдельный сеанс. Если пользователь открывает 3 базы одновременно, кластер серверов спишет 3 клиентские лицензии. Для экономии лицензий при одновременной работе с несколькими базами рекомендуется раздавать лицензии на уровне рабочих мест и отключать выдачу лицензий сервером в свойствах информационных баз.

5. Технические рекомендации при миграции баз на SQL Server

Разберем обязательные технические шаги, которые необходимо выполнить при создании баз на MS SQL Server для исключения ошибок и деградации производительности:

  1. Параметры сортировки (Collation): при создании новой базы данных на сервере MS SQL Server обязательно задаем параметры сортировки Cyrillic_General_CI_AS (регистронезависимая сортировка с учетом диакритических знаков). Использование иных параметров приведет к ошибкам при загрузке данных из файла .dt.
  2. Обновление статистик и дефрагментация: сразу после загрузки конфигурации и данных из файла выгрузки .dt требуется выполнить регламентное задание полного обновления статистик (Update Statistics) и реиндексации. Без актуальной статистики оптимизатор запросов СУБД строит неоптимальные планы выполнения, что приводит к зависаниям типовых операций.
  3. Оптимизация системной базы TempDB: для устранения очередей ожидания на страницах распределения пространства (PAGELATCH) разделим файлы данных TempDB на несколько равных файлов (по количеству физических ядер процессора, но обычно не более 8) с одинаковым начальным размером и шагом авторасширения.

6. Бесплатные альтернативы: MS SQL Express и PostgreSQL

Если бюджет ограничен, проанализируем доступные альтернативы коммерческому MS SQL Server Standard:

  1. MS SQL Server Express: полностью бесплатная редакция, однако имеет строгие ограничения: размер одной базы не более 10 ГБ, использование до 1410 МБ ОЗУ на экземпляр и не более 4 ядер процессора. Отсутствует служба SQL Server Agent, поэтому резервное копирование и обслуживание баз настраиваются через командные скрипты и планировщик задач Windows. Подходит только для небольших баз с минимальной активностью.
  2. PostgreSQL (сборки от Postgres Professional или 1С): бесплатная СУБД с открытым исходным кодом. Для корректной работы с 1С требуется использовать только специализированные сборки с патчами для платформы «1С:Предприятие» (для правильной обработки временных таблиц, дат и нечувствительности к регистру). Требует предварительной ручной настройки параметров в конфигурационном файле postgresql.conf (параметры shared_buffers, work_mem, effective_cache_size, autovacuum).
← На главную