Sql server 在另一台电脑上还原数据库备份文件时,空间利用率非常高

Sql server 在另一台电脑上还原数据库备份文件时,空间利用率非常高,sql-server,Sql Server,我正在尝试将备份文件(.bak)还原到Sql Server。bak文件大小为40 MB。但在恢复到SQLServer2012之后,它在C驱动器中占用了100到120GB的空间。如何解决这个问题 (操作系统和SQL安装在C:drive中)恢复的数据库与备份的数据库一样大。在进行备份之前减小大小,或者在还原之后减小大小。SQL Server不会备份数据库文件中的空白空间。如果您有一个100GB大的日志文件,但它是空的,那么If不会占用备份文件中的任何空间 如果恢复备份,文件将恢复到原始大小。日志文件

我正在尝试将备份文件(.bak)还原到Sql Server。bak文件大小为40 MB。但在恢复到SQLServer2012之后,它在C驱动器中占用了100到120GB的空间。如何解决这个问题


(操作系统和SQL安装在C:drive中)

恢复的数据库与备份的数据库一样大。在进行备份之前减小大小,或者在还原之后减小大小。

SQL Server不会备份数据库文件中的空白空间。如果您有一个100GB大的日志文件,但它是空的,那么If不会占用备份文件中的任何空间

如果恢复备份,文件将恢复到原始大小。日志文件将再次为100 GB

数据文件也是如此

编辑:


如果您的日志文件为100 GB,而您的数据只有40 MB,则可能配置错误。数据库是否完全恢复而不进行任何事务日志备份?

这可能不是完美的答案,但却是解决我的问题的最佳解决方案之一

获取.bak文件后,使用“非恢复模式还原”,停止SQL服务,删除.ldf文件,重新启动服务,重新引导系统

这帮助我清空了100 GB的磁盘空间(.ldf=100 GB)

帮助我解决这个问题的答案是

关于堆栈溢出


还有我前辈的建议。

数据文件有多大,日志文件有多大?两个文件实际使用了多少空间?如果您自己制作.bak文件,可以尝试缩小原始数据库,然后进行备份。如果有足够的空间,还可以在恢复后收缩数据库。此外,您可以将数据库存储在不同的驱动器上。如果您不确定如何收缩:请在还原后在SSMS->Tasks->shrink->FilesHi@JodyT中右键单击数据库。ldf为100 GB,mdf为40 MB。当我收到.bak文件时,它是40mb。不要只是缩小生产系统上的数据库。那么,我该如何解决这个问题。。。这对我来说是个大问题。。。如果您允许在两次完整备份之间丢失数据,请将数据库恢复模式设置为SIMPLE。如果只能丢失一定数量的数据,请设置事务日志备份作业。完成此操作后,将日志文件压缩为0,然后将其增长到所需大小。谢谢@JodyT。。。但是有没有其他方法可以缩小尺寸呢?我需要全部数据(110个表,每个表中有15到30条记录)。更改恢复模式或缩小日志文件不会使您丢失任何数据。您的表格和记录将保持完整。您可以阅读有关事务日志文件的更多信息。恢复模式设置为“简单”,文本区域被锁定。将尝试使用事务日志文件。如果需要更多的帮助,我一定会再来。如果解决了。。。将发布解决方案。。。谢谢…你好@usr即使在缩小后,它也只释放了12GB。。。它现在消耗102 GB。。。还有什么想法吗?如何缩小数据库是一个标准的过程。使用搜索引擎查找。感谢@usr帮助我