MS SQL Server 2019 под сервер 1С:Предприятия: от выбора редакции до первой базы в кластере

· 10 мин

Содержание

Чтобы установить SQL Server 2019 для 1С, достаточно компонента «Службы ядра СУБД» (Database Engine Services), сопоставления Cyrillic_General_CI_AS, смешанного режима проверки подлинности и параметра max degree of parallelism = 1. Всё остальное — Analysis Services, Reporting Services, полнотекстовый поиск, PolyBase — платформе 1С не нужно.

Частое заблуждение: «поставлю SQL с настройками по умолчанию, а 1С сама разберётся». Не разберётся. Если оставить сопоставление по умолчанию и не ограничить память, SQL Server заберёт почти всю оперативку сервера, а сервер 1С на той же машине начнёт свопиться. Сопоставление после установки поменять можно только переустановкой или пересборкой системных баз. Поэтому ключевые решения принимаются в мастере, а не потом.

Подготовка сервера и выбор редакции SQL Server 2019

SQL Server 2019 ставится на Windows Server 2016 и новее (для теста подойдёт и Windows 10/11 x64). Перед запуском установщика проверьте три вещи.

  • 💽 Диски. Данные, журнал транзакций и TempDB лучше разнести по разным томам, в идеале на SSD. Тома под SQL форматируйте в NTFS с размером кластера 64 КБ.
  • ⚡ Схема электропитания. В Windows выберите «Высокая производительность». На «Сбалансированной» процессор сбрасывает частоту, и запросы 1С выполняются заметно медленнее.
  • 🔄 Обновления Windows. Установите их до SQL, иначе мастер может потребовать перезагрузку посреди процесса.

Платформа 1С 8.3 поддерживает SQL Server 2019, но список поддерживаемых СУБД зависит от версии платформы. Перед установкой сверьтесь с системными требованиями своей версии 1С: если платформа старая, сначала обновите её.

Какую редакцию выбрать

РедакцияОграниченияКогда подходит для 1С
Expressбаза до 10 ГБ, до 4 ядер (1 процессор), около 1,4 ГБ под буферный пултест, обучение, крошечная база на 2–3 пользователя
Standardдо 24 ядер, до 128 ГБ под буферный пулосновной выбор для небольших и средних компаний
Enterpriseбез ограничений редакциикрупные базы, сотни пользователей, сжатие и секционирование
Developerфункционально как Enterpriseтолько разработка и тесты, в рабочей среде запрещена лицензией

Express для рабочей базы — тупик. Типичная БП 3.0 с вложенными файлами и годом истории перерастает 10 ГБ быстро, и тогда SQL перестаёт принимать новые данные.

Лицензируется SQL Server отдельно от 1С: либо по ядрам, либо «сервер + клиентские лицензии (CAL)». Лицензии 1С на клиентов и на сервер 1С права на SQL Server не дают.

Установка SQL Server 2019: мастер и выбор компонентов

Запустите setup.exe с дистрибутива. В «Центре установки SQL Server» откройте раздел Установка и выберите «Новая установка изолированного экземпляра SQL Server или добавление компонентов к существующей установке».

Шаги мастера по порядку

  1. Ключ продукта. Введите ключ или выберите бесплатную редакцию (Express, Developer, Evaluation).
  2. Условия лицензии. Примите.
  3. Правила установки. Предупреждение брандмауэра здесь нормально: порт откроем позже.
  4. Выбор компонентов. Отметьте только «Службы ядра СУБД». «Репликация SQL Server» и «Полнотекстовый поиск» для 1С не нужны: полнотекстовый поиск 1С ведёт собственными индексами, а не средствами SQL.
  5. Пути установки. Программу можно оставить на системном диске. Каталоги данных зададим дальше отдельно.
  6. Настройка экземпляра. Для выделенного сервера берите «Экземпляр по умолчанию» (MSSQLSERVER). Именованный экземпляр (SRV\SQL2019) нужен, если на машине уже стоит другой SQL.

Службы Analysis Services, Reporting Services, Machine Learning Services, PolyBase не ставьте «на всякий случай». Они потребляют память и порты, а 1С их не использует.

Среда управления ставится отдельно

С версии 2016 SQL Server Management Studio (SSMS) в дистрибутив не входит. В Центре установки есть пункт «Установка средств управления SQL Server» — он ведёт на страницу загрузки SSMS. Скачайте и установите её после завершения установки движка.

Конфигурация сервера: службы и сопоставление Cyrillic_General_CI_AS

На шаге «Конфигурация сервера» две вкладки, и обе важны.

