Raz*_*anu 7 sql-server shrink sql-server-2014
有没有办法查看 SQL Server 2014 上过去几周/几个月的增长和收缩事件的完整历史记录?(要支持的新实例,从票务系统中注意到它们之前有“日志驱动器已满”的历史记录,因此希望在再次发生之前深入研究根本原因。)
这很有用:识别文件增长事件。想出了下面的查询,但它没有显示任何“手动”日志收缩事件,只显示“自动”事件。我是否以错误的方式这样做,还有其他地方可以查找过去的信息吗?
select
te.name as event_name,
tr.DatabaseName,
tr.FileName,
tr.IntegerData,
tr.IntegerData2,
tr.LoginName,
tr.StartTime,
tr.EndTime
--select *
from
sys.fn_trace_gettable(convert(nvarchar(255),(select value from sys.fn_trace_getinfo(0) where property=2)), 0) tr
inner join sys.trace_events te on tr.EventClass = te.trace_event_id
where
tr.EventClass in (93, 95) --can't identify any other EventClass to add here
order by
EndTime desc;
Run Code Online (Sandbox Code Playgroud)
Sha*_*nky 10
有没有办法查看 SQL Server 2014 上过去几周/几个月的增长和收缩事件的完整历史记录?
有一种简单的方法可以从数据库报告中获取有关数据/日志文件自动增长和自动收缩事件的信息。该报告从默认跟踪中获取数据。我不确定您的报告有多近,这取决于默认跟踪何时翻转。默认大小为 20 MB,超过此大小后将进行回滚,另外请注意,在 SQL Server 重新启动后,跟踪将回滚
连接到 SQL Server 实例,然后右键单击数据库,然后选择报告,然后选择标准报告,然后单击磁盘使用情况。
在来的报告中寻找Data/log file autogrowt auto shrink events
并展开+ sign
它就在循环使用报告的下方。报告如下所示。
在我的情况下,它只报告自动增长事件,因为我没有自动收缩或任何收缩活动正在运行,我想你知道这是非常糟糕的。
有没有办法查看 SQL Server 2014 上过去几周/几个月的增长和收缩事件的完整历史记录
是的,有一种方法,或者我应该说多种方法来保存从默认跟踪收集的数据,如此处所述收集默认跟踪中的信息
- 我们可以查询默认跟踪文件并保存聚合值
- 我们可以获取默认跟踪的定义并创建一个集合集,该集合集可以与 SQL Server 内置的管理数据仓库一起使用。
- 我们可以获取默认跟踪的定义并从另一台服务器创建远程跟踪并将数据保存到数据库表中
- 我们可以使用 robocopy 脚本将跟踪文件从我们的服务器复制到不同的文件夹或远程计算机,这将使文件在磁盘上保留更长时间,使我们能够分析它们
提出了以下查询,但它不显示任何“手动”日志收缩事件,仅显示“自动”事件。我这样做的方式是否错误,还有其他地方可以查找过去的信息吗?要捕获手动收缩事件,我使用如下查询:
SELECT
TextData,
HostName,
ApplicationName,
LoginName,
StartTime
FROM
[fn_trace_gettable]('C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Log\log_75.trc', DEFAULT)
WHERE TextData LIKE '%SHRINKFILE%'; ----- Location of default trace will be different ,so kindly check that accordingly
Run Code Online (Sandbox Code Playgroud)
您查询不显示手动增长或收缩事件的可能原因是您使用 (93, 95) 等用于自动增长事件的事件