Избыточное пространство требуется для восстановления SQL Server .bak
Я пытаюсь восстановить резервную копию SQL Server 2008 (стандартная версия) на своем компьютере разработчика с использованием производственной базы данных. При этом я получаю сообщение об ошибке "недостаточно свободного места". SQL Server утверждает, что для восстановления моей базы данных ему нужно 43 ГБ, но файл.bak занимает всего 4,5 ГБ! Конечно, я дам ему немного места для работы, но в 10 раз объем используемого пространства кажется немного чрезмерным. Я не сжимаю эту базу данных (когда я сжимаю файл.bak, он уменьшается до 0,8 ГБ).
Могу ли я что-нибудь сделать с исходной БД, чтобы она могла быть установлена в пределах меньшего рабочего пространства?
2 ответа
Вероятно, ваш файл журнала транзакций... резервная копия захочет создать такой же большой, как и в оригинале.
Лучше всего, если это так, - сжать файл журнала, прежде чем делать резервное копирование.
Другой вариант, помимо резервного копирования, если вы можете сойти с рук, это отсоединить, а затем скопировать файл базы данных и повторно присоединить, а затем SQL создаст новый файл журнала транзакций с размером по умолчанию, равным 1 МБ.
43 ГБ - это объединенный размер (наиболее вероятно) файлов MDF и LDF.
Резервное копирование занимает только используемые страницы в файлах, поэтому это вполне возможно, особенно если у вас сильная фрагментация таблиц / индексов или вы никогда не управляли файлами журналов или никогда не выполняли обслуживание индекса
Исправлено: больше места на диске (конечно!). Попробуйте восстановить в сжатую папку NTFS, внешний USB-накопитель / перо или другое устройство, чтобы создать больше временного хранилища, отсортировать данные, выполнить резервное копирование снова, восстановить "как обычно"