Sql Server ldf 文件增长速度非常快

问题描述 投票:0回答:3

我正在使用 Sql Server 2012。
我的 LDF 文件增长得非常快。
例如,
如果我尝试将 3-4 列的数据类型从 varchar(10) 更改为 varchar(5),则几乎会消耗 4-5 GB 的磁盘空间。

甚至,当我运行简单的插入查询时,会消耗大量磁盘空间。

请告诉我 ldf 文件增长如此之快的可能原因是什么?
我该如何解决这个问题?

谢谢。

sql-server database sql-server-2012
3个回答
2
投票

所以,我终于有机会解决这个问题了。
实际上, 当我执行事务日志备份时,它不会释放 ldf 文件的空间。
所以,
来解决它,
首先,我对数据库进行了完整备份。
然后尝试缩小数据库(而不是文件)。
当我收缩数据库时,ldf 文件的空间被释放。

这就是解决我的问题的方法。

访问此链接,了解 Aaron Bertrand

建议的更多简短详细信息

1
投票

如果您在完全恢复模式下运行,则需要定期执行事务日志备份以减缓日志增长。

USE master
GO
SELECT   a.name, 
         MAX(b.backup_finish_date) AS backup_finish_date 
FROM     master.sys.sysdatabases a 
         LEFT OUTER JOIN msdb..backupset b 
         ON b.database_name = d.name 
         AND b.type          = 'L' 
GROUP BY a.name 
ORDER BY backup_finish_date DESC 

此外,以下是导致事务日志增长的一些因素: http://msdn.microsoft.com/en-us/library/ms345414.aspx

此外,此链接可以帮助您进一步控制日志文件大小:http://blog.sqlauthority.com/2010/09/20/sql-server-how-to-stop-grinding-log-file-too -大/


0
投票

如果您的日志文件(即 .LDF 文件)正在快速增长,则有些情况您需要检查并采取措施。

情况1:如果您的数据库大小和事务数量与LDF文件的增长成正比,请偶尔SHRINK日志文件。

情况 2:如果尽管尝试 SHRINK,日志文件仍在增长并耗尽磁盘空间,请按照以下步骤操作:

第0步:不要在数据库级别进行SHRINK!步骤 1:从 [DatabaseName] > Properties > Options 选项卡检查恢复模型。它很可能设置为“完整”。步骤 2:如果恢复模式设置为 Full,请使用以下命令将其切换为 Simple:

使用[数据库名称] 去 更改数据库 [数据库名称] 设置恢复简单;

注意:您可以通过导航到 [数据库名称] > 属性 > 文件并检查文件类型为 LOG 的行下的“逻辑名称”来找到日志文件的名称。我们称之为 LogFileName。

例如,我想将日志文件大小从 1.5 TB 缩小到 50 MB,因此我将按照步骤 3 中的步骤进行操作。

第 3 步:使用以下命令将 LDF 文件缩小到所需的大小: 使用[数据库名称] 去 DBCC SHRINKFILE (N'LogFileName', 50880);

恭喜!您的 LDF 文件现在为 50 MB。

© www.soinside.com 2019 - 2024. All rights reserved.