我为一个组织工作,我遇到了一个无法收缩日志文件的问题。 600 GB硬盘驱动器中的SQL服务器数据库消耗400 GB。 日志文件大小约为350 GB。
我尝试缩小日志文件,但大小保持不变。 我的数据库的恢复模型是SIMPLE。
我已经浏览了有关建议备份日志文件然后尝试收缩的在线帖子。但是我的驱动器上没有足够的可用空间来保存日志备份。(注意:我只有一个驱动器在我的系统中,我不应该在外部驱动器上备份。)
将整个数据库移动到不同的驱动器有帮助吗? 任何解决方案?
答案 0 :(得分:0)
您有一个开放的交易。杀死所有连接,然后再试一次。
答案 1 :(得分:0)
我尝试缩小日志文件,但大小保持不变。该 我的数据库的恢复模型是SIMPLE。
我已经浏览了有关建议的在线帖子 备份日志文件,然后尝试收缩。
如果您的数据库位于<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="24" height="24" viewBox="0 0 24 24">
<path d="M13.333 9.333V7.746c0-.717.159-1.08 1.271-1.08H16V4h-2.33c-2.853 0-3.795 1.308-3.795 3.554v1.78H8V12h1.875v8h3.458v-8h2.35L16 9.333h-2.667z"/>
</svg>
,则无法进行日志备份。
相反,您应该发出一次或多次:
SIMPLE
如果CHECKPOINT; DBCC SHRINKFILE...
显示log_reuse_wait_desc
/ NOTHING
,这将有所帮助。
如果它显示任何其他内容,你应该消除它在
上显示的原因答案 2 :(得分:0)
如果数据库处于SIMPLE模式,请将日志的文件大小更改为较小的值,最低为1 MB。服务器会将其大小尽可能小。
但是,请注意,日志文件的大小应包含所有活动事务。在您的示例中,在某个时间点,您正在进行350GB的事务处理。请注意,现有的服务器活动可以防止它缩小到所需的大小。
在简单模式下,只有当一个失控的事务吹掉日志时,缩小日志文件才有意义。否则,缩小日志文件不会解决任何问题并影响性能,因为服务器必须立即再次增加日志文件以进行新事务。
您可以而且应该将日志文件移动到与数据库文件不同的驱动器。