Rozwiązanie powinno zawierać powiadomienie mailowe dla operatorów serwera.
Rozwiązanie powinno zawierać powiadomienie mailowe dla operatorów serwera.
Witam,
idealną odpowiedź na Twoje pytanie znalazłem tutaj:
http://sqlmag.com/blog/disk-space-monitoring-how
Warto jednak pomyśleć nad innymi rozwiązaniami, gdyż MS SQL Server nie jest narzędziem monitorującym, w związku z czym używanie tego typu narzędzia do wykonywania czynności monitorujących jest nieadekwatne do potrzeb.
Pozdrawiam,
Robert Kruczek
Najprostszym rozwiązaniem jest stworzenie altertu WMI dla klasy Win32_LogicalDisk z przestrzeni root\CIMv2 w oparciu o zapytanie:
SELECT * FROM __InstanceModificationEvent WITHIN 1
WHERE TargetInstance ISA 'Win32_LogicalDisk'
AND TargetInstance.FreeSpace < 59055800320
AND TargetInstance.DeviceID = "L:"
Powyższy alert zostanie uruchomiony dla dysku L (DeviceID w zapytaniu), gdy wolna przestrzeń spadnie poniżej 55 GB (FreeSpace w zapytaniu); pełna konfiguracja alertu poniżej:
Wiem, że to nie do końca zgodne z tematem. Ale od Windows Server 2008 banalne jest ustawienie wysyłania maili do określonej grupy osób po wystąpieniu jakiegoś zdarzenia w eventlogu. Według mnie pełny dysk na 100% jest w eventlogu sygnalizowany. Druga opcja: PowerShell - skrypt uruchamiany cyklicznie np. z shedulera.
Sam MS SQL Server chyba nie służy do monitoringu dysków? :)
Odnosząc się do pytania, czy MS SQL Server służy do monitoringu dysków odpowiedź jest oczywista - nie. Tak samo do monitoringu dysków nie służy sam Event Log, ani PowerShell, ani T-SQL; w każdym z tych przypadków mamy wykorzystanie technologii do zrealizowania określonego zadania. Do monitorowania na pewno najbardziej odpowiedni będzie System Center Operations Manager. Jeżeli postawimy pytanie inaczej - czy SQL Server zawiera funkcje monitorowania, to odpowiedź jest już zupełnie inna - zawiera, i nie są to funkcje dodane do produktu przypadkowo.
Monitorowanie dysku, o którym mowa w oryginalnym pytaniu dotyczy sytuacji, gdy administrator serwera baz danych chciałby uzyskać powiadomienie jeszcze przed zapełnieniem dysku, np. w sytuacji, gdy następuje nagły przyrost logu.
W związku z powyższym zdarzenie z Event Logu, gdy dysk już jest pełny będzie skutkowało powiadomieniem post factum. Rozwiązanie z PowerShella również ma poważne ograniczenie - w pytaniu była mowa o operatorach serwera, czyli obiektach definiowanych w konfiguracji usługi agenta -czytanie ich PowerShellem jest możliwe, ale to znowu komplikuje rozwiązanie. Dodatkowo korzystanie z alertu WMI zapewnia niskie (w porównaniu z PowerShellem) zapotrzebowanie na pamięć i asynchroniczne wysyłanie powiadomienia z wbudowanymi mechanizmami powtarzania, w razie niepowodzenia oraz powiadamianiem operatora awaryjnego. Budowanie analogicznego rozwiązania za pomocą PowerShella jest możliwe, ale nieporównywalnie bardziej pracochłonne i związane z poważnymi ograniczeniami wymienionymi częściowo powyżej.