Что делать, если после тестирования и исправления базы 1С на SQL Server закончилось место на диске C?

Системный администратор 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

Ситуация, когда после выполнения регламентной процедуры «Тестирование и исправление» (ТиИ) системный диск внезапно оказывается переполненным, является классической проблемой при эксплуатации 1С:Предприятие в связке с MS SQL Server. Давайте вместе разберем, почему это происходит, какие механизмы задействованы в этом процессе и как нам оперативно вернуть дисковое пространство, не навредив при этом работоспособности системы.

В процессе работы мы проанализируем основные «пожиратели» места: журналы транзакций, системные базы данных SQL и временные файлы сервера приложений. Рассмотрим пошагово методику очистки и профилактики подобных инцидентов.

Причина №1: Разрастание журнала транзакций (.LDF)

Выясним причину: при запуске ТиИ, особенно если выбраны пункты «Реиндексация таблиц» или «Реструктуризация таблиц», SQL Server совершает колоссальное количество операций записи. Каждое изменение данных, каждое перестроение индекса фиксируется в файле журнала транзакций .LDF. Если база данных настроена неправильно, этот файл может вырасти в несколько раз, превысив размер самой базы данных.

Рассмотрим подробнее механизм управления этим файлом через SQL Server Management Studio (SSMS):

  1. Проанализируем модель восстановления базы данных. Нажмем правой кнопкой на базу, выберем «Свойства» (Properties), затем раздел «Параметры» (Options).
  2. Посмотрим на поле «Модель восстановления» (Recovery model). Если там стоит Full (Полная), то файл лога будет расти до тех пор, пока не будет сделан бэкап журнала транзакций.
  3. Для большинства рабочих баз 1С, где не требуется восстановление «на любой момент времени» с точностью до секунды, рекомендуется установить модель Simple (Простая). Это позволит SQL Server автоматически перезаписывать неактивные части лога.
  4. После смены модели нам необходимо физически уменьшить файл. Выполним команду Shrink. Нажмем правой кнопкой на базу -> «Задачи» (Tasks) -> «Сжать» (Shrink) -> «Файлы» (Files). В типе файла выберем «Журнал» (Log) и нажмем ОК.

Важный момент: если вы решите оставить модель Full, то единственным способом «укротить» лог будет настройка регулярного (например, каждые 15-30 минут) резервного копирования журнала транзакций.

Причина №2: Взрывной рост базы TempDB

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

Посмотрим, как решить эту проблему:

  1. Самый быстрый способ очистить tempdb — это перезапуск службы SQL Server. При каждом старте службы файлы этой базы пересоздаются с начальным размером.
  2. Разберем долгосрочное решение. По умолчанию файлы tempdb часто находятся на диске C:. Нам необходимо перенести их на другой логический диск.
  3. Для этого выполним скрипт в SSMS, заменив пути на актуальные для вашего сервера:

USE master;
GO
ALTER DATABASE tempdb 
MODIFY FILE (NAME = tempdev, FILENAME = 'D:\SQLData\tempdb.mdf');
GO
ALTER DATABASE tempdb 
MODIFY FILE (NAME = templog, FILENAME = 'D:\SQLData\templog.ldf');
GO

После выполнения этого кода и перезапуска службы SQL, файлы будут создаваться на диске D:, что обезопасит системный раздел от переполнения.

Причина №3: Журнал регистрации 1С:Предприятия

Рассмотрим еще одного скрытого потребителя места — журнал регистрации. При массовых операциях (каковыми является тестирование и исправление) 1С записывает в журнал тысячи событий. По умолчанию эти данные хранятся в папке сервера приложений 1С.

Выясним, где искать эти файлы: обычно это путь C:\Program Files\1cv8\srvinfo\reg_1541\.... Внутри папок с GUID баз находится папка 1Cv8Log.

Что мы можем сделать:

  1. Зайдем в «Конфигуратор» под пользователем с административными правами.
  2. Выберем пункт меню «Администрирование» — «Настройка журнала регистрации».
  3. Нажмем кнопку «Сократить». Мы можем выбрать дату, до которой записи будут удалены, или выгружены в отдельный архивный файл.
  4. Профессиональный совет: перенесите всю папку srvinfo (данные кластера) на другой диск. Это делается путем изменения параметров запуска службы 1C:Enterprise 8.3 Server Agent в реестре Windows (параметр -d).

Причина №4: Временные файлы и кэш

В процессе реструктуризации сервер 1С активно создает временные файлы. Рассмотрим, какие папки стоит проверить и очистить:

Причина №5: Файл подкачки (pagefile.sys)

Проанализируем работу операционной системы. Процедура ТиИ требует больших объемов оперативной памяти для сортировки данных. Если физической памяти (RAM) недостаточно, Windows начинает активно использовать файл подкачки.

Посмотрим на настройки:

  1. Зайдем в «Свойства системы» -> «Дополнительно» -> «Производительность» -> «Параметры» -> «Дополнительно» -> «Виртуальная память».
  2. Если установлен автоматический выбор объема, Windows могла динамически расширить pagefile.sys на десятки гигабайт.
  3. Мы рекомендуем задать фиксированный размер файла подкачки или перенести его с диска C: на более свободный накопитель.

Резюме и рекомендации по профилактике

Мы выяснили, что нехватка места после ТиИ — это не случайность, а следствие интенсивной работы с данными. Чтобы ситуация не повторилась, разберем основные правила настройки сервера 1С + SQL:

  1. Принцип разделения: никогда не держите базы данных, логи транзакций и файлы сервера 1С на системном диске. Диск C: должен быть зарезервирован только под нужды ОС.
  2. Контроль логов: используйте модель восстановления Simple для баз 1С, если у вас нет настроенного плана обслуживания с бэкапами логов.
  3. Очистка после работ: заведите привычку после тяжелых регламентных операций проверять объем свободных ресурсов и выполнять Shrink для лог-файлов, если они неоправданно разрослись.
  4. Мониторинг: настройте оповещения о достижении порога в 10-15% свободного места на дисках, чтобы успеть принять меры до того, как работа пользователей будет парализована.

Следуя этим шагам, мы не только освободим место прямо сейчас, но и обеспечим стабильную и бесперебойную работу системы в будущем.

← На главную