Почему постоянно растет файл tableChanges.dat в базах 1С и как решить эту проблему?

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

В процессе администрирования информационных баз «1С:Предприятия» системные администраторы и специалисты сопровождения нередко сталкиваются с ситуацией, когда свободное дисковое пространство на сервере или локальном диске стремительно исчерпывается. Виновником этого часто оказывается файл tableChanges.dat, который разрастается до десятков и сотен гигабайт. При этом проблема может неожиданно проявляться сразу на нескольких случайных базах данных. Выясним причину такого поведения платформы и подробно разберем все способы устранения неисправности.

Проанализируем назначение данного файла. Файл tableChanges.dat располагается в служебном каталоге полнотекстового поиска 1Cv8FTxt. В файловом варианте работы он находится непосредственно внутри папки с информационной базой, а в клиент-серверном варианте — в каталоге конкретной базы внутри кластера серверов по пути вида srvinfo/reg_xxxx/<GUID_базы>. В этом файле платформа «1С:Предприятие» накапливает список изменений данных в таблицах, которые затем должны быть обработаны и включены в индекс полнотекстового поиска (ППД).

Стремительный и неконтролируемый рост размера tableChanges.dat связан с зарегистрированной ошибкой платформы «1С:Предприятие». При регулярном выполнении регламентных заданий обновления индекса ППД механизм регистрации изменений дает сбой: платформа не очищает обработанные порции записей, а продолжает непрерывно дописывать новые данные в конец файла. В результате дисковое пространство заполняется до критического уровня.

Решение 1. Обновление платформы «1С:Предприятие» до исправленных версий

Рассмотрим основной и самый надежный способ устранения проблемы. Фирма «1С» официально признала данную ошибку и выпустила обновления, полностью устраняющие утечку дискового пространства в механизме ППД. Ошибка воспроизводилась на ветках платформ 8.3.24, 8.3.25 и 8.3.26.

Разберем по шагам действия по обновлению системы:

  1. Определим текущую версию платформы «1С:Предприятие», установленной на сервере или компьютерах пользователей.
  2. Убедимся, что установленный релиз ниже номеров сборок, содержащих официальное исправление. Исправление включено в релизы: - линейка 8.3.24: версия 8.3.24.1808 и выше; - линейка 8.3.25: версия 8.3.25.1546 и выше; - линейка 8.3.26: версия 8.3.26.1540 и выше.
  3. Выполним обновление технологической платформы до актуального стабильного релиза указанных веток или более свежих версий.
  4. После завершения процедуры обновления платформы выполним ручную очистку каталога 1Cv8FTxt, чтобы удалить уже разросшийся файл и дать платформе сформировать корректные индексы заново.

Решение 2. Отключение и перестроение индекса полнотекстового поиска

Если оперативно обновить платформу не представляется возможным, рассмотрим штатный способ исправления ситуации через управление полнотекстовым поиском внутри программы. Эту процедуру также полезно выполнять после обновлений конфигурации.

Разберем по шагам процесс очистки и повторного построения индекса ППД:

  1. Зайдем в информационную базу в режиме «1С:Предприятие» с правами администратора.
  2. Перейдем в раздел администрирования (обычно это Администрирование > Общие настройки > Полнотекстовый поиск либо через функции для технического специалиста).
  3. Отключим использование полнотекстового поиска, сняв соответствующий флаг в настройках.
  4. Нажмем кнопку Очистить индекс. Это действие сбрасывает текущее состояние поисковых таблиц и удаляет накопленные данные поиска.
  5. Если полнотекстовый поиск пользователям в работе не требуется, оставим его выключенным — это гарантированно исключит повторный рост файла tableChanges.dat.
  6. Если механизм полнотекстового поиска необходим для повседневной работы, снова установим флаг разрешения полнотекстового поиска.
  7. Выполним команду Обновить индекс. Дождемся полного завершения операции индексации в монопольном режиме, после чего разрешим вход пользователей в систему.

Решение 3. Ручная очистка файлов на уровне операционной системы

Бывают ситуации, когда файл tableChanges.dat достигает огромных размеров (сотни гигабайт), из-за чего штатные команды очистки индекса из пользовательского интерфейса зависают или завершаются аварийно из-за нехватки памяти. В таком случае выполним ручную зачистку на уровне файловой системы.

Разберем по шагам порядок безопасного удаления разросшихся файлов:

  1. Остановим службу агента сервера «1С:Предприятия» (для клиент-серверной архитектуры) либо завершим все активные пользовательские сеансы и фоновые задания (для файловой базы).
  2. Перейдем в каталог информационной базы. Для клиент-серверной базы путь располагается внутри каталога данных кластера: srvinfo/reg_xxxx/<GUID_базы>.
  3. Найдем служебную папку с именем 1Cv8FTxt.
  4. Удалим проблемный файл tableChanges.dat или полностью очистим все содержимое папки 1Cv8FTxt. Платформа при последующем запуске автоматически создаст пустую корректную структуру каталога.
  5. На сервере «1С» очистим временные файлы пользователя, под учетной записью которого функционирует служба кластера (по умолчанию это пользователь USR1CV8). Для этого перейдем в папку %USERPROFILE%\AppData\Local\Temp\<GUID_базы> и удалим ее содержимое.
  6. Запустим службу сервера «1С:Предприятия» и выполним первоначальное обновление индекса полнотекстового поиска.

Решение 4. Пересоздание базы данных через выгрузку и загрузку файла выгрузки

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

Рассмотрим порядок действий:

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

Решение 5. Настройка и отключение регламентных заданий полнотекстового поиска

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

Если принято решение полностью отказаться от использования полнотекстового поиска, необходимо не только отключить его в пользовательском интерфейсе, но и деактивировать соответствующие регламентные задания в списке фоновых задач кластера или конфигурации. В противном случае регламентные задания могут продолжать запускаться по расписанию и инициировать обращение к каталогу 1Cv8FTxt.

Если поиск нужен, но возможность обновить платформу пока отсутствует, рекомендуется скорректировать расписание: отключить частый запуск задания «Обновление индекса ППД» в течение рабочего дня и настроить выполнение процедур обновления и слияния исключительно в ночное нерабочее время с обязательным мониторингом объема папки 1Cv8FTxt.

← На главную