我想知道的,是如何遵循日志文件大小的进化时间? SSMS是否提供了这样做的工具?如何跟踪SQL Server中的日志文件大小演变?
编写脚本,从时间检查一次文件的大小确实是可行的,但在获得之前的选择,任何人都可以请告诉我们,如果这样的工具SSMS中已经存在?
谢谢
我想知道的,是如何遵循日志文件大小的进化时间? SSMS是否提供了这样做的工具?如何跟踪SQL Server中的日志文件大小演变?
编写脚本,从时间检查一次文件的大小确实是可行的,但在获得之前的选择,任何人都可以请告诉我们,如果这样的工具SSMS中已经存在?
谢谢
我使用下面的脚本(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)
快速和肮脏的 - 我知道它可以细化:)
它不会给你的日志文件大小的精确值的时候,但你可以使用跟踪筛选“成长日志文件”事件。这也应该出现在默认跟踪(默认启用:))。 我知道这适用于SQL Server 2005和2008,不知道其他版本(我不知道你用的是哪一个)。 你会为此使用::fn_trace_gettable
函数。当你指定默认的跟踪文件的位置(它会自动解析目录中的所有文件的参数,你只需要给“log.trc”作为文件名。
在SQL Server 2008中提供的工具,后来被称为数据收藏家。如果您已启用数据收集的服务器上,你可以跟踪历史数据和日志文件的变化,以及观察自动增长事件对特定数据库。