IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Administration SQL Server Discussion :

Alertes SQL Serveur, WMI et SQL Serveur Agent


Sujet :

Administration SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2008
    Messages : 7
    Par défaut Alertes SQL Serveur, WMI et SQL Serveur Agent
    Bonjour,

    Sous SQL2008, Windows server 2008, je cherche à déclencher une alerte sur base de compteurs WMI et stocker la valeur récupérée (par exemple, PercentProcessTime) dans une table.

    Cela est (ou plutôt, devrait être) possible en utilisant un "jeton" au niveau de l'agent.

    Service broker a été activé pour MSDB.
    Dans les propriétés de l'Agent SQL server, Système d'alerte, j'ai coché "Remplacer les jetons pour toutes les réponses de travaux aux alertes".

    J'ai défini une alerte de type DMI avec les paramètres suivants :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Espace de noms : \\.\root\cimv2
    
    Requête :
    
    SELECT * FROM __InstanceModificationEvent WITHIN 30 WHERE TargetInstance ISA "Win32_PerfFormattedData_PerfOS_Processor" AND TargetInstance.name = "_Total"
    (testée via wbemtest)
    ce qui devrait me ramener la valeur du compteur toutes les 30 secondes.

    Cette alerte déclenche un job dans l'agent qui contient la commande suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    INSERT INTO Test (x)
    SELECT CAST(N'$(ESCAPE_SQUOTE(WMI(PercentProcessorTime)))' as varchar(3))
    J'ai volontairement converti l'UINT64 en varchar pour éviter tout problème mais voici l'erreur qui m'est retournée (avec ou sans conversion):

    Impossible de démarrer l'exécution de l'étape 1 (raison : Erreur lors de la récupération de la variable WMI WMI(PercentProcessorTime) : 0x80041002). L''étape a échoué.

    Quelqu'un pourait-il m'aiguiller un peu ?

    Un grand merci d'avance,

    Michel.

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 998
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 998
    Billets dans le blog
    6
    Par défaut
    Certainement un problème de droit au niveau du compte de service de l'agent.

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2008
    Messages : 7
    Par défaut
    Citation Envoyé par SQLpro Voir le message
    Certainement un problème de droit au niveau du compte de service de l'agent.

    A +
    Bonjour Frédéric,

    Merci pour cette piste. Malheureusement, le compte utilisé pour le démarrage du service est administrateur du serveur et sysadmin pour SQL.

    Une autre idée ?

    Merci encore.

    Michel.

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2008
    Messages : 7
    Par défaut
    Bonjour tout le monde,

    Je commence à me sentir un peu seul sur cette planète ... Personne n'a une petite idée ?

    Je continue à chercher de mon côté mais toujours aucun nouvel élément !

    Merci d'avance.

  5. #5
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 998
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 998
    Billets dans le blog
    6
    Par défaut
    Tu fait un transtypage vers varchar(3) mais c'est trop faible. UN pourcentage peut être 87,65456455641562621 %

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2008
    Messages : 7
    Par défaut
    Le code erreur "0x80041002" indique un objet non trouvé. Le problème provient du jeton dans l'agent SQL qui ne peut récupérer la valeur du pourcentage pour une raison encore nébuleuse.

    La requête WMI fonctionne sans problème, je l'ai d'ailleurs utilisée en désespoir de cause dans le VBScript ci-dessous :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
     
    /* Connexion SQL */
    Const adOpenStatic = 3
    Const adLockOptimistic = 3
     
    Set objConnection = CreateObject("ADODB.Connection")
    Set objRecordSet = CreateObject("ADODB.Recordset")
     
    Dim CS, TSQL
     
    CS = "Provider=SQLOLEDB;Data Source=NomServeurSQL;" & _
            "Trusted_Connection=Yes;Initial Catalog=NomDB;" & _
            "User ID=Utilisateur;"
     
    objConnection.Open CS
     
    /* Gestion WMI*/
     
    Dim Computer, WSQL
    Dim Cpt
     
    Computer = "NomMachine"
     
    WSQL = "SELECT * FROM __InstanceModificationEvent WITHIN 5 WHERE TargetInstance ISA 'Win32_PerfFormattedData_PerfOS_Processor' AND TargetInstance.name = '_Total'"
     
    Set oWMI = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & Computer & "\root\cimv2").ExecNotificationQuery(WSQL)
     
    Cpt = 1
    Do While Cpt <= 10 /* Limitation à 10 occurrences uniquement pour le test) */
    	Set oEvent = oWMI.NextEvent()
     
    	TSQL = "INSERT INTO dbo.Test (NomMachine, PourcentageProcesseur) " &_
    			"VALUES (" & "'" & Computer & "'," & oEvent.TargetInstance.PercentProcessorTime & ")"
     
    	objRecordSet.Open TSQL, objConnection, adOpenStatic, adLockOptimistic
     
    	Cpt = Cpt+1
    Loop
     
    Set objRecordSet = Nothing
    Set objConnection = Nothing
    Si quelqu'un se sent inspiré par les jetons, je serai toujours intéressé par sa solution ;-)

    Bon code à tous ;-)

Discussions similaires

  1. [SQL 2K5] Etape Calcul Cube et Agent SQL Serveur
    Par scornille dans le forum SSAS
    Réponses: 2
    Dernier message: 18/06/2009, 15h48
  2. attacher une BD sql serveur 9 avec sql serveur 7
    Par rolph dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 01/02/2006, 17h15
  3. Cherche serveur de test SQL
    Par leolana dans le forum Décisions SGBD
    Réponses: 1
    Dernier message: 06/10/2005, 10h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo