Avvisi

Si applica a: SQL Server (tutte le versioni supportate)

Importante

In Istanza gestita di SQL di Azure sono attualmente supportate la maggior parte ma non tutte le funzionalità di SQL Server Agent. Per informazioni dettagliate, vedere Differenze T-SQL tra Istanza gestita di SQL di Azure e SQL Server.

Gli eventi vengono generati da SQL Server e immessi nel log delle applicazioni di Microsoft Windows. SQL Server Agent legge il log dell'applicazione e confronta gli eventi scritti lì agli avvisi definiti. Quando SQL Server Agent trova una corrispondenza, genera un avviso, che è una risposta automatica a un evento. Oltre al monitoraggio degli eventi SQL Server, SQL Server Agent può anche monitorare le condizioni di prestazioni e gli eventi WMI (Windows Management Instrumentation).

Per definire un avviso, è necessario specificare gli elementi seguenti:

  • Nome dell'avviso.

  • Evento o condizione delle prestazioni che attiva l'avviso.

  • Azione che SQL Server Agent viene eseguita in risposta alla condizione di evento o prestazioni.

Denominazione di un avviso

Ogni avviso deve essere dotato di un nome. I nomi degli avvisi devono essere univoci all'interno dell'istanza di SQL Server e non possono essere più di 128 caratteri.

Selezione di un tipo di evento

Un avviso rappresenta la risposta a un evento di tipo specifico. Gli avvisi rispondono ai tipi di evento seguenti:

  • eventi SQL Server

  • condizioni di prestazioni SQL Server

  • Eventi WMI

Il tipo di evento determina i parametri utilizzati per specificare l'evento esatto.

Definizione di un evento di SQL Server

È possibile specificare la generazione di un avviso in risposta a uno o più eventi. Utilizzare i parametri seguenti per specificare gli eventi che comportano l'attivazione di un avviso:

  • Numero di errore

    SQL Server Agent genera un avviso quando si verifica un errore specifico. È possibile, ad esempio, specificare il numero errore 2571 in risposta a tentativi non autorizzati di richiamare comandi DBCC (Database Console Commands).

  • Livello di gravità

    SQL Server Agent genera un avviso quando si verifica un errore della gravità specifica. È possibile, ad esempio, specificare un livello di gravità 15 in risposta a errori di sintassi nelle istruzioni Transact-SQL.

  • Database

    SQL Server Agent genera un avviso solo quando l'evento si verifica in un determinato database. Questa opzione si applica insieme al numero di errore o al livello di gravità. Se, ad esempio, un'istanza contiene un database utilizzato per la produzione e uno utilizzato per la segnalazione, è possibile definire un avviso in risposta a errori di sintassi solo nel database di produzione.

  • Testo dell'evento

    SQL Server Agent genera un avviso quando l'evento specificato contiene una determinata stringa di testo nel messaggio evento. È possibile, ad esempio, definire un avviso in risposta a messaggi contenenti il nome di una tabella o un vincolo specifico.

Selezione di una condizione delle prestazioni

È possibile determinare la generazione di un avviso in risposta a una condizione delle prestazioni specifica. In questo caso, è necessario specificare il contatore delle prestazioni da monitorare, una soglia per l'avviso e il comportamento indicato dal contatore se viene generato l'avviso. Per impostare una condizione di prestazioni, è necessario definire gli elementi seguenti nella pagina Generale SQL Server Agent della finestra di dialogo Nuovo avviso o Proprietà avviso:

  • Object

    L'oggetto rappresenta l'area delle prestazioni da monitorare.

  • Contatore

    Un contatore è un attributo dell'area da monitorare.

  • Istanza

    L'istanza di SQL Server definisce l'istanza specifica (se presente) dell'attributo da monitorare.

  • Avvisa se il contatore e Valore

    La soglia per l'avviso e il comportamento prodotto dall'avviso. La soglia è rappresentata da un numero. Il comportamento può essere uno dei seguenti : è minore di, diventa uguale ao è maggiore di un numero specificato per Valore. L'opzione Valore rappresenta un numero che descrive il contatore della condizione delle prestazioni. Per impostare, ad esempio, un avviso per l'oggetto prestazione SQLServer:Locks quando il valore Tempo di attesa blocchi (ms) supera i 30 minuti, selezionare è maggiore di e specificare 30 come valore.

    Sempre a titolo di esempio, è possibile specificare che un avviso venga generato per l'oggetto prestazione SQLServer:Transactions quando lo spazio disponibile in tempdb è minore di 1000 KB. Per procedere, scegliere il contatore Spazio disponibile in tempdb (KB), è minore die un Valore pari a 1000.

    Nota

    Viene eseguito un campionamento periodico dei dati relativi alle prestazioni, che può determinare un lieve ritardo (qualche secondo) tra il raggiungimento della soglia e la generazione dell'avviso.

    Nota

    Una variabile del registro eventi che archivia il nome del server è limitata a 32 caratteri. Pertanto, se le dimensioni combinate del nome host e del nome dell'istanza sono maggiori di 32 caratteri, è possibile che venga generato l'errore seguente:

Warning,[466] Failed to copy server name LONGNAMESQLSERV\LONGINSTANCENAME while generating performance counter alerts.

Selezione di un evento WMI

È possibile impostare la generazione di un avviso in risposta a un evento WMI specifico. Per selezionare un evento WMI, è necessario definire quanto segue nella pagina Generale SQL Server Agent della finestra di dialogo Nuovo avviso o Proprietà avviso:

  • Namespace

    SQL Server Agent registra come client WMI nello spazio dei nomi WMI fornito per eseguire query per gli eventi.

  • Query

    SQL Server Agent usa l'istruzione WQL (Windows Management Instrumentation Query Language) fornita per identificare l'evento specifico.

Di seguito vengono indicati alcuni collegamenti utili per l'esecuzione di operazioni comuni:

Per creare un avviso in base a un numero di messaggio

Per creare un avviso in base ai livelli di gravità

Per creare un avviso in base a un evento WMI

Per definire la risposta a un avviso

Per creare un messaggio di errore relativo a un evento definito dall'utente

Per modificare un messaggio di errore relativo a un evento definito dall'utente

Per eliminare un messaggio di errore relativo a un evento definito dall'utente

Per disabilitare o riattivare un avviso

Vedere anche

sp_update_alert (Transact-SQL)