Установка и настройка MS SQL Server под клиент-серверную базу 1С
Содержание
Для клиент-серверной базы 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.
Что сделать до запуска установщика:
- Отформатируйте тома для данных и журнала с размером кластера 64 КБ. Стандартные 4 КБ работают заметно медленнее.
- Задайте серверу статический IP-адрес и понятное имя. Менять имя после установки СУБД неприятно.
- Установите последние обновления Windows и перезагрузите машину.
- Выделите отдельную учётную запись под службу SQL Server, если она не будет работать под виртуальной учёткой.
- Добавьте каталоги данных SQL Server в исключения антивируса. Сканирование
.mdfи.ldfна лету сильно тормозит базу.
Пошаговая установка SQL Server
Запустите setup.exe от имени администратора. Дальше идём по мастеру.
Выбор компонентов
- В центре установки выберите «Новая установка изолированного экземпляра SQL Server».
- Введите ключ продукта или выберите бесплатную редакцию (Developer или Express).
- Примите лицензионное соглашение, дождитесь проверки правил.
- На шаге выбора компонентов отметьте только «Службы ядра СУБД». Службы Analysis Services, Reporting Services и Integration Services для 1С не нужны.
- Если будете запускать обслуживание по расписанию, отдельно поставьте SQL Server Management Studio (SSMS). С некоторых версий он скачивается отдельно от основного дистрибутива.
Экземпляр и параметры сортировки
- Выберите именованный или экземпляр по умолчанию. Для выделенного сервера под 1С подходит экземпляр по умолчанию: подключаться к нему проще.
- Режим проверки подлинности: смешанный (Windows и SQL Server). Кластеру 1С нужен логин SQL, поэтому задайте пароль учётной записи
saи сохраните его в менеджере паролей. - На вкладке «Параметры сортировки» оставьте
Cyrillic_General_CI_AS(регистронезависимая, с учётом акцента) или другой регистронезависимый вариант. Регистрозависимые сортировки (CS) для 1С не подходят.
Сортировку экземпляра потом сложно поменять, а вот сортировку базы 1С задаёт при создании. Тем не менее на сервере, выделенном под 1С, лучше сразу ставить кириллическую, чтобы не возиться с несовпадением tempdb и базы.
Каталоги и дополнительные параметры
- На вкладке «Каталоги данных» разнесите по разным дискам: файлы данных, журнал,
tempdb, резервные копии. - Для
tempdbсоздайте несколько файлов данных одинакового размера. Обычно берут по числу ядер, но не больше восьми. - Включите «Предоставить право на выполнение задач обслуживания тома службе ядра СУБД» (мгновенная инициализация файлов). Новые файлы и их рост будут создаваться быстрее.
- Завершите установку, перезагрузите сервер, если мастер попросит.
Проверьте результат: в службах 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С:Предприятия:
- Откройте нужный кластер → «Информационные базы» → правой кнопкой → «Создать» → «Информационная база».
- Заполните имя базы (по нему она появится в списке запуска).
- «Сервер баз данных» — имя или адрес машины с SQL Server.
- «Тип СУБД» —
MS SQL Server. - «Имя базы данных» — как будет называться база в SQL (например,
buh_prod). - «Пользователь сервера баз данных» и пароль — логин SQL с правами создания базы. На первом запуске подойдёт
sa, потом лучше завести отдельного пользователя. - «Смещение дат» —
2000. - Включите флажок «Создать базу данных в случае её отсутствия».
- Нажмите «ОК».
Пользователь, под которым 1С работает с СУБД, должен иметь роль владельца базы (db_owner), а при создании базы — роль dbcreator.
Не работайте в боевой базе под sa. Заведите отдельный логин, дайте ему права только на нужную базу, пароль храните отдельно.
Подключение 1С к SQL Server и загрузка данных
Сама база пока пустая. Чтобы появилась рабочая конфигурация, есть два пути:
- Создать из шаблона. В окне запуска 1С выберите «Добавить» → «Создание новой информационной базы» → шаблон конфигурации, укажите тип «На сервере 1С:Предприятия». Мастер сам попросит параметры кластера и СУБД.
- Перенести существующую. Выгрузите файловую базу
в
.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С
Из консоли кластера или из настроек базы отключайте лишние регламентные задания на время бэкапа и тяжёлых загрузок. Также полезно, чтобы длинные операции не выполнялись параллельно с обслуживанием индексов.
Резервное копирование и восстановление
Бэкап через 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С?
Нужно ли ставить SQL Server на одну машину с сервером 1С?
Какую сортировку выбрать при установке?
Cyrillic_General_CI_AS. Регистрозависимые варианты не подходят.