Condividi tramite


Monitoraggio del mirroring del database (SQL Server)

Questa sezione presenta Monitoraggio mirroring del database e le stored procedure di sistema sp_dbmmonitor , illustra il funzionamento del monitoraggio del mirroring del database (incluso il processo monitoraggio mirroring del database) e riepiloga le informazioni che è possibile monitorare sulle sessioni di mirroring del database. In questa sezione viene inoltre illustrato come definire le soglie di avviso per un set di eventi di mirroring del database predefiniti e come configurare gli avvisi per qualsiasi evento di mirroring del database.

È possibile monitorare un database con mirroring durante una sessione di mirroring per verificare se e il flusso dei dati. Per configurare e gestire il monitoraggio per uno o più database con mirroring in un'istanza del server, è possibile utilizzare il Monitor di Mirroring del Database o le stored procedure di sistema sp_dbmmonitor.

Un'attività di monitoraggio del mirroring del database, Attività di Monitoraggio del Mirroring del Database, funziona in background, indipendentemente dal Monitoraggio del Mirroring del Database. SQL Server Agent chiama il processo di monitoraggio mirroring del database a intervalli regolari, il valore predefinito è una volta al minuto e il processo chiama una stored procedure che aggiorna lo stato del mirroring. Se si usa SQL Server Management Studio per avviare una sessione di mirroring, il processo di Monitoraggio mirroring del database viene creato automaticamente. Tuttavia, se si usa solo ALTER DATABASE <database_name> SET PARTNER per avviare il mirroring, è necessario creare il processo eseguendo una stored procedure.

Contenuto dell'argomento

Monitoraggio dello stato delle operazioni di mirroring

Per configurare e gestire il monitoraggio di uno o più database con mirroring in un'istanza del server, è possibile utilizzare il Database Mirroring Monitor o le stored procedure di sistema denominate dbmmonitor. È possibile monitorare un database con mirroring durante una sessione di mirroring per verificare se e quanto bene fluiscono i dati.

In particolare, il monitoraggio di un database con mirroring consente di:

  • Verificare che il mirroring funzioni.

    Lo stato di base include sapere se le due istanze del server sono operative, che i server sono connessi e che il log viene spostato dal principale al mirror.

  • Determinare se il database mirror è in linea con il database principale.

    Durante la modalità a prestazioni elevate, un server principale può sviluppare un backlog di record di log non inviati che devono comunque essere inviati dal server principale al server mirror. Inoltre, in qualsiasi modalità operativa, il server mirror può sviluppare un backlog di record di log non ripristinati scritti nel file di log, ma che devono comunque essere ripristinati nel database mirror.

  • Determinare la quantità di dati persi quando l'istanza del server principale non è più disponibile durante la modalità a prestazioni elevate.

    È possibile determinare la perdita di dati esaminando la quantità di log delle transazioni non inviati (se presente) e l'intervallo di tempo durante il quale sono state eseguite le transazioni perse sul principale.

  • Confrontare le prestazioni correnti con le prestazioni precedenti.

    Quando si verificano problemi, un amministratore del database può visualizzare una cronologia delle prestazioni del mirroring per comprendere lo stato corrente. Esaminando la cronologia è possibile consentire all'utente di rilevare le tendenze nelle prestazioni, identificare i modelli di problemi di prestazioni (ad esempio orari del giorno in cui la rete è lenta o il numero di comandi che entrano nel log è molto grande).

  • Individuare la causa del ridotto flusso di dati tra i partner di mirroring.

  • Impostare le soglie di avviso per le metriche delle prestazioni chiave.

    Se una nuova riga di stato contiene un valore che supera una soglia, viene inviato un evento informativo al registro eventi di Windows. Un amministratore di sistema può quindi configurare manualmente gli avvisi in base a questi eventi. Per altre informazioni, vedere Usare soglie di avviso e avvisi sulle metriche delle prestazioni del mirroring (SQL Server).

Strumenti per il monitoraggio dello stato del mirroring del database

È possibile monitorare lo stato del mirroring usando il Monitor di mirroring del database o la stored procedure di sistema sp_dbmmonitorresults. Questi strumenti possono essere utilizzati per monitorare il mirroring del database in qualsiasi database con mirroring nell'istanza del server locale sia dagli amministratori di sistema, ovvero i membri del ruolo predefinito del server sysadmin, sia dall'utente che è stato aggiunto al ruolo predefinito del database dbm_monitor nel database msdb da un amministratore di sistema. Quando si usa uno degli strumenti, un amministratore di sistema può anche aggiornare manualmente lo stato del mirroring.

Annotazioni

