gpt4 book ai didi

sql-server - SQL Server 数据库在简单恢复模式下的巨大事务日志

转载 作者:行者123 更新时间:2023-12-01 22:31:15 25 4
gpt4 key购买 nike

我有一个相当大的 SQL Server 数据库,它使用简单恢复模式。我们实际上不需要第二次恢复,所以我希望我们保持这种模式。

由于某种原因,该数据库的事务日志很大 (410 GB),其中 99% 的空间未分配。

我尝试使用( DBCC SHRINKFILE (MyDatabase_log, 20000) )缩小文件,但它似乎不起作用。

有人知道为什么简单恢复模式数据库会有这么大的文件吗?我真的很想让它缩小。

最佳答案

这意味着您曾经有一个持续时间太长的事务,导致日志增长到 410GB。如果存在事件事务,则无法重用日志,因为无法删除回滚信息。例如,如果有人打开 SSMS 查询、启动事务、更新记录,然后去度假。事务将处于事件状态并强制日志增长,直到最终提交或回滚。当事务最终结束时,已使用的空间最终可以被回收,留下一个巨大的空日志文件。

另一种情况是,如果您在单个事务中更新了大约 200GB 的数据。日志将存储更改之前和之后的图像,从而消耗两倍的空间,并且无法重用,同样因为都是一个事务。

更新

我忽略了复制,这也是防止日志截断的一个因素。镜像也是如此,它是一种分布式事务(从技术上讲,它与“事件事务”相同,但 DTC 含义使其成为一种独特的情况)。完整列表和说明位于Factors That Can Delay Log Truncation .

关于sql-server - SQL Server 数据库在简单恢复模式下的巨大事务日志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1195867/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com