Справочник системных ошибок и решений

Windows Server, Active Directory, 1С:Предприятие, СУБД, Linux, Cisco, MikroTik, Asterisk.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты на сайте предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, программного обеспечения, баз данных, сетевого оборудования и других компонентов инфраструктуры. Перед выполнением действий создайте резервную копию и по возможности протестируйте изменения в безопасной среде. Пользователь самостоятельно оценивает риски и несет ответственность за результат. При отсутствии необходимых знаний обратитесь к квалифицированному ИТ-специалисту.

RESTORE_DISK_SPACE_EXHAUSTED 1С:Предприятие и СУБД

Траблшутинг нехватки дискового пространства при RESTORE в MSSQL

Обновлено: 26.08.2026 · Официальная документация ↗
  • Ошибка There is insufficient free space on disk volume 'D:\' to create the database (Error 3257 / 1105).
  • Операция восстановления аварийно прерывается на этапе аллокации файлов данных или журнала транзакций.
  • Размер несжатых файлов внутри бэкапа существенно превышает емкость целевого раздела.

1. Получение точных размеров и логических имен файлов внутри бэкапа

RESTORE FILELISTONLY 
FROM DISK = N'E:\Backups\HeavyDatabase.bak';

Обратите внимание на колонку Size (размер в байтах) для каждого логического файла.

2. Восстановление с распределением файлов по разным физическим дискам (WITH MOVE)

RESTORE DATABASE [HeavyDatabase]
FROM DISK = N'E:\Backups\HeavyDatabase.bak'
WITH 
    MOVE N'HeavyDb_Data'   TO N'D:\SQLData\HeavyDatabase_Data.mdf',
    MOVE N'HeavyDb_Index'  TO N'E:\SQLIndexes\HeavyDatabase_Index.ndf',
    MOVE N'HeavyDb_Log'    TO N'L:\SQLLogs\HeavyDatabase_Log.ldf',
    REPLACE, RECOVERY, STATS = 5;

3. Включение мгновенной инициализации файлов (Instant File Initialization, IFI)

IFI позволяет мгновенно аллоцировать место под MDF/NDF файлы без долгой перезаписи секторов нулями:

  1. Откройте secpol.msc (Локальная политика безопасности).
  2. Перейдите: Локальные политики -> Назначение прав пользователя -> Выполнение задач по обслуживанию томов (Perform volume maintenance tasks).
  3. Добавьте сервисную учетную запись службы SQL Server Engine и перезапустите инстанс.
💡 Практика специалистов: Если во время экстренного восстановления не хватает буквально нескольких гигабайт, временно отключите и удалите неиспользуемые дампы памяти, очистите TempDB на целевом диске или перенесите LDF-файл на любой быстрый резервный накопитель с помощью опции MOVE.

Частые вопросы (FAQ)

Распространяется ли Instant File Initialization на файлы журналов транзакций (LDF)?

Нет. По соображениям безопасности ядра СУБД файлы журналов (.ldf) всегда принудительно инициализируются нулями, поэтому скорость создания лога зависит исключительно от скорости записи накопителя.

Почему размер бэкапа .bak был 50 ГБ, а для восстановления требуется 500 ГБ?

Бэкап сжимается алгоритмом BACKUP WITH COMPRESSION и содержит только занятые страницы. При восстановлении SQL Server резервирует полный исходный размер файлов базы, включая пустое нераспределенное пространство.

Можно ли восстановить базу на диск меньшего объема, если реальных данных там немного?

Напрямую через RESTORE нельзя, так как размер выделяется по метаданным заголовка. Необходимо сначала сделать DBCC SHRINKFILE на исходном сервере, снять новый бэкап и затем восстановить его.

Как проверить, активирована ли Instant File Initialization на сервере?

Выполните запрос: SELECT instant_file_initialization_enabled FROM sys.dm_server_services WHERE servicename LIKE 'SQL Server%';

Полезные материалы
Рекомендуем