Gli amministratori di sistema possono anche configurare e visualizzare le soglie di avviso per le metriche delle prestazioni chiave. Per altre informazioni, vedere Usare soglie di avviso e avvisi sulle metriche delle prestazioni del mirroring (SQL Server).

  • Monitor del mirroring del database

    Il Monitor di Mirroring del Database è uno strumento grafico dell'interfaccia utente che consente agli amministratori di sistema di visualizzare e aggiornare lo stato e configurare le soglie di avvertimento in diverse metriche delle prestazioni chiave. Il monitoraggio del mirroring del database può essere utilizzato anche dai membri del ruolo fisso del database dbm_monitor per visualizzare la riga più recente della tabella di stato del mirroring, sebbene non possano aggiornare la tabella di stato.

    Il monitor visualizza lo stato, incluse le metriche delle prestazioni, per un database selezionato sulla pagina a schede Stato. Il contenuto di questa pagina deriva dalle istanze del server principale e del server mirror. La pagina viene compilata in modo asincrono man mano che lo stato viene raccolto attraverso connessioni separate alle istanze del server principale e del server mirror. Il monitoraggio tenta di aggiornare la tabella di stato a intervalli di 30 secondi. L'aggiornamento ha esito positivo solo se la tabella non è stata aggiornata entro 15 secondi e l'utente è membro del ruolo predefinito del server sysadmin . Per un riepilogo delle informazioni riportate nella pagina Stato, vedere Stato visualizzato dal Monitor del Mirroring del Database, più avanti in questo argomento.

    Per un'introduzione all'interfaccia di monitor Mirroring del Database, vedere Panoramica di Mirroring del Database. Per informazioni sull'avvio del Monitor del Mirroring del Database, vedere Avviare Monitor del Mirroring del Database (SQL Server Management Studio).

  • Procedure memorizzate di sistema

    È anche possibile ottenere o aggiornare lo stato corrente eseguendo la procedura di sistema memorizzata sp_dbmmonitorresults. Altre stored procedure dbmmonitor consentono di configurare il monitoraggio, modificare i parametri di monitoraggio, visualizzare il periodo di aggiornamento corrente e eliminare il monitoraggio nell'istanza del server.

    Nella tabella seguente vengono presentate le stored procedure per la gestione e l'uso del monitoraggio del mirroring del database, indipendentemente dal Monitor di Mirroring del Database.

    Procedimento Descrizione
    sp_dbmmonitoraddmonitoring Crea un'attività che aggiorna periodicamente le informazioni sullo stato di ogni database con mirroring nell'istanza del server.
    sp_dbmmonitorchangemonitoring Modifica il valore di un parametro di monitoraggio del mirroring del database.
    sp_dbmmonitorhelpmonitoring Restituisce il periodo di aggiornamento corrente.
    sp_dbmmonitorresults Restituisce le righe di stato per un database monitorato e consente di scegliere se la procedura ottiene in anticipo lo stato più recente.
    sp_dbmmonitordropmonitoring Arresta ed elimina il processo di monitoraggio del mirroring per tutti i database nell'istanza del server.

    Le stored procedure di sistema dbmmonitor possono essere usate come complemento al Monitor del Mirroring del database. Ad esempio, anche se il monitoraggio è stato configurato tramite sp_dbmmonitoraddmonitoring, è possibile usare il Monitor del Mirroring del Database per visualizzare lo stato.

Funzionamento del monitoraggio

Questa sezione presenta la tabella di stato del mirroring del database, il processo di monitoraggio del mirroring del database e il monitoraggio, il modo in cui gli utenti possono monitorare lo stato del mirroring del database e come è possibile eliminare il processo di monitoraggio.

Tabella di stato del mirroring del database

Lo stato del mirroring del database viene archiviato in una tabella di stato del mirroring del database interna e non documentata nel database msdb . Questa tabella di stato viene creata automaticamente la prima volta che lo stato del mirroring viene aggiornato nell'istanza del server.

La tabella di stato può essere aggiornata automaticamente o manualmente da un amministratore di sistema, con un intervallo di aggiornamento minimo di 15 secondi. Il minimo di 15 secondi impedisce l'overload delle istanze del server con richieste di stato.

La tabella di stato viene aggiornata automaticamente sia dal Monitor del Mirroring del Database sia dal processo di monitoraggio mirroring del database, se in esecuzione. Il processo di Monitoraggio mirroring del database aggiorna la tabella una volta al minuto per impostazione predefinita.Un amministratore di sistema può specificare un periodo di aggiornamento compreso tra 1 e 120 minuti. Il Monitor Mirroring del Database, al contrario, aggiorna automaticamente la tabella ogni 30 secondi. Per questi aggiornamenti, il job di Monitoraggio Mirroring del Database e il Monitoraggio Mirroring del Database invocano sp_dbmmonitorupdate.

