Voici un script qu'il est possible de planifier régulièrement sur un serveur pour être notifié par email en cas de manque d'espace sur l'une des partitions.
Ce script ne fonctionne que sur SQL Server 2005 à condition d'avoir configuré correctement le système d'envoie d'email par SMTP (database mail). Il peut cependant être adapté facilement pour les versions précédente en changeant la référence de sp_send_dbmail par un xp_sendmail (attention paramètres différents).
Source / Exemple :
-- Initialisation des paramètres
DECLARE @destinataires varchar(max)
DECLARE @corp_msg nvarchar(max)
DECLARE @seuil_avert int,
@seuil_crit int
SET @destinataires = 'toto@test.fr'
SET @seuil_avert = 5190
SET @seuil_crit = 2048
-- Création d'une table temporaire
-- pour réceptionner les données d'espace disque
CREATE TABLE #espace_disque
(
drive char(1),
[MB free] int
)
-- Execute xp_fixeddrives
INSERT #espace_disque
EXEC master..xp_fixeddrives
-- Premier seuil
IF EXISTS ( SELECT *
FROM #espace_disque
WHERE [MB free] < @seuil_crit )
BEGIN
SET @corp_msg = 'Espace disque libre inférieur à '
+ CAST(@seuil_crit as varchar(10))
+ ' Mo sur l''un des disques du server. Voir le détail ci-dessous.'
EXEC msdb.dbo.sp_send_dbmail @recipients = @destinataires,
@subject = 'Espace disque critique', @body = @corp_msg,
@importance = 'High', @query = 'EXEC master..xp_fixeddrives'
END
ELSE
BEGIN
-- Second seuil
IF EXISTS ( SELECT *
FROM #espace_disque
WHERE [MB free] < @seuil_avert)
BEGIN
SET @corp_msg = 'Espace disque libre inférieur à '
+ CAST(@seuil_avert as varchar(10))
+ ' Mo sur l''un des disques du server. Voir le détail ci-dessous.'
EXEC msdb.dbo.sp_send_dbmail @recipients = @destinataires,
@subject = 'Espace disque faible', @body = @corp_msg,
@importance = 'Normal',
@query = 'EXEC master..xp_fixeddrives'
END
END
Conclusion :
Planifiez ce script via l'Agent SQL de votre serveur (toutes les 15min ou toutes les heures) et attendez de recevoir un email.
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.