Поделиться через


Создание оповещения о событии WMI

применимо к:SQL ServerУправляемому экземпляру SQL Azure

Это важно

В Azure SQL Managed Instanceв настоящее время поддерживается большинство функций агента SQL Server, но не все. Дополнительные сведения см. в разделе отличия Управляемого экземпляра SQL Azure от SQL Server или ограничения заданий SQL Agent в Управляемом экземпляре SQL.

В этой статье описывается, как создать оповещение агента SQL Server, которое срабатывает при возникновении определенного события в SQL Server, отслеживаемого с помощью поставщика WMI для событий сервера. Для этого используются SQL Server Management Studio или Transact-SQL.

Сведения об использовании поставщика WMI для мониторинга событий SQL Server см. в разделе "Поставщик WMI" для классов и свойств событий сервера. Сведения о разрешениях, необходимых для получения уведомлений об оповещении событий WMI, см. в разделе "Выбор учетной записи для службы агента SQL Server". Дополнительные сведения о WQL см. в статье Об использовании WQL с поставщиком WMI для событий сервера.

Ограничения и запреты

  • SQL Server Management Studio предоставляет простой графический способ управления всей системой оповещений и рекомендуется настроить инфраструктуру оповещений.

  • События, создаваемые с помощью xp_logevent, происходят в базе данных master. Поэтому xp_logevent не срабатывает, если @database_name для оповещения не 'master' или NULL.

  • Поддерживаются только пространства имен WMI на компьютере с агентом SQL Server.

Разрешения

По умолчанию только члены фиксированной серверной роли sysadmin могут выполнять sp_add_alert.

Используйте SQL Server Management Studio

  1. В обозревателе объектов выберите знак плюса, чтобы развернуть сервер, в котором требуется создать оповещение о событии WMI.

  2. Выберите знак "плюс", чтобы развернуть SQL Server Agent.

  3. Щелкните правой кнопкой мыши Оповещения и выберите Новое оповещение.

  4. В диалоговом окне Новое оповещение в поле "Имя" введите имя этого оповещения.

  5. Установите флажок Включить, чтобы включить запуск оповещения. По умолчанию флажок Включить отмечен.

  6. В списке типов выберите оповещение о событии WMI.

  7. В определении оповещения события WMI в поле пространства имен укажите пространство имен WMI для запроса WMI Query Language (WQL), который определяет, какое событие WMI будет активировать это оповещение.

  8. В поле запроса укажите инструкцию WQL, которая идентифицирует событие, на которое отвечает это оповещение.

  9. Нажмите ОК.

Использование Transact-SQL

  1. В обозревателе объектов подключитесь к экземпляру ядра СУБД.

  2. На стандартной панели выберите пункт Создать запрос.

  3. Скопируйте приведенный ниже пример в окно запроса и нажмите кнопку Выполнить.

    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 AdventureWorks2022 database.',
        @wmi_namespace = '\.\root\Microsoft\SqlServer\ServerEvents',
        @wmi_query = N'SELECT * FROM ALTER_TABLE
    WHERE DatabaseName = ''AdventureWorks2022'' AND SchemaName = ''Sales''
    AND ObjectType=''Table'' AND ObjectName = ''SalesOrderDetail''';
    GO
    

Дальнейшие действия