La prima volta che sp_dbmmonitorupdate viene eseguito, crea la tabella stato del mirroring del database e il ruolo fisso del database dbm_monitor nel database msdb. sp_dbmmonitorupdate generalmente aggiorna lo stato del mirroring inserendo una nuova riga nella tabella di stato per ogni database con mirroring nell'istanza del server; per altre informazioni, vedere "Tabella di stato del mirroring del database" più avanti in questo argomento. Questa procedura valuta anche le metriche delle prestazioni nelle nuove righe e tronca le righe precedenti al periodo di conservazione corrente (il valore predefinito è 7 giorni). Per altre informazioni, vedere sp_dbmmonitorupdate (Transact-SQL).

Annotazioni

A meno che monitoraggio mirroring del database non sia attualmente utilizzato da un membro del ruolo predefinito del server sysadmin , la tabella di stato viene aggiornata automaticamente solo se il processo di Monitoraggio mirroring del database esiste e SQL Server Agent è in esecuzione.

Monitoraggio mirroring del database

Il processo di monitoraggio del mirroring del database, Job di Monitoraggio del Mirroring del Database, funziona indipendentemente dal Monitor del Mirroring del Database. Il processo di monitoraggio mirroring del database viene creato automaticamente solo se SQL Server Management Studio viene usato per avviare una sessione di mirroring. Se i comandi ALTER DATABASE database_name SET PARTNER vengono sempre utilizzati per avviare il mirroring, il processo esiste solo se l'amministratore di sistema esegue la stored procedure sp_dbmmonitoraddmonitoring .

Dopo aver creato il processo di Monitoraggio mirroring del database , supponendo che SQL Server Agent sia in esecuzione, per impostazione predefinita il processo viene chiamato una volta al minuto. L'operazione chiama quindi la stored procedure di sistema sp_dbmmonitorupdate.

SQL Server Agent chiama il Database Mirroring Monitor Job una volta al minuto, per impostazione predefinita, e il processo chiama sp_dbmmonitorupdate per aggiornare la tabella di stato. Gli amministratori di sistema possono modificare il periodo di aggiornamento usando la stored procedure di sistema sp_dbmmonitorchangemonitoring e possono visualizzare il periodo di aggiornamento corrente usando la stored procedure di sistema sp_dbmmonitorchangemonitoring . Per altre informazioni, vedere sp_dbmmonitoraddmonitoring (Transact-SQL) e sp_dbmmonitorchangemonitoring (Transact-SQL).

Monitoraggio dello stato del mirroring del database (da amministratori di sistema)

I membri del ruolo predefinito del server sysadmin possono visualizzare e aggiornare la tabella di stato

  • Utilizzare Monitor di Mirroring del Database

    Quando si usa il Monitoraggio Mirroring del Database, un amministratore di sistema può aggiornare manualmente la pagina Stato, l'albero di spostamento o la pagina Cronologia. In questo modo viene aggiornata anche la tabella di stato, a meno che non sia già stata aggiornata entro i 15 secondi precedenti.

    Per visualizzare la cronologia dello stato del mirroring in una determinata istanza del server, l'amministratore di sistema può anche fare clic sul pulsante Cronologia per un'istanza del server (nella pagina Stato ). La cronologia viene visualizzata nella finestra di dialogo Cronologia Mirroring del database. L'amministratore di sistema può visualizzare alcune o tutte le righe nella tabella di stato dell'istanza del server.

    Per informazioni sulle metriche della pagina Stato, vedere le metriche delle prestazioni mostrate dal "Monitoraggio mirroring del database" più avanti in questo argomento.

  • Uso di sp_dbmmonitorresults

    Gli amministratori di sistema possono usare la stored procedure di sistema sp_dbmmonitorresults per visualizzare e, facoltativamente, per aggiornare la tabella di stato, se non è stata aggiornata entro i 15 secondi precedenti. Questa procedura chiama la routine sp_dbmmonitorupdate e restituisce una o più righe di cronologia, a seconda della quantità richiesta nella chiamata di procedura. Per informazioni sullo stato nel set di risultati, vedere sp_dbmmonitorresults (Transact-SQL).

Monitoraggio dello stato del mirroring del database (membri di dbm_monitor)

