Переход с файловой версии «1С:Предприятие» на клиент-серверный вариант работы — это важный этап в развитии информационной системы предприятия. Часто администраторы-новички сталкиваются с тем, что база данных в формате SQL начинает занимать в десятки раз больше места, чем файл .1CD. Рассмотрим подробнее, почему так происходит, и разберем по шагам, как правильно настроить серверную базу для стабильной и быстрой работы.
Первое, что бросается в глаза после миграции — это резкое увеличение дискового пространства, занимаемого базой. Выясним причину этого явления. В MS SQL Server база состоит как минимум из двух файлов: файла данных (.MDF) и файла журнала транзакций (.LDF). Если сама база данных (данные таблиц) может занимать объем, близкий к выгрузке .dt, то журнал транзакций имеет свойство бесконтрольно расти.
Проанализируем ситуацию с моделью восстановления (Recovery Model). По умолчанию SQL Server часто создает базы в режиме Full (Полная модель). В этом режиме каждое изменение в базе записывается в лог и хранится там до тех пор, пока не будет сделан бэкап именно журнала транзакций. Если вы делаете только полный бэкап всей базы, лог не очищается и раздувается до десятков гигабайт.
Решение для уменьшения размера:
Для выполнения этих действий в SQL Server Management Studio (SSMS) выполним следующие команды (или воспользуемся графическим интерфейсом):
USE [Имя_Вашей_Базы];
ALTER DATABASE [Имя_Вашей_Базы] SET RECOVERY SIMPLE;
DBCC SHRINKDATABASE ([Имя_Вашей_Базы]);
Рассмотрим важный нюанс взаимодействия SQL Server и сервера приложений 1С. По умолчанию SQL Server стремится захватить всю доступную оперативную память на сервере. Если сервер 1С (процессы rphost) запущен на той же машине, это неизбежно приведет к конфликту ресурсов и тормозам системы.
Что нужно сделать:
Зайдем в свойства сервера SQL в SSMS, перейдем на вкладку Memory (Память) и ограничим параметр Maximum server memory. Рекомендуется оставить операционной системе и процессам 1С не менее 4–8 Гб памяти (в зависимости от общего объема ОЗУ). Например, если на сервере 32 Гб, установите предел для SQL на уровне 20–24 Гб.
Выясним причину возможных блокировок при работе пользователей. 1С:Предприятие генерирует специфические запросы, которые SQL Server может пытаться выполнять параллельно на всех ядрах процессора. Это часто вызывает «взаимные блокировки» (deadlocks).
Разберем рекомендацию: в свойствах сервера SQL на вкладке Advanced найдем параметр Max Degree of Parallelism (MAXDOP). Для баз 1С крайне рекомендуется установить его значение в 1. Это заставит SQL Server выполнять каждый отдельный запрос в рамках одного потока, что значительно стабильнее для логики 1С.
Просто установить SQL Server недостаточно — за базой нужно ухаживать. Посмотрим на список обязательных ежедневных и еженедельных операций, которые должны входить в ваш План обслуживания (Maintenance Plan):
.dt, так как позволяет восстановить базу гораздо быстрее.Пример настройки обновления статистики через SQL запрос:
USE [Имя_Вашей_Базы];
EXEC sp_updatestats;
Проанализируем вопрос автора о tempdb. Это системная база, где 1С хранит временные таблицы. От её быстродействия напрямую зависит скорость работы сложных отчетов.
Основные правила для TempDB:
tempdb на несколько файлов. Рекомендуется создавать количество файлов, равное количеству ядер процессора, но не более 8.tempdb. Это обеспечит равномерную нагрузку на дисковую подсистему.tempdb на самый быстрый доступный диск (SSD).Администрирование серверной 1С включает в себя и настройку самого кластера. Рассмотрим возможности консоли администрирования 1С:
Автоматический перезапуск процессов: Процессы rphost могут накапливать ошибки или утечки памяти. В настройках кластера (свойства рабочего сервера) установите «Интервал перезапуска» — например, 86400 секунд (раз в сутки). Система будет сама мягко завершать старые процессы и запускать новые, не прерывая работу пользователей.
Мгновенная инициализация файлов: Чтобы база и логи росли мгновенно, не тратя время на заполнение диска нулями, включите в Windows политику «Выполнение задач по обслуживанию томов» (Perform volume maintenance tasks) для учетной записи, под которой запущен SQL Server. Это значительно ускорит операции восстановления базы из копий.
Таким образом, переход на серверную версию — это не только перенос данных, но и настройка окружения. Следуя этим простым шагам по настройке модели восстановления, лимитов памяти и планов обслуживания, вы обеспечите стабильную работу системы даже без выделенного администратора баз данных.