【发布时间】:2018-07-16 09:39:37
【问题描述】:
我使用 1.5gb .bak 文件恢复了一个数据库。一切正常,除了恢复的数据库现在占用 64GB 空间。
我听说过缩小数据库和日志文件,但我应该如何找出占用这么多空间的内容以及我可以“缩小”哪些内容以使数据本身不会改变。在我的开发环境中,我需要这些生产备份数据。
我在进行恢复的开发环境中不需要完整的日志。如何找出占用更多空间的是数据还是日志?
我正在使用 SQL Server Management Studio 2017
【问题讨论】:
-
备份文件通常被压缩,所以这是预期的行为,尝试压缩文件,它不会删除数据,它会释放已分配但未使用的空间。您还需要指定更多详细信息,因为您没有说明是日志还是数据文件占用了大部分空间,以及您是否需要在还原环境中使用完整日志。
-
检查这是否对您有帮助:stackoverflow.com/questions/48617895/… 它处理类似的问题;缩小日志文件不会以任何方式损害数据。
-
听起来您没有进行任何事务日志备份,如果您不备份和截断日志,它只会不断增长 - 特别是如果您正在执行大型操作,例如从表并重新填充它等。
-
可以从恢复的数据库中删除表吗?尝试找出哪些表占用的空间最多,然后从中删除行,或者删除整个表...如果您最终删除了行,请执行收缩操作以减少使用的空间...
-
@bastos.sergio -- 你建议他删除底层数据以便在缩小数据库之前获得磁盘空间?这似乎不是很好的建议。你为什么认为他可以删除数据?此外,如果他在完全恢复模式下运行并且问题是日志文件很大,那么删除数据也无济于事。
标签: sql-server ssms shrink transaction-log