Come accennato, la prima volta che viene eseguita sp_dbmmonitorupdate , crea il ruolo predefinito del database dbm_monitor nel database msdb . I membri del ruolo predefinito del database dbm_monitor possono visualizzare lo stato di mirroring esistente usando Monitoraggio mirroring del database o la stored procedure sp_dbmmonitorresults . Questi utenti non possono tuttavia aggiornare la tabella dello stato. Per informazioni sull'età dello stato visualizzato, un utente può esaminare gli orari nelle etichette Log principale (<ora>) e Log mirror (<ora>) nella pagina Stato .

I membri del ruolo predefinito del database dbm_monitor dipendono dal processo di Monitoraggio mirroring del database per aggiornare la tabella di stato a intervalli regolari. Se il processo non esiste o SQL Server Agent viene arrestato, lo stato diventa sempre più obsoleto e potrebbe non riflettere più la configurazione della sessione di mirroring. Dopo un failover, ad esempio, può sembrare che i partner condividano lo stesso ruolo, principale o mirror, oppure il server principale corrente può essere indicato come mirror e, viceversa, il server mirror corrente come principale.

Eliminazione dell'attività di monitoraggio del mirroring del database

Il processo di monitoraggio del mirroring del database, Monitoraggio del mirroring del database, persiste fino a quando non viene eliminato. Il processo di monitoraggio deve essere gestito dall'amministratore di sistema. Per eliminare il processo di Monitoraggio del mirroring del database, usare sp_dbmmonitordropmonitoring. Per altre informazioni, vedere sp_dbmmonitordropmonitoring (Transact-SQL).

Stato visualizzato dal Monitor mirroring del database

La pagina Stato del Monitor di Mirroring del Database descrive i partner e lo stato della sessione di mirroring. Lo stato include metriche delle prestazioni, ad esempio lo stato del log delle transazioni e altre informazioni che consentono di stimare attualmente il tempo necessario per completare un failover e il potenziale di perdita di dati, se la sessione non è sincronizzata. Inoltre, nella pagina Stato vengono visualizzati lo stato e le informazioni sulla sessione di mirroring in generale.

Annotazioni

Per un'introduzione al Database Mirroring Monitor e alla pagina Status, vedere Strumenti per il monitoraggio dello stato del mirroring del database, citati in precedenza in questo argomento.

Le informazioni fornite per ognuna di queste informazioni sono riepilogate nelle sezioni seguenti.

Partner commerciali

Nella pagina Stato vengono visualizzate le informazioni seguenti per ognuno dei partner:

  • Istanza del server

    Nome dell'istanza del server il cui stato è visualizzato nella riga Stato .

  • Ruolo corrente

    Ruolo corrente dell'istanza del server. Gli stati possibili sono:

    • Principale

    • Specchio

  • Stato del mirroring

    Gli stati possibili sono:

    • Sconosciuto

    • Sincronizzazione in corso

    • Sincronizzato

    • Sospeso

    • Disconnesso

  • Connessione del testimone

    Stato della connessione del witness. Gli stati possibili sono:

    • Sconosciuto

    • Connesso

    • Sconnesso.

Accedere al server principale

Nella pagina Stato vengono visualizzate le informazioni seguenti sullo stato del log nel server principale a partire dall'ora indicata:

  • Log non inviato

    Quantità di log in attesa nella coda di invio in kilobyte (KB).

  • Transazione non inviata più vecchia

    Tempo di memorizzazione della transazione non inviata meno recente nella coda di invio. Il tempo di memorizzazione di questa transazione indica la quantità di transazioni, espressa in minuti, non ancora inviata all'istanza del server mirror. Questo valore consente di misurare la potenziale perdita di dati in termini di tempo.

  • Tempo di invio del log (stimato)

    Il numero stimato di minuti richiesti dall'istanza del server principale per inviare il log attualmente presente nella coda di invio all'istanza del server mirror, calcolato sulla base della frequenza di invio corrente. Il tempo effettivo per inviare il log sarà influenzato dalla frequenza delle transazioni in ingresso, che possono variare in modo significativo. Tuttavia, il valore Tempo di invio del log (stimato) può essere utile per stimare approssimativamente il tempo necessario per un failover manuale.

  • Frequenza di invio corrente

    Frequenza con cui le transazioni vengono inviate all'istanza del server mirror in KB al secondo.

  • Frequenza corrente delle nuove transazioni

    Frequenza alla quale le transazioni in entrata vengono immesse nel log del server principale, espressa in KB al secondo. Per stabilire se il mirroring è in ritardo, procede secondo le previsioni o sta recuperando, confrontare questo valore con il valore Tempo stimato per l'invio del log .

Accedere al server mirror

