由于缺乏硬盘空间,无法还原数据库。原始数据库为1.6TB,大约1.4TB被删除,并在不收缩数据库的情况下进行备份。
备份文件只有168 me,是通过信使在硬盘上发送给我的。当我试图还原168 of备份文件时,它尝试创建原始的1.6TB .mdf数据文件和错误,因为我所有可用服务器的可用磁盘空间都不到1TB。
首先,我尝试将数据文件还原到NTFS压缩文件夹,但是我发现一个错误,说明目标文件可能没有设置压缩位。
然后,根据这个链接:在还原过程中收缩SQL数据库
我尝试将还原的.mdf文件放入指向压缩文件夹的符号链接文件夹中,但是出现了错误:
System.Data.SqlClient.SqlError:磁盘卷'C:\‘上没有足够的空闲空间来创建数据库。数据库需要额外的1541063704576个空闲字节,而可用的只有748261179392字节。(Microsoft.SqlServer.SmoExtended)
然后,由于这是在超级VM中运行的,我尝试在压缩文件夹中添加一个新的虚拟磁盘,但是VM不会开始抱怨一个位于压缩文件夹中的驱动器。
然后,我尝试在指向压缩文件夹的符号链接文件夹中添加一个新的超级V虚拟磁盘。这很好,除非该文件在恢复过程中未被压缩,并且在我杀死它之前已接近耗尽的空间(我猜资源管理器可能会在文件被写入过程“SQL”关闭后压缩它)
还原的数据库应该仅包含168 it的实际数据。
有人有什么解决办法吗?
发布于 2016-03-30 14:06:49
你的选择很有限。
发布于 2016-03-22 20:23:03
我不确定这是否是一个答案,但它太大了,不能发表评论
我也有过很多次同样的问题。在我的例子中,总是与日志文件有关。当您获得备份时,日志文件可能不包含任何活动日志/数据,并且它不会占用备份文件中的任何空间,但是在还原时,SQL server尝试分配相同的空间。如果有任何方法可以在还原时忽略日志文件,则可以恢复。
发布于 2022-07-15 09:12:07
可以使用将所有文件重新定位到驱动器有大量空闲空间的文件夹。我在驱动器C上也有同样的问题,在SSMS中使用Relocate all files to选项,如所示,然后单击OK并解决。

https://dba.stackexchange.com/questions/133819
复制相似问题