Развертывание информационной базы в клиент-серверном варианте под управлением MS SQL Server — типовая задача системного администратора и разработчика 1С. Однако стандартная последовательность «создать пустую базу в SQL и загрузить выгрузку .dt через Конфигуратор» таит в себе множество подводных камней: от ошибок кодировки и прав доступа до критического замедления запросов и переполнения журналов транзакций. Разберем по шагам, как правильно развернуть и подготовить базу к промышленной эксплуатации, какие инструменты использовать и каких ошибок следует избегать.
Наиболее простой и рекомендованный разработчиками платформы путь — доверить первичное создание физической базы данных самому серверу 1С:Предприятия. В этом случае кластер автоматически применит требуемую структуру таблиц и базовые параметры. Рассмотрим порядок действий:
MS SQL Server), имя сервера баз данных, имя создаваемой базы в СУБД, а также логин и пароль администратора SQL (пользователь должен обладать правами на создание баз данных, например ролью dbcreator или sysadmin).0, если конфигурация не требует явного хранения дат ранее 1753 года. Изменить это значение после создания базы без полной перезаливки данных невозможно.В крупных корпоративных средах системные администраторы часто предпочитают создавать базу вручную в среде SQL Server Management Studio (SSMS), чтобы сразу разнести файлы данных .mdf и журнала транзакций .ldf по разным физическим дискам или задать особый шаг авторасширения. Проанализируем, как подключить такую базу к 1С без ошибок:
master и tempdb должны совпадать. Стандартное значение — Cyrillic_General_CI_AS. Несовпадение параметров сортировки приведет к ошибкам несовместимости типов при выполнении запросов с временными таблицами.db_owner для созданной базы, а также выдадим серверное разрешение VIEW SERVER STATE (необходимо серверу 1С для мониторинга блокировок и соединений).После того как пустая база инициализирована и подключена, перейдем к переносу данных. Для тестовых и небольших баз обычно используется файл выгрузки .dt. Разберем особенности этого процесса:
При загрузке .dt через меню Администрирование → Загрузить информационную базу в Конфигураторе все данные пишутся огромными транзакциями. Если в свойствах базы данных на SQL Server установлена модель восстановления Full (Полная), журнал транзакций .ldf мгновенно вырастет до гигантских размеров и может исчерпать все свободное дисковое пространство. Чтобы этого избежать, выполним оптимизацию:
Simple (Простая)..dt часто приводит к аварийному завершению работы с ошибкой нехватки памяти (Out of memory).Full и сразу же сделаем полную резервную копию базы.Важное предостережение: выгрузка .dt не является инструментом резервного копирования для высоконагруженных баз. Если выполняется перенос существующей клиент-серверной базы с одного сервера SQL на другой, правильнее использовать штатный механизм резервного копирования и восстановления СУБД (файлы .bak), что сэкономит часы времени и гарантирует целостность структуры метаданных.
Многие специалисты совершают критическую ошибку, отдавая базу пользователям сразу после загрузки .dt. В этот момент оптимизатор запросов SQL Server не имеет актуальных сведений о распределении данных, из-за чего даже простые запросы начинают зависать, провоцируя взаимоблокировки. Выясним причину и применим обязательные настройки:
USE [ИмяВашейБазы];
EXEC sp_updatestats;
WITH FULLSCAN) для ключевых таблиц регистров и документов.tempdb расположена на самом быстром дисковом накопителе, а количество файлов данных соответствует числу ядер процессора (но не более 8 для исключения конкуренции страниц распределения).Выполнение задач по обслуживанию томов (SE_MANAGE_VOLUME_NAME). Это избавит систему от зануления диска при расширении файлов данных и ускорит операции с базой.