6

我正在尝试从 32MB 备份中恢复数据库。我的磁盘上有 6GB 可用空间。当我尝试恢复备份时,它显示磁盘空间不足错误。32MB 的备份怎么可能需要超过 6GB 的磁盘空间?

4

4 回答 4

7

可能是因为备份被压缩了,或者因为有一个非常大的日志文件不需要成为备份本身的一部分,或者因为数据文件本身已被清除 - 备份仅由包含数据的页面组成. 但是当恢复时,它仍然需要将数据文件扩展为原来的大小,即使它大部分是空的。

向我们展示运行时大小列的内容:

RESTORE FILELISTONLY FROM DISK = '[path]\whatever.bak';
于 2013-03-11T20:45:56.687 回答
1

我有同样的问题,我有一个 800 MB 的数据库备份文件,需要 320 GB 的可用空间才能在目标计算机中恢复。

原来这只是因为数据库日志文件,为了确保日志文件是导致问题的原因,右键单击预期的数据库并单击属性,然后在数据库的General选项卡检查Size中,如果它很大,请转到Files选项卡和导航到 tfiles 的路径。

Shrink通过界面在数据库和文件上运行命令,但没有帮助,以下查询最终救了我:

ALTER DATABASE DataBase_Name SET RECOVERY SIMPLE;
GO
DBCC SHRINKFILE(DataBase_Name_log, 200);
GO
ALTER DATABASE DataBase_Name SET RECOVERY FULL;
GO

这意味着您必须对数据库运行查询,然后再次创建一个备份文件。

注意:正如您在上面的查询中看到的,数据库恢复模式应该在执行Simple之前打开SHRINKFILE

于 2019-05-07T09:29:53.927 回答
0

仔细检查您将 mdf 和 ldf 还原到哪个磁盘总是好的,也许您正在创建完整磁盘中的文件,它可能会发生。

除此之外,我建议在另一个地方恢复该备份,将文件缩小,然后再次备份以采取紧急措施。

于 2013-03-11T20:51:06.477 回答
0

其他答案解释了错误消息的原因,但没有提供问题的解决方案。我有同样的问题,这是我找到的解决方案。

插入具有大量可用空间的外部硬盘驱动器,然后将 .mdf 和 .ldf 文件移动到外部硬盘驱动器。此脚本可用于在还原时移动文件:

RESTORE DATABASE [MyDb] FROM  DISK = N'C:\Data\Backup\MyDb_FULL.bak' WITH  FILE = 1,  MOVE N'MyDb' TO N'E:\Data\MyDb.mdf',  MOVE N'MyDb_log' TO N'E:\Data\MyDb_log.ldf',  NOUNLOAD,  REPLACE,  STATS = 5

数据库成功恢复到外部驱动器后,您可以选择缩小文件,然后将它们移动到硬盘驱动器或您希望它们位于的任何其他位置。

于 2018-12-10T23:52:39.870 回答