trešdiena, 2012. gada 4. jūlijs

Brīdinājums par izsīkstošu diska vietu

Šajā rakstā par to, kā laicīgi saņemt brīdinājumu par to, ka diska vieta drīz beigsies. Uzreiz piebildīšu, ka šeit aprakstītais mehānisms ir tikai proof-of-concept, ko laika gaitā doma pieslīpēt.

SQL Server ir iespējams uzzināt cik ir brīvas vietas diskos uz SQL Server instances datora, piemēram, izmantojot procedūru:
EXEC master.dbo.xp_fixeddrives
Procedūru var ietērp citā procedūrā, kurā veikt nepieciešamās pārbaudes, sagatavot skaistus e-pastus (DB Mail kopsavilkums), ielikt to visu SQL Server Agent uzdevumā, uzstādīt laikus kad šo uzdevumu izpildīt (kaut katru minūti) un lieta darīta. BET- daudz darbību.. daudz objektu..

Savukārt SQL Server Agent ir sadaļa "Alerts", kas izklausās pēc tieši tā, ko šeit vajag.

WMI notikumi
SQL Server Agent var izveidot brīdinājumus (Alerts) par trīs dažādu veidu notikumiem. Viens no tiem ir WMI event alert (WMI and SQL Server). WMI vaicājumi izskatās visai īpatnēji un to sintaksi nemaz nav tik vienkārši pārbaudīt.

Tur var palīdzēt WMI Code Creator v1.0. Uz sava datora var izveidot un pārbaudīt vaicājumu (brīvā vieta jānorāda baitos):


Brīdinājuma konfigurēšana
Pirms izveides, vajag izveidot operatoru, kam tiks sūtīts brīdinājums. Man tas jau ir izdarīts (kā to izdarīt: Piemērs: DB Mail izmantošana SQL Server Agent):

Pēc tam jāizveido brīdinājums (labā poga uz "Alerts" un "New Alert.."):

Pilns brīdinājuma izveides skripts (protams, FreeSpace vajag pielāgot savām vajadzībām):
USE [msdb]
GO
EXEC msdb.dbo.sp_add_alert @name=N'LowSpace',
        @enabled=1,
        @delay_between_responses=3600,
        @include_event_description_in=0,
        @wmi_namespace=N'\\.\root\CIMV2',
        @wmi_query=N'SELECT * FROM __InstanceModificationEvent WITHIN 10 WHERE TargetInstance ISA ''CIM_LogicalDisk'' AND TargetInstance.FreeSpace < 107374182400',
        @job_id=N'00000000-0000-0000-0000-000000000000'
GO
EXEC msdb.dbo.sp_add_notification @alert_name=N'LowSpace', @operator_name=N'Janis', @notification_method = 1
GO
* Gadījumā, ja izmantojat iepriekšējo kodu lai izveidotu savu brīdinājumu, der pievērst uzmanību dubultajām pēdiņām pie "CIM_LogicalDisk"- WMI vaicājumā grafiskajā interfeisā vajag vienu  pēdiņu.

Un tas arī viss!

Nav komentāru:

Ierakstīt komentāru