为什么我的数据库日志文件占用了大量空间?它几乎占据了30GB我的硬盘。即使删除1,000,000记录后,它也不会释放任何空间。
那么,
1.为什么日志文件要占用这么多空间 ( 30gb)?2.我怎样才能释放空间?
Ale*_*lok 10
1.为什么日志文件占用这么多空间(30GB)?
2.如何释放空间?
如果恢复不是简单的:
DBCC SHRINKFILE(2,256)如果恢复很简单:
DBCC SHRINKFILE(2,256)如果数据库日志仍然没有减少到目标大小,则使用@sepupic 的代码片段检查确切原因
一些成员仍然提供和建议物理删除 LDF 文件。
我强烈建议不要这样做。Aaron Bertrand 的显着相关帖子:
有些事情你不想做:
分离数据库,删除日志文件,然后重新附加。我无法强调这有多危险。您的数据库可能无法恢复,可能会出现可疑情况,您可能必须恢复备份(如果有),等等。
1. Why is the log file taking this much space (30gb)?
那是因为Autogrowth / Maxsize设置了200,000 MB
2. how can I free up the space?
如上所述这里我使用了以下命令,文件现在小于200mb
ALTER DATABASE myDatabaseName
SET RECOVERY SIMPLE
GO
DBCC SHRINKFILE (myDatabaseName_log, 1)
GO
ALTER DATABASE myDatabaseName_log
SET RECOVERY FULL
Run Code Online (Sandbox Code Playgroud)
我还在Autogrowh/Maxsize数据库属性中设置1000为Limited(见下图)。
该链接描述了更多,因此我建议参考它以获取详细描述和其他选项。
感谢@hadi 提供链接。
为什么我的数据库日志文件占用了大量空间?
可能有更多原因,而不仅仅是另一个答案中提到的 2 个。
您可以使用此查询找到确切原因:
select log_reuse_wait_desc
from sys.databases
where name = 'myDB';
Run Code Online (Sandbox Code Playgroud)
这是 BOL 文章的链接,该文章描述了以下所有可能的原因log_reuse_wait:
sys.databases (Transact-SQL)
我怎样才能释放空间?
首先,您应该使用上面的查询确定原因,然后您应该修复它,例如,如果它坏了,replication您应该删除它或修复它。
| 归档时间: |
|
| 查看次数: |
17761 次 |
| 最近记录: |