1

我想知道的是,如何及时跟踪日志文件大小的演变?SSMS 是否提供了这样做的工具?

编写一个不时检查文件大小的脚本的选项确实是可行的,但是在进入之前,谁能告诉SSMS中是否已经存在这样的工具?

谢谢,

4

3 回答 3

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)

又快又脏——我知道它可以改进:)

于 2013-04-26T14:19:03.277 回答
1

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

于 2013-04-26T13:53:02.507 回答
1

SQL Server 2008 和更高版本中提供了一个工具,称为 Data Collector。如果您在服务器上启用了数据收集,您可以跟踪历史数据和日志文件更改以及观察特定数据库的自动增长事件。

MSDN 数据收集器

于 2013-04-26T14:10:44.267 回答