Condividi tramite


Avvisi

Si applica a: SQL Server

Importante

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

Gli eventi vengono generati in SQL Server e immessi nel registro applicazioni di Microsoft Windows. SQL Server Agent legge il registro applicazioni ed esegue un confronto tra gli eventi e gli avvisi definiti. Quando SQL Server Agent rileva una corrispondenza genera un avviso, che rappresenta una risposta automatica a un evento. Oltre al controllo degli eventi di SQL Server, SQL Server Agent può anche eseguire il monitoraggio delle condizioni delle prestazioni e degli eventi WMI (Strumentazione gestione Windows).

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

  • Nome dell'avviso.

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

  • Azione eseguita da SQL Server Agent in risposta all'evento o alla condizione delle prestazioni.

Denominazione di un avviso

Ogni avviso deve essere dotato di un nome. I nomi degli avvisi devono essere univoci nell'istanza di SQL Server e non possono essere formati da 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 di SQL Server

  • Condizioni delle prestazioni di 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 con il livello di gravità specificato. È 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 database specifico. 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 indicato contiene una stringa di testo specifica nel messaggio dell'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 delle prestazioni, è necessario definire gli elementi indicati di seguito nella pagina Generale della finestra di dialogo Nuovo avviso o Proprietà avviso di SQL Server Agent:

  • Oggetto

    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 disponibile, 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 gli elementi indicati di seguito nella pagina Generale della finestra di dialogo Nuovo avviso o Proprietà avviso di SQL Server Agent:

  • Spazio dei nomi

    SQL Server Agent viene registrato come client WMI nello spazio dei nomi WMI indicato per le query per gli eventi.

  • Query

    SQL Server Agent usa l'istruzione WQL (Windows Management Instrumentation Query Language) indicata 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

Vedi anche

sp_update_alert (Transact-SQL)