2013-04-26 74 views
1

我想知道的,是如何遵循日志文件大小的进化时间? SSMS是否提供了这样做的工具?如何跟踪SQL Server中的日志文件大小演变?

编写脚本,从时间检查一次文件的大小确实是可行的,但在获得之前的选择,任何人都可以请告诉我们,如果这样的工具SSMS中已经存在?

谢谢

回答

2

我使用下面的脚本(PowerShell中)时,我需要这样做:

$doforever = 1 

$cn2 = new-object system.data.SqlClient.SQLConnection("Data Source=somedatasource;Integrated Security=false;Initial Catalog=master;User ID=sa;Password=somepasswordimnottelling"); 
$cmd = new-object system.data.sqlclient.sqlcommand("dbcc sqlperf(logspace)", $cn2); 
$cn2.Open(); 

do 
{ 
$ds=New-Object system.Data.DataSet 
$da=New-Object system.Data.SqlClient.SqlDataAdapter($cmd) 
[void]$da.fill($ds) 

$ds.tables[0] | out-string | %{$_.split("`n")}| %{$_ -replace("\s+",",")}|%{"{0},{1}" -f (get-date -format 'dd/MM/yyyy HH:mm:ss'),$_} | add-content -path c:\perflogs\admin\logsize.csv 

sleep -s 300 
} 
while ($doForever -eq 1) 

快速和肮脏的 - 我知道它可以细化:)

1

它不会给你的日志文件大小的精确值的时候,但你可以使用跟踪筛选“成长日志文件”事件。这也应该出现在默认跟踪(默认启用:))。 我知道这适用于SQL Server 2005和2008,不知道其他版本(我不知道你用的是哪一个)。 你会为此使用::fn_trace_gettable函数。当你指定默认的跟踪文件的位置(它会自动解析目录中的所有文件的参数,你只需要给“log.trc”作为文件名。

1

在SQL Server 2008中提供的工具,后来被称为数据收藏家。如果您已启用数据收集的服务器上,你可以跟踪历史数据和日志文件的变化,以及观察自动增长事件对特定数据库。

MSDN Data Collector