如何释放其中包含BiztalkMsgBoxDB_log文件的驱动器上的磁盘空间

我被要求分析一个关于biztalk服务器的问题。 我被要求释放一个特定的驱动器的空间,在那里我发现唯一的文件BiztalkMsgBoxDB_log.bak正在接近90%的驱动器。 运行以下查询我后来发现使用的日志空间只有1.25%。

EXEC('DBCC sqlperf(LOGSPACE)WITH NO_INFOMSGS')

**Database Name** **Log Size (MB)** **Log Space Used (%)** **Status** BizTalkMsgBoxDb 24930.49 1.257622 0 

目前恢复模式是:FULL,事务日志备份是在一个小时前进行的。

我不知道为什么日志文件创build这么大。 我怎样才能释放这个驱动器上的数据。

你应该缩小你的日志。 不要删除它!

在SQL Server MGMNT Studio中,右键单击数据库,“任务”>“收缩”>“文件”。 select你的日志,如下图所示(或缩小到适合你的大小),然后点击确定。

在这里输入图像说明

之后你可能会想看看你的自动增长设置,也许会设置一个限制,以确保将来不会发生这种情况。

我主要推荐的是把日志文件放在一个单独的磁盘上(或者如果你不能添加额外的磁盘,则是分区)。 这样日志文件可以填满驱动器而不会中断其他任何事情。 (顺便一提的是tempdb)。

如果运行这个日志文件后这个日志文件仍然很大,那么可能还有一个事务阻塞了这个动作。 尝试使用sp_who2sp_whoisactive查找它,看看是否可以阻止它。 奖励点不只是杀死它。

确保它没有卡在复制的地方。 您可以尝试将数据库置于简单模式,然后回到完整状态,但这应该是最后一招。 不要忘记检查您的备份后!

假设SQL Server正在运行,您将无法实际删除该文件,而该文件实际上是SQL Server正在使用的数据库的日志文件。 您已将名称标识为以.bak结尾,通常为SQL Server 备份文件而不是日志文件保留。 通常,日志文件扩展名是.ldf 。 如果确实是备份文件,则可以删除它; 但是,如果SQL Server定期对该文件进行备份,则下次进行备份时将会重新显示。 您可能不想删除备份文件,因为它可能对灾难恢复至关重要。

SQL Server日志文件包含对数据库本身进行的每个修改的logging。 备份日志通常会将文件的某些部分标记为重复使用,因此如果您在备份之后查看DBCC LOGPERF ,则可能会奇怪为什么日志文件只有1%使用时“很大”。 在收缩文件之前,可能需要确定所需的文件大小,因为在下次对数据库运行维护时,SQL Server 可能只是将文件扩大到该大小。 日志文件可能会增长的原因有很多,当它增长的时候,会暂时减慢响应时间。 在dba.stackexchange.com网站上查看这个问题以及有关更多详细信息的答案。