我发现 SQL 数据库日志文件增长迅速并占满了硬盘空间,每天的增长速度约为 190MB。
服务器上正在运行 Sharepoint,我如何检查是什么原因导致日志文件大小增加?可能是因为计划的 SharePoint 抓取和 DB 备份?
我打算收缩一些日志文件(例如:Report Server日志文件),如何确定这些日志文件收缩后不会产生任何副作用?
答案1
您能分享以下结果吗?您是否定期进行事务日志备份?
select name, log_reuse_wait_desc from sys.databases
DBCC OPENTRAN()
您需要适当调整事务日志的大小以便不会启动自动增长,而且频繁缩小它们并不是一个好主意。
编辑:根据您的评论编写代码来检查哪些日志文件最近增长了。
DECLARE @filename VARCHAR(255)
SELECT @FileName = SUBSTRING(path, 0, LEN(path)-CHARINDEX('\', REVERSE(path))+1) + '\Log.trc'
FROM sys.traces
WHERE is_default = 1;
--Check if the data and log files auto-growed. Look for tempdb, log files etc.
SELECT
gt.ServerName
, gt.DatabaseName
, gt.TextData
, gt.StartTime
, gt.Success
, gt.HostName
, gt.NTUserName
, gt.NTDomainName
, gt.ApplicationName
, gt.LoginName
FROM [fn_trace_gettable](@filename, DEFAULT) gt
JOIN sys.trace_events te ON gt.EventClass = te.trace_event_id
WHERE EventClass in ( 92, 93 ) --'Data File Auto Grow', 'Log File Auto Grow'
ORDER BY StartTime;