簡體   English   中英

如何在SQL Server中跟蹤日志文件大小的演變?

[英]How to trace log file size evolution in SQL Server?

我想知道的是,如何及時跟蹤日志文件大小的演變? SSMS是否提供了這樣做的工具?

編寫一個不時檢查文件大小的腳本的選項確實可行,但在進入之前,有人可以告訴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)

快速又臟 - 我知道它可以改進:)

它不會及時為您提供日志文件大小的確切值,但您可以使用trace來過濾“增長日志文件”事件。 這也應該出現在默認跟蹤中(默認情況下啟用:))。 我知道這適用於SQL Server 2005和2008,不確定其他版本(我不知道你使用哪一個)。 你可以使用::fn_trace_gettable函數。 作為參數,您可以指定默認跟蹤文件位置(它會自動解析目錄中的所有文件,您只需要將“log.trc”作為文件名。

SQL Server 2008中有一個工具,后來稱為Data Collector。 如果已在服務器上啟用了數據收集,則可以跟蹤歷史數據和日志文件更改,以及觀察特定數據庫的自動增長事件。

MSDN數據收集器

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM