Гайд 1С: Использование многопоточного восстановления и загрузки данных DT
- Загрузка файла информационной базы (.dt) в рабочую или тестовую базу длится много часов или падает по таймауту.
- В процессе загрузки утилизируется только одно ядро процессора сервера 1С/СУБД.
- Переполнение журналов транзакций и временной базы
tempdbпри выполнении операции загрузки. - Ошибка
Недостаточно памятиили аварийное завершение сеанса конфигуратора.
1. Использование параметров командной строки для ускорения
Начиная с современных релизов платформы 1С:Предприятие 8.3, доступно пакетное управление загрузкой через пакетный запуск конфигуратора или утилиту ibcmd с оптимизацией транзакций:
# Пакетная загрузка с подавлением диалогов
"C:\Program Files\1cv8\8.3.24.xxxx\bin\1cv8.exe" DESIGNER \
/S "server-1c\enterprise_base" \
/N "Admin" /P "SecurePassword" \
/RestoreIB "D:\Backups\base_dump.dt" \
/DisableStartupMessages /DisableStartupDialogs2. Тюнинг СУБД перед загрузкой DT
- Перевод базы в Simple Recovery Model (MS SQL): Перед загрузкой DT переведите модель восстановления в режим
Простая (Simple), чтобы предотвратить взрывной рост файла LDF:ALTER DATABASE [enterprise_base] SET RECOVERY SIMPLE WITH NO_WAIT; - Оптимизация параметров tempdb: Создайте несколько файлов данных tempdb равного размера (по числу физических ядер CPU, но не более 8).
- Настройки PostgreSQL: Временно увеличьте лимиты на время загрузки в
postgresql.conf:max_wal_size = 32GB checkpoint_completion_target = 0.9 maintenance_work_mem = 4GB synchronous_commit = off
3. Применение утилиты автономного сервера ibcmd
Для баз на сервере Linux выполняйте загрузку напрямую в локальную базу с параллельной индексацией:
/opt/1cv8/x86_64/8.3.24.xxxx/ibcmd infobase restore \
--data=/var/1C/bases/base1 \
--restore-file=/backup/dump.dt Частые вопросы (FAQ)
Является ли выгрузка в DT полноценной заменой резервного копирования средствами СУБД?
Категорически нет. Формат .dt предназначен только для переноса конфигурации и данных между различными типами СУБД или для создания стендов разработки. В продакшене резервное копирование должно выполняться исключительно средствами СУБД (pg_dump/pg_basebackup или native MSSQL Full/Diff/Log backups).
Почему во время загрузки DT сервер 1С потребляет огромные объемы оперативной памяти?
В процессе распаковки и конвертации бинарных потоков DT в табличные структуры СУБД платформа 1С строит большие списки объектов в оперативной памяти рабочего процесса rphost/конфигуратора перед их массовой пакетной вставкой.
Что делать, если загрузка DT падает с ошибкой 'Ошибка формата потока'?
Выполните тестирование и исправление исходной базы перед выгрузкой, очистите кэш конфигуратора (%LOCALAPPDATA%\1C\1cv8), либо используйте утилиту chdbfl.exe для файловых вариантов перед созданием архива.
Как вернуть базу в режим полного логирования после загрузки DT?
Выполните в СУБД: ALTER DATABASE [enterprise_base] SET RECOVERY FULL; и сразу же сделайте полный бэкап базы данных для инициализации цепочки LSN журнала транзакций.