Установка и настройка MS SQL Server под клиент-серверную базу 1С

· 10 мин

Содержание

Для клиент-серверной базы 1С нужны две вещи: сервер 1С:Предприятия (службы ragent и rphost) и СУБД. Самая распространённая связка в Windows — Microsoft SQL Server. Установить SQL Server для 1С несложно: сам мастер установки ставится за полчаса. Основная работа начинается после него, когда сервер нужно настроить под нагрузку 1С.

Выбор простой. Файловая база подходит, пока в ней работает до 5–10 человек и база не разрослась до десятков гигабайт. Дальше — клиент-серверный вариант: SQL Server, либо PostgreSQL (его 1С тоже поддерживает). Ниже — установка именно SQL Server, от выбора версии до первого резервного копирования.

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

Версия СУБД должна быть в списке поддерживаемых вашей версией платформы. Список лежит в документации к платформе и обновляется с каждым релизом. Перед установкой откройте его для своего номера платформы: новую СУБД, вышедшую после релиза платформы, можно поставить зря.

Практичное правило: берите версию, которую платформа уже поддерживает и которая ещё получает обновления безопасности от Microsoft. Для новых внедрений это обычно SQL Server 2019 или 2022. Версии 2012 и 2014 уже не обновляются — на новом сервере их ставить не стоит.

Редакции отличаются возможностями и лимитами:

РедакцияДля чегоОграничения
Expressтесты, обучение, очень маленькие базыразмер одной базы ограничен 10 ГБ, используется малая часть памяти и один процессорный сокет
Standardосновной вариант для большинства организацийлимит по памяти и ядрам (для типовых баз его хватает)
Enterpriseкрупные базы, высокая нагрузкадорогая лицензия, нужна не всем
Developerразработка и тестированиепо условиям лицензии нельзя использовать в производстве

Express для рабочей базы бухгалтерии — ловушка. В лимит в 10 ГБ вы упрётесь не сразу, зато от нехватки памяти сервер начнёт задыхаться почти сразу. Для боевой базы берите Standard.

Требования к серверу и подготовка железа

Кроме процессора и памяти, на скорость 1С влияет дисковая подсистема. Это самое частое «узкое горлышко».

Ориентиры для базы на 10–30 пользователей (ориентировочно):

  • 🧠 Память: от 16 ГБ на сервере СУБД. Если SQL Server и сервер 1С стоят на одной машине, закладывайте 32 ГБ и больше.
  • ⚙️ Процессор: 4–8 ядер с высокой частотой. 1С чувствительна к частоте ядра, а не только к их числу.
  • 💾 Диски: SSD или NVMe. Файлы данных, журнал транзакций, tempdb и резервные копии лучше держать на разных томах.
  • 🪟 ОС: актуальная серверная Windows Server, поддерживаемая вашей версией SQL Server.

Что сделать до запуска установщика:

  1. Отформатируйте тома для данных и журнала с размером кластера 64 КБ. Стандартные 4 КБ работают заметно медленнее.
  2. Задайте серверу статический IP-адрес и понятное имя. Менять имя после установки СУБД неприятно.
  3. Установите последние обновления Windows и перезагрузите машину.
  4. Выделите отдельную учётную запись под службу SQL Server, если она не будет работать под виртуальной учёткой.
  5. Добавьте каталоги данных SQL Server в исключения антивируса. Сканирование .mdf и .ldf на лету сильно тормозит базу.

Пошаговая установка SQL Server

Запустите setup.exe от имени администратора. Дальше идём по мастеру.

Выбор компонентов

  1. В центре установки выберите «Новая установка изолированного экземпляра SQL Server».
  2. Введите ключ продукта или выберите бесплатную редакцию (Developer или Express).
  3. Примите лицензионное соглашение, дождитесь проверки правил.
  4. На шаге выбора компонентов отметьте только «Службы ядра СУБД». Службы Analysis Services, Reporting Services и Integration Services для 1С не нужны.
  5. Если будете запускать обслуживание по расписанию, отдельно поставьте SQL Server Management Studio (SSMS). С некоторых версий он скачивается отдельно от основного дистрибутива.

Экземпляр и параметры сортировки

  1. Выберите именованный или экземпляр по умолчанию. Для выделенного сервера под 1С подходит экземпляр по умолчанию: подключаться к нему проще.
  2. Режим проверки подлинности: смешанный (Windows и SQL Server). Кластеру 1С нужен логин SQL, поэтому задайте пароль учётной записи sa и сохраните его в менеджере паролей.
  3. На вкладке «Параметры сортировки» оставьте Cyrillic_General_CI_AS (регистронезависимая, с учётом акцента) или другой регистронезависимый вариант. Регистрозависимые сортировки (CS) для 1С не подходят.