Вкладка «Учётные записи служб»

  • Для «Ядро СУБД SQL Server» оставьте учётную запись по умолчанию NT Service\MSSQLSERVER или укажите доменную служебную учётку, если базы бэкапятся в сетевую папку.
  • Тип запуска агента SQL Server поставьте «Автоматически». Без агента не будут работать планы обслуживания и резервное копирование по расписанию. В Express агента нет.
  • Отметьте флажок «Предоставить право на выполнение задач обслуживания тома службе ядра СУБД SQL Server». Это мгновенная инициализация файлов: файлы данных растут без заполнения нулями, восстановление и рост базы идут быстрее.

Вкладка «Параметры сортировки»

Нажмите «Настроить» у «Ядро СУБД» и выберите Cyrillic_General_CI_AS. Если Windows установлена с русской локалью, мастер обычно и так предлагает его — но проверьте.

Почему это критично: от сопоставления сервера зависит TempDB. Если база 1С создана с одним сопоставлением, а TempDB работает в другом, на временных таблицах возможны ошибки сравнения строк и неверная сортировка.

Проверить уже установленный сервер можно запросом в SSMS:

SELECT SERVERPROPERTY('Collation') AS ServerCollation;

Настройка ядра СУБД: проверка подлинности, каталоги, TempDB, память

Шаг «Настройка ядра СУБД» в SQL Server 2019 содержит шесть вкладок. Разберём те, что влияют на 1С.

Настройка сервера

Выберите «Смешанный режим (проверка подлинности SQL Server и Windows)» и задайте сложный пароль для sa. В поле «Укажите администраторов SQL Server» добавьте себя кнопкой «Добавить текущего пользователя» и группу администраторов сервера.

Смешанный режим нужен потому, что в кластере 1С удобнее всего подключаться к SQL под отдельным SQL-логином. Подключение по Windows-проверке тоже возможно, но тогда права выдаются учётной записи, под которой работает служба сервера 1С.

Каталоги данных

ЧтоПример путиЗачем отдельно
Файлы данных пользовательских базD:\SQLDataслучайное чтение, нужна скорость
Журналы транзакцийE:\SQLLogпоследовательная запись
Резервные копииF:\SQLBackupне терять бэкапы вместе с основным диском

TempDB

Мастер 2019 сам предлагает число файлов TempDB по числу ядер, но не больше 8. Оставьте так. Начальный размер каждого файла поставьте 512–1024 МБ, прирост — в мегабайтах, а не в процентах. Если есть быстрый отдельный SSD — вынесите TempDB на него: 1С активно пользуется временными таблицами.

MaxDOP

Появившаяся в версии 2019 вкладка MaxDOP: поставьте 1. Платформа 1С генерирует много коротких запросов, и параллельные планы на них чаще вредят, чем помогают — появляются ожидания CXPACKET и взаимные блокировки потоков.

Память

Выберите «Рекомендуемые» или задайте «Максимальная память сервера» вручную. Считайте так: общий объём минус память ОС минус память под процессы сервера 1С, если он стоит на этой же машине.

Пример: сервер 32 ГБ, на нём SQL и сервер 1С. Оставляем 4 ГБ системе и 8 ГБ рабочим процессам rphost. На SQL: 32 − 4 − 8 = 20 ГБ, то есть 20 480 МБ.

FILESTREAM для 1С не включайте. После этого шага мастер покажет сводку — нажмите «Установить» и дождитесь статуса «Выполнено» по всем компонентам.

Права для 1С: логин, роли и подключение из кластера

Создайте для сервера 1С отдельный логин, а не используйте sa. Так проще разобраться, кто нагружает сервер, и отозвать доступ без последствий для администрирования.

CREATE LOGIN [usr1c] WITH PASSWORD = N'Сложный_Пароль_2b!',
    CHECK_POLICY = ON, CHECK_EXPIRATION = OFF;
ALTER SERVER ROLE [dbcreator] ADD MEMBER [usr1c];

CHECK_EXPIRATION = OFF здесь принципиален. Если пароль служебного логина истечёт по политике домена, утром все базы кластера разом перестанут открываться.

Роли dbcreator достаточно, чтобы 1С создала новую базу: логин станет её владельцем и получит полные права внутри. Если база уже существует (например, восстановлена из бэкапа), выдайте логину роль db_owner в ней. Роль sysadmin проще, но открывает доступ ко всем базам сервера — выдавайте её, только если это осознанное решение.

Сетевой доступ

