在我的公司,我们在虚拟机的c:盘上安装了SQL Server 2005。 所有实际的数据库文件都位于单独的(虚拟)数据驱动器E:上。 c:驱动器很小,剩下大约一半的磁盘空间,而E:是巨大的。
我有一个数据库,存储在E:,我试图从备份还原,也存储在E :. 但是当我尝试时,SQL Server告诉我这一点
磁盘卷“C:\”上没有足够的可用空间来创build数据库。 该数据库需要额外的空闲字节3804626944,而只有1791596544字节可用。
C:真的有这么多的空间。 但为什么会这样呢? .bak文件,.mdf和.LDF,都在E :!
我如何说服SQL Server 2005在E上创build它的临时文件,或者它认为它需要所有这些磁盘空间的东西:哪里有足够的空间?
您是否试图恢复E:上的现有数据库? 如果是这样的话,SQL Server根本就不需要C:上的空间。
这听起来像是要将另一个数据库副本恢复到C:(除非有足够的空间,否则您将无法完成),或者在其文件位于C:时备份数据库所以它试图在C:上重新创build它们。
您可以通过在备份上执行RESTORE FILELISTONLY来检查它,它会告诉您将尝试创build的数据库文件(请参阅此处的联机丛书)。 如果他们指向C:,则可以使用WITH MOVE语法使恢复在E上创build它们。
您可以通过http://msdn.microsoft.com/zh-cn/library/ms186858.aspx#restoring_db_n_move_files在联机丛书中看到此示例
希望这可以帮助!
如果您使用的是SQL Server Management Studio GUI工具,请在恢复对话框中点击“高级”选项卡,并确保path对于目标数据文件是正确的。 听起来像源数据库是在C: – 这就是那些path将是。