Ulubioną lekturą MSSQL DBA jest plik errorlog. Można go oczytywać w SQL Server Management Studio, z wykorzystaniem sp_readerrorlog, ale da się też z powershella. Jak zwykle zaczynamy od stworzenia obiektu SMO odpowiadającego za naszą instancję SQL:
$server = New-Object -type Microsoft.SqlServer.Management.Smo.Server -ArgumentList localhost
Do odczytania błędów skorzystaj z:
$err = $server.ReadErrorLog()
Najważniejsze właściwościi tak uzyskanego obiektu to:
LogDate Property dateime LogDate {get;set;}
ProcessInfo Property string ProcessInfo {get;set;}
Text Property string Text {get;set;}
Logdate to oczywiście data wystąpienia błędu, ProcessInfo to numer spid w ramach którego błąd został zalogowany, a Text, to sam komunikat błędu. Jeśli więc chcesz wyfiltrować wszystkie zdarzenia zawierające informację o błędzie lub operacje nieudane z ostatniej godziny posłuż się:
$err | ? {$_.text -like '*error*’ -or $_.text -like '*failed*’} | ? { $_.LogDate -gt (Get-Date).AddHours(-1)} | FT -Wrap
A teraz o błędach ale z trochę innej strony.