Erstellen einer WMI-Ereigniswarnung

In diesem Thema wird beschrieben, wie eine SQL Server-Agent Warnung ausgegeben wird, die ausgelöst wird, wenn ein bestimmtes SQL Server-Ereignis auftritt, das vom WMI-Anbieter für Serverereignisse in SQL Server 2014 mithilfe von SQL Server Management Studio oder Transact-SQL überwacht wird.

Informationen zum Verwenden des WMI-Anbieters zum Überwachen SQL Server Ereignisse finden Sie unter WMI-Anbieter für Serverereignissekonzepte. Informationen zu den Berechtigungen, die erforderlich sind, um Benachrichtigungen zu WMI-Ereigniswarnungen zu erhalten, finden Sie unter Auswählen eines Kontos für den SQL Server-Agent-Dienst. Weitere Informationen zu WQL finden Sie unter Verwenden von WQL mit dem WMI-Anbieter für Serverereignisse.

In diesem Thema

Vorbereitungen

Einschränkungen

  • Mit SQL Server Management Studio lässt sich das gesamte Warnungssystem auf einfache Weise mit einer grafischen Oberfläche verwalten. Dies ist die empfohlene Vorgehensweise, um eine Warnungsinfrastruktur zu konfigurieren.

  • Ereignisse, die mit xp_logevent generiert werden, treten in der master-Datenbank auf. Daher wird von xp_logevent erst dann eine Warnung ausgegeben, wenn der @database_name -Wert für die Warnung den Wert 'master' oder NULL hat.

  • Es werden nur WMI-Namespaces auf dem Computer unterstützt, auf dem der SQL Server-Agent ausgeführt wird.

Sicherheit

Berechtigungen

Standardmäßig können nur Mitglieder der festen Serverrolle sysadmin die Prozedur sp_add_alertausführen.

Verwendung von SQL Server Management Studio

So erstellen Sie eine WMI-Ereigniswarnung

  1. Klicken Sie im Objekt-Explorer auf das Pluszeichen, um den Server zu erweitern, auf dem Sie eine WMI-Ereigniswarnung erstellen möchten.

  2. Klicken Sie auf das Pluszeichen, um SQL Server-Agentzu erweitern.

  3. Klicken Sie mit der rechten Maustaste auf Warnungen , und wählen Sie Neue Warnungaus.

  4. Geben Sie im Dialogfeld Neue Warnung einen Namen für diese Warnung ein.

  5. Aktivieren Sie das Kontrollkästchen Aktivieren , um die Ausführung der Warnung zu ermöglichen. Standardmäßig ist Aktivieren aktiviert.

  6. Klicken Sie in der Liste Typ auf WMI-Ereigniswarnung.

  7. Geben Sie unter WMI-Ereigniswarnungsdefinitionim Feld Namespace den WMI-Namespace für die WQL-Anweisung (WMI Query Language) an, die das WMI-Ereignis identifiziert, welches diese Warnung auslöst.

  8. Geben Sie im Feld Abfrage die WQL-Anweisung an, die das Ereignis identifiziert, auf das diese Warnung reagiert.

  9. Klicken Sie auf OK.

Verwenden von Transact-SQL

So erstellen Sie eine WMI-Ereigniswarnung

  1. Stellen Sie im Objekt-Explorer eine Verbindung mit einer Datenbank-Engine-Instanz her.

  2. Klicken Sie in der Standardleiste auf Neue Abfrage.

  3. Kopieren Sie das folgende Beispiel, fügen Sie es in das Abfragefenster ein, und klicken Sie auf Ausführen.

    -- creates a WMI event alert that retrieves all event properties for any ALTER_TABLE event that occurs on table AdventureWorks2012.Sales.SalesOrderDetail  
    -- This example assumes that the message 54001 already exists.  
    USE msdb ;  
    GO  
    
    EXEC dbo.sp_add_alert  
        @name = N'Test Alert 2',  
        @message_id = 54001  
        @notification_message = N'Error 54001 has occurred on the Sales.SalesOrderDetail table on the AdventureWorks2012 database. Please see the following information...',  
        @wmi_namespace = '\\.\root\Microsoft\SqlServer\ServerEvents\,  
        @wmi_query = N'SELECT * FROM ALTER_TABLE   
    WHERE DatabaseName = 'AdventureWorks2012' AND SchemaName = 'Sales'   
        AND ObjectType='Table' AND ObjectName = 'SalesOrderDetail'';  
    GO  
    

Weitere Informationen finden Sie unter sp_add_alert (Transact-SQL).