Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

SQL SERVER : VÉRIFICATION DE L'ESPACE LIBRE SUR LE SERVEUR


Information sur la source

Catégorie :Tâches Classé sous : SQL Server, administration, disque, espace, sql agent Niveau : Initié Date de création : 04/11/2007 Date de mise à jour : 04/11/2007 20:41:52 Vu : 4 718

Note :
Aucune note

Commentaire sur cette source (1)
Ajouter un commentaire et/ou une note


Description

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

  • -- 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
-- 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.
 

Historique

04 novembre 2007 20:41:52 :
Correction des noms de tables temporaires, certaines préfixées de ## au lieu de #

Commentaires et avis

signaler à un administrateur
Commentaire de Tsom le 08/12/2008 17:59:04

bonjour cher ami,
c'est exactement ce que je cherchais, que DIEU TE BENISSE.

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Administration de donnée [ par nager ] S'il vous plait je suis à la recherche d'un exposé sur "l'administration des bases de données" car j'ai un exposé concernant celà dans une semaine svp Organisation de table [ par christobal ] Bonjour, mon probleme est le suivant. Dans ma zone d'administration je crée des acces en remplisant une table (Administration) composé des champs : lo types [ par catamenia ] Bonjour,Je voudrais stocker en base de donées des texts de taille plus ou moins grande.J'aimerais optimiser l'espace disque utilisé.Y a t'il un type d demandeHELP : Exercices corrigés Administration Oracle [ par karamilano ] slt tt le monde ca va ??j ai un probleme et j aimerais bien que quel qu un puisse m aider j ai essayé de chercher des exercices corrigés dans 1 =&gt;l


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,437 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.