При развертывании информационной базы 1С:Предприятия из файла выгрузки .dt в клиент-серверном варианте (MS SQL Server или PostgreSQL) системные администраторы часто сталкиваются с ситуацией, когда системный диск C: моментально переполняется временными файлами. Даже если в настройках СУБД базы данных и системная база tempdb перенесены на отдельный диск (например, D:), распаковка файла выгрузки все равно приводит к исчерпанию свободного места на диске C:. Разберем подробно, почему это происходит и как правильно перенаправить временные каталоги на другой накопитель.
Выясним причину такого поведения платформы. В клиент-серверном режиме выгрузка и загрузка данных из .dt выполняется не клиентским приложением и не самой СУБД, а рабочим процессом кластера серверов 1С — rphost. Так как файл .dt использует сильное сжатие, при распаковке объем генерируемых временных данных может в несколько раз превышать размер исходного файла. Все эти промежуточные данные рабочий процесс записывает в каталог временных файлов той учетной записи, от имени которой запущена служба сервера 1С.
Рассмотрим, где по умолчанию располагаются временные файлы в зависимости от типа запуска службы:
TEMP и TMP, которые по умолчанию ведут в папку C:\Windows\Temp или C:\Temp. Изменение переменных в профиле текущего администратора на эту службу никак не влияет.C:\Users\USR1CV8\AppData\Local\Temp.Проанализируем доступные способы решения этой задачи и переноса временных файлов на свободный диск.
Если служба агента сервера 1С работает под учетной записью Local System, необходимо изменить именно системные переменные окружения, а не пользовательские.
Разберем по шагам:
D:\Temp.sysdm.cpl в окне «Выполнить»).TEMP и TMP.D:\Temp.Если служба запускается от имени специального пользователя, системные переменные на него не повлияют. Перенаправим каталоги для конкретного пользователя службы:
USR1CV8) или запустим редактор реестра от ее имени.TEMP и TMP, направив их в каталог на диске D: (например, D:\Temp\USR1CV8).Если переопределение переменных среды нежелательно или заблокировано корпоративными политиками безопасности, можно применить механизм связывания каталогов на уровне файловой системы:
services.msc.C:\Users\USR1CV8\AppData\Local\Temp или C:\Windows\Temp).D:\Temp1C и назначим права для учетной записи службы.mklink:
mklink /J "C:\Users\USR1CV8\AppData\Local\Temp" "D:\Temp1C"
После создания связи операционная система будет автоматически и прозрачно перенаправлять все операции записи из стандартного пути на диск D:. Запустим службу сервера 1С и повторим загрузку базы.
Рассмотрим важные ограничения формата .dt. Разработчики платформы 1С позиционируют выгрузку в .dt исключительно как инструмент для переноса небольших информационных баз между различными типами СУБД или перехода с файлового режима в клиент-серверный.
Для регулярного резервного копирования и развертывания баз среднего и крупного объема (от десятков гигабайт) рекомендуется использовать штатные средства СУБД:
.bak). При таком подходе процесс выполняется самой СУБД на целевом диске и не нагружает процесс rphost временными файлами..dt, можно сначала загрузить ее в локальную файловую базу на диске D:, после чего перенести конфигурацию и данные в рабочую SQL-базу.