Nella pagina Stato vengono visualizzate le informazioni seguenti sullo stato del log nel server mirror a partire dall'ora indicata:

  • Log non ripristinato

    Quantità di registro in attesa nella coda di riscrittura in KB.

  • Tempo di ripristino del log (stimato)

    Numero approssimativo di minuti necessari per l'applicazione del log presente nella coda di rollforward al database mirror.

  • Tasso di ripristino attuale

    Frequenza alla quale le transazioni vengono ripristinate nel database mirror, espressa in KB al secondo.

Sessione di mirroring

Inoltre, nella pagina Stato vengono visualizzate le informazioni seguenti sulla sessione di mirroring:

  • Carico aggiuntivo del commit di mirroring

    Ritardo medio per transazione in millisecondi (rilevante solo in modalità a sicurezza elevata). Questo ritardo rappresenta il sovraccarico che si verifica mentre l'istanza del server principale attende che l'istanza del server mirror scriva il record di log della transazione nella coda di redo.

  • Tempo necessario per inviare e ripristinare tutto il log corrente (stimato)

    Tempo stimato necessario per inviare tutto il registro non inviato di cui è stato eseguito il commit nel server principale e ripristinare tutto il registro attualmente nella coda di ripetizione. Questa stima può essere inferiore alla somma dei valori dei campi Tempo stimato per inviare il log e Tempo stimato per ripristinare il log, perché l'invio e il ripristino possono funzionare in parallelo.

  • Indirizzo del testimone

    Indirizzo di rete dell'istanza del server di controllo del mirroring. Per informazioni sul formato di questo indirizzo, vedere Specificare un indirizzo di rete del server (Mirroring del database).

  • Modalità operativa

    La modalità operativa della sessione di mirroring del database:

    • Prestazioni elevate (asincrona)

    • Sicurezza elevata senza failover automatico (sincrono)

    • Sicurezza elevata con failover automatico (sincrono)

Origini aggiuntive di informazioni su un database con mirroring

Oltre a usare le stored procedure monitoraggio mirroring del database e dbmmonitor per monitorare un database con mirroring e configurare avvisi sulle variabili di prestazioni monitorate, SQL Server 2014 fornisce viste del catalogo, contatori delle prestazioni e notifiche degli eventi per il mirroring del database.

Contenuto della sezione

Metadati del mirroring del database

Ogni sessione di mirroring del database è descritta nei metadati esposti tramite il catalogo o le viste a gestione dinamica seguenti:

  • sys.database_mirroring

    In questa vista vengono visualizzati i metadati del mirroring del database per ogni database con mirroring in un'istanza del server. Per altre informazioni, vedere sys.database_mirroring (Transact-SQL).

  • sys.database_mirroring_endpoints

    La vista del catalogo sys.database_mirroring_endpoints visualizza informazioni sull'endpoint del mirroring del database dell'istanza del server. Per altre informazioni, vedere sys.database_mirroring_endpoints (Transact-SQL).

  • sys.database_mirroring_witnesses

    Questa vista del catalogo visualizza i metadati del mirroring del database per ogni sessione in cui un'istanza del server è il server di controllo del mirroring. Per altre informazioni, vedere sys.database_mirroring_witnesses (Transact-SQL).

  • sys.dm_db_mirroring_connections

    Questa vista a gestione dinamica restituisce una riga per ogni connessione di rete di mirroring del database.

    Per altre informazioni, vedere sys.dm_db_mirroring_connections (Transact-SQL).

Contatori delle prestazioni del mirroring del database

I contatori delle prestazioni consentono di monitorare le prestazioni del mirroring del database. Ad esempio, è possibile esaminare il contatore Ritardo transazioni per verificare se il mirroring del database influisce sulle prestazioni nel server principale, è possibile esaminare i contatori Coda di rollforward e Coda di invio log per verificare l'integrità del database mirror con il database principale. È possibile esaminare il contatore Byte log inviati/sec per monitorare la quantità di log inviata al secondo.

In Performance Monitor su entrambi i partner, i contatori delle prestazioni sono disponibili nell'oggetto di prestazioni del mirroring del database (SQLServer:Database Mirroring). Per ulteriori informazioni, vedere SQL Server, Oggetto di mirroring del database.

Per avviare il monitoraggio delle prestazioni

Notifiche degli eventi di mirroring del database

Le notifiche degli eventi sono un tipo speciale di oggetto di database. Le notifiche degli eventi vengono eseguite in risposta a un'ampia gamma di istruzioni DDL (Data Definition Language) Transact-SQL e eventi di traccia SQL e inviano informazioni sugli eventi del server e del database a un servizio Service Broker.

Per il mirroring del database sono disponibili gli eventi seguenti:

Attività correlate

Stored procedure

Vedere anche

Mirroring del database (SQL Server)
Concetti relativi al provider WMI per eventi del server