Сортировку экземпляра потом сложно поменять, а вот сортировку базы 1С задаёт при создании. Тем не менее на сервере, выделенном под 1С, лучше сразу ставить кириллическую, чтобы не возиться с несовпадением tempdb и базы.

Каталоги и дополнительные параметры

  1. На вкладке «Каталоги данных» разнесите по разным дискам: файлы данных, журнал, tempdb, резервные копии.
  2. Для tempdb создайте несколько файлов данных одинакового размера. Обычно берут по числу ядер, но не больше восьми.
  3. Включите «Предоставить право на выполнение задач обслуживания тома службе ядра СУБД» (мгновенная инициализация файлов). Новые файлы и их рост будут создаваться быстрее.
  4. Завершите установку, перезагрузите сервер, если мастер попросит.

Проверьте результат: в службах Windows должна работать служба SQL Server (MSSQLSERVER), а SSMS должен подключаться к localhost под sa.

Настройка SQL Server под работу с 1С

После установки сервер по умолчанию «жадный»: он занимает всю доступную память. Нужно ограничить его и поправить пару параметров.

Память

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

  • Если на машине только SQL Server, оставьте ОС 2–4 ГБ. На сервере с 32 ГБ ставьте около 28 ГБ.
  • Если рядом работает кластер 1С, делите память между ними. Сервер 1С при больших базах тоже расходует её много.

Или командой:

EXEC sp_configure 'show advanced options', 1;
RECONFIGURE;
EXEC sp_configure 'max server memory (MB)', 28672;
RECONFIGURE;

Параллелизм

Параметр max degree of parallelism (MAXDOP) для 1С обычно выставляют в 1. Запросы 1С короткие, а параллельные планы дают больше накладных расходов, чем пользы. Некоторые администраторы оставляют его по умолчанию и ставят cost threshold for parallelism повыше. Проверяйте на своей нагрузке, а не на чужих советах.

EXEC sp_configure 'max degree of parallelism', 1;
RECONFIGURE;

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

Для рабочей базы выбор такой:

  • Полная (Full) — можно восстановиться на любой момент, но журнал нужно регулярно сохранять, иначе он растёт без конца.
  • Простая (Simple) — журнал сам освобождается, но откат возможен только на момент полного или разностного бэкапа.

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

Создание базы данных для 1С

Базу в SQL Server можно создать вручную, но проще поручить это серверу 1С — он сам выставит нужные параметры.

Через консоль администрирования серверов 1С:Предприятия:

  1. Откройте нужный кластер → «Информационные базы» → правой кнопкой → «Создать» → «Информационная база».
  2. Заполните имя базы (по нему она появится в списке запуска).
  3. «Сервер баз данных» — имя или адрес машины с SQL Server.
  4. «Тип СУБД» — MS SQL Server.
  5. «Имя базы данных» — как будет называться база в SQL (например, buh_prod).
  6. «Пользователь сервера баз данных» и пароль — логин SQL с правами создания базы. На первом запуске подойдёт sa, потом лучше завести отдельного пользователя.
  7. «Смещение дат» — 2000.
  8. Включите флажок «Создать базу данных в случае её отсутствия».
  9. Нажмите «ОК».

Пользователь, под которым 1С работает с СУБД, должен иметь роль владельца базы (db_owner), а при создании базы — роль dbcreator.

Не работайте в боевой базе под sa. Заведите отдельный логин, дайте ему права только на нужную базу, пароль храните отдельно.

Подключение 1С к SQL Server и загрузка данных

Сама база пока пустая. Чтобы появилась рабочая конфигурация, есть два пути:

  1. Создать из шаблона. В окне запуска 1С выберите «Добавить» → «Создание новой информационной базы» → шаблон конфигурации, укажите тип «На сервере 1С:Предприятия». Мастер сам попросит параметры кластера и СУБД.
  2. Перенести существующую. Выгрузите файловую базу в .dt через Конфигуратор («Администрирование» → «Выгрузить информационную базу»), затем загрузите её в новую клиент-серверную базу командой «Загрузить информационную базу». Для загрузки нужен монопольный доступ к базе.

Если вы соединяете клиент с кластером, в строке подключения будет вид Srvr="server1c";Ref="buh_prod";. Имя сервера — машина с кластером 1С, а не обязательно с SQL Server.

Если подключение не проходит, проверьте по порядку:

  • работает ли служба сервера 1С;
  • открыты ли порты на брандмауэре (порты кластера 1540–1541 и диапазон рабочих процессов 1560–1591 по умолчанию, порт SQL Server 1433);
  • включён ли в SQL Server протокол TCP/IP (Диспетчер конфигурации SQL Server → «Сетевая конфигурация»);
  • принимает ли сервер SQL-вход (смешанный режим).