Если сервер 1С и SQL на разных машинах:

  1. Откройте «Диспетчер конфигурации SQL Server» → «Сетевая конфигурация SQL Server» → «Протоколы для MSSQLSERVER» и включите TCP/IP.
  2. Перезапустите службу SQL Server. Это оборвёт все текущие подключения — делайте до запуска пользователей или в технологическое окно.
  3. В брандмауэре Windows откройте входящий TCP 1433. Для именованного экземпляра порт по умолчанию динамический: либо зафиксируйте его в свойствах TCP/IP, либо откройте UDP 1434 и запустите службу SQL Server Browser.

Создание базы из консоли кластера

В консоли администрирования серверов 1С: кластер → «Информационные базы» → «Создать» → «Информационная база». Заполните поля:

  • Защищённое соединение: выключено, если нет отдельной настройки.
  • Сервер баз данных: имя сервера SQL, для именованного экземпляра — SRV\SQL2019.
  • Тип СУБД: MSSQLServer.
  • База данных: имя базы в SQL, например buh_2019.
  • Пользователь и пароль сервера БД: usr1c и его пароль.
  • Смещение дат: для MS SQL ставят 2000 — так 1С корректно хранит даты ранее 1753 года.
  • Флажок «Создать базу данных в случае её отсутствия».

Оптимизация SQL Server 2019 под нагрузку 1С

Сразу после установки сервер работает, но через месяц без обслуживания запросы 1С начнут замедляться. Ниже — минимальный набор настроек.

Проверьте параметры одним скриптом

Если на вкладках мастера что-то пропустили, задайте MaxDOP и память в SSMS:

EXEC sp_configure 'show advanced options', 1;
RECONFIGURE;
EXEC sp_configure 'max degree of parallelism', 1;
EXEC sp_configure 'max server memory (MB)', 20480;
RECONFIGURE;

Оба параметра применяются без перезапуска службы.

Модель восстановления и рост файлов

Настройте базу model — с неё копируются параметры новых баз:

  • Модель восстановления. «Полная» имеет смысл, только если вы делаете резервные копии журнала транзакций. Без них журнал растёт бесконечно и съедает диск. Нет бэкапов журнала — ставьте «Простую».
  • Автоприрост. Для данных — 256–512 МБ, для журнала — 256 МБ. Прирост в процентах на большой базе даёт скачки по несколько гигабайт с паузами.

Мгновенная инициализация, которую мы включили в мастере, ускоряет рост только файлов данных. Журнал транзакций SQL Server всегда заполняет нулями, поэтому мелкий прирост журнала важнее.

Регламентное обслуживание

В SSMS: «Управление» → «Планы обслуживания» → «Мастер планов обслуживания». Минимальный набор для базы 1С:

ЗадачаЧастотаКомментарий
Обновление статистикиежедневно, ночьюглавное, что держит скорость запросов 1С
Очистка процедурного кэшапосле обновления статистикиDBCC FREEPROCCACHE, чтобы планы перестроились по новой статистике
Реорганизация или перестроение индексовраз в неделюперестроение тяжелее, ставьте на выходные
Полная резервная копияежедневноплюс копии журнала, если модель «Полная»
Проверка целостности (DBCC CHECKDB)раз в неделювыявляет повреждения до того, как они попадут в бэкапы

Перестроение индексов на Standard идёт в автономном режиме и блокирует таблицы — не запускайте его днём, пока работают пользователи.

Проверка после установки SQL Server 2019 для 1С
Выполнено: 0 / 8

Ошибки при установке и подключении 1С к SQL Server 2019

Сначала найдите текст ошибки целиком: в окне 1С при создании базы или в журнале SQL Server (SSMS → «Управление» → «Журналы SQL Server»).

Диагностика: выберите симптом

Частые вопросы о SQL Server 2019 для 1С

Можно ли поставить SQL Server 2019 и сервер 1С на одну машину?
Да, для баз до нескольких десятков пользователей это обычная схема. Главное — ограничить память SQL, чтобы рабочим процессам 1С хватило оперативки.
Подойдёт ли бесплатная Express для рабочей базы 1С?
Только для очень маленькой базы. Лимит 10 ГБ на файл данных и около 1,4 ГБ буферного пула быстро становятся узким местом.
Какой уровень совместимости ставить базе 1С?
1С создаёт базу с уровнем совместимости сервера (150 для SQL 2019). Менять его стоит только при подтверждённых проблемах с производительностью после переезда со старой версии SQL.
Как перенести базу 1С со старого SQL Server на 2019?
Надёжнее всего выгрузить .dt из Конфигуратора и загрузить в новую базу. Восстановление бэкапа SQL тоже работает, но потом нужно проверить сопоставление базы и права логина 1С в ней.
Нужно ли устанавливать SQL Server на сервер с ролью контроллера домена?
Не рекомендуется. Microsoft не советует совмещать эти роли из-за безопасности и ограничений учётных записей служб.