Диагностика: выберите симптом

Оптимизация SQL Server для 1С

Первую настройку мы сделали (память, MAXDOP). Дальше — обслуживание, без которого база через месяц-другой начнёт медленнее работать.

Обновление статистики и индексы

1С строит запросы так, что актуальность статистики критична. План обслуживания должен включать:

  • обновление статистики — раз в сутки, лучше ночью;
  • реорганизацию или перестроение индексов — раз в неделю;
  • проверку целостности (DBCC CHECKDB) — раз в неделю.

План можно создать в SSMS («Управление» → «Планы обслуживания»). Многие администраторы вместо этого ставят готовые скрипты обслуживания, они гибче: перестраивают только сильно фрагментированные индексы.

Журнал и tempdb

  • Заранее задайте размер файла журнала и шаг роста в мегабайтах, а не в процентах. Автоприрост на 1 МБ превращает рабочий день в сплошные ожидания.
  • Следите за свободным местом под tempdb: тяжёлые отчёты 1С создают временные таблицы.
  • Регулярно сжимать файлы данных не нужно. Это фрагментирует индексы и не даёт эффекта.

Регламентные операции в самой 1С

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

Что проверить после установки
Выполнено: 0 / 5

Резервное копирование и восстановление

Бэкап через 1С (выгрузка в .dt) — это дополнение, а не замена. Основная защита — резервные копии на уровне SQL Server.

Минимальная схема:

  • Полный бэкап — раз в сутки, ночью.
  • Разностный бэкап — несколько раз в день (если база большая).
  • Бэкап журнала — каждые 15–60 минут при полной модели восстановления.

Пример полного бэкапа:

BACKUP DATABASE [buh_prod]
TO DISK = N'E:\backup\buh_prod_full.bak'
WITH COMPRESSION, CHECKSUM, STATS = 10;

Бэкап журнала:

BACKUP LOG [buh_prod]
TO DISK = N'E:\backup\buh_prod_log.trn'
WITH COMPRESSION, CHECKSUM;

Восстановление на другую базу, например для теста:

RESTORE DATABASE [buh_test]
FROM DISK = N'E:\backup\buh_prod_full.bak'
WITH MOVE 'buh_prod' TO 'D:\data\buh_test.mdf',
     MOVE 'buh_prod_log' TO 'L:\log\buh_test.ldf',
     STATS = 10;

Логические имена файлов (buh_prod, buh_prod_log) в вашей базе могут отличаться. Посмотрите их командой RESTORE FILELISTONLY FROM DISK = '…'.

Копия, которую ни разу не восстанавливали, не считается копией. Раз в квартал разворачивайте бэкап на тестовом сервере и открывайте базу.

Храните копии не только на том же сервере. Минимум — отдельный диск или сетевая папка, лучше ещё и внешнее хранилище.

Если установка не заводится: альтернативы и частые ловушки

Проблемы чаще всего повторяются:

  • установщик останавливается на проверке правил из-за ожидающей перезагрузки Windows — перезагрузитесь и запустите заново;
  • нехватка прав на каталог данных — служба SQL Server не может создать файлы;
  • на диске с размером кластера 4 КБ база работает, но заметно медленнее;
  • сервер 1С и SQL Server стоят на одной машине, и память делится не по плану — один из них «съедает» другого.

Если SQL Server по какой-то причине не подходит (лицензия, стоимость, Linux-инфраструктура), у 1С есть другие варианты: PostgreSQL на Windows или Linux, либо файловая база для небольших нагрузок. Для перехода между СУБД используется выгрузка и загрузка .dt.

Частые вопросы

Можно ли использовать SQL Server Express для 1С?
Только для тестов и очень небольших баз. Размер базы ограничен 10 ГБ, а лимиты по памяти и процессору быстро упрутся в производительность.
Нужно ли ставить SQL Server на одну машину с сервером 1С?
Для небольших баз можно. Для нагрузки от 20–30 пользователей их разносят на разные серверы: так проще управлять памятью и искать «узкие места».
Какую сортировку выбрать при установке?
Регистронезависимую кириллическую, например Cyrillic_General_CI_AS. Регистрозависимые варианты не подходят.
Что делать, если журнал транзакций вырос на сотни гигабайт?
При полной модели восстановления журнал освобождается только после его бэкапа. Настройте регулярные бэкапы журнала и проверьте, нет ли зависшей длинной транзакции.
Как перенести базу на другой SQL Server?
Сделайте полный бэкап, восстановите его на новом сервере, затем в консоли кластера создайте информационную базу, указав новый сервер СУБД и существующую базу, без флажка создания.