Condividi tramite


Monitoraggio dello stato di mirroring

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

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

  • Verificare il funzionamento del mirroring.

    Nello stato di base sono incluse informazioni che indicano se le due istanze del server sono attive, se i server sono connessi e se il log viene spostato dal database principale al database mirror.

  • Determinare se il database mirror è in grado di mantenersi aggiornato rispetto al database principale.

    Durante la modalità a prestazioni elevate, è possibile che il server principale sviluppi un backlog di record di log non inviati che devono essere inviati dal server principale al server mirror. In qualsiasi modalità operativa, inoltre, è possibile che il server mirror sviluppi un backlog di record di log non ripristinati scritti nel file di log, ma ancora da ripristinare nel database mirror.

  • Determinare quanti dati sono stati persi quando l'istanza del server principale si è resa non disponibile durante la modalità a prestazioni elevate.

    È possibile determinare la perdita di dati osservando la quantità di log di transazioni non inviate, se presenti, e l'intervallo di tempo in cui è stato eseguito il commit delle transazioni perse nel server principale.

  • Confrontare le prestazioni correnti con quelle passate.

    In caso di problemi, un amministratore di database può visualizzare una cronologia delle prestazioni del mirroring utile per comprendere lo stato corrente. La consultazione della cronologia consente all'utente di rilevare le tendenze nelle prestazioni, individuare modelli dei problemi relativi alle prestazioni, ad esempio gli orari in cui la rete è lenta o il numero di comandi immessi nel log è eccessivo.

  • Risolvere i problemi che causano la riduzione del flusso di dati tra i partner per il mirroring.

  • Impostare i valori di soglia degli avvisi in base alle misurazioni chiave delle prestazioni.

    Se una nuova riga di stato contiene un valore superiore a un valore di 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 ulteriori informazioni, vedere Utilizzo di valori di soglia avvisi sulle misurazioni delle prestazioni di mirroring.

Strumenti per il monitoraggio dello stato di mirroring del database

Lo stato di mirroring può essere monitorato utilizzando Monitoraggio 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 aggiunto al ruolo predefinito del database dbm_monitor nel database msdb da un amministratore di sistema. Utilizzando questi strumenti, un amministratore di sistema può anche aggiornare manualmente lo stato di mirroring.

Nota

Gli amministratori di sistema possono anche configurare e visualizzare i valori di soglia degli avvisi per le misurazioni chiave delle prestazioni. Per ulteriori informazioni, vedere Utilizzo di valori di soglia avvisi sulle misurazioni delle prestazioni di mirroring.

  • Monitoraggio mirroring del database

    Monitoraggio mirroring del database è uno strumento con interfaccia utente grafica che consente agli amministratori di sistema di visualizzare e aggiornare lo stato e di configurare i valori di soglia di avviso per diverse misurazioni chiave delle prestazioni. Questo strumento può inoltre essere utilizzato dai membri del ruolo predefinito del database dbm_monitor per visualizzare la riga più recente della tabella dello stato di mirroring, benché non possano aggiornare la tabella stessa.

    Questo strumento visualizza lo stato di un database selezionato nella pagina a schede Stato, inclusa la metrica relativa alle prestazioni. 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. Lo strumento tenta di aggiornare la tabella dello stato a intervalli di 30 secondi. L'aggiornamento ha esito positivo solo se la tabella non è stata aggiornata entro 15 secondi e l'utente è un membro del ruolo predefinito del server sysadmin. Per un riepilogo delle informazioni contenute nella pagina Stato, vedere Stato visualizzato da Monitoraggio mirroring del database, di seguito in questo argomento.

    Per un'introduzione all'interfaccia di Monitoraggio mirroring del database, vedere Panoramica di Monitoraggio mirroring del database. Per informazioni sull'avvio di Monitoraggio mirroring del database, vedere Procedura: Avvio di Monitoraggio mirroring del database.

  • Stored procedure di sistema

    È inoltre possibile recuperare o aggiornare lo stato corrente eseguendo la stored procedure di sistema sp_dbmmonitorresults. Altre stored procedure dbmmonitor consentono di impostare il monitoraggio, modificare i parametri di monitoraggio, visualizzare il periodo di aggiornamento corrente, nonché rimuovere il monitoraggio nell'istanza del server.

    Nella tabella seguente vengono illustrate le stored procedure per la gestione e l'utilizzo del monitoraggio del mirroring del database in modo indipendente da Monitoraggio mirroring del database.

    Stored procedure

    Descrizione

    sp_dbmmonitoraddmonitoring

    Crea un processo che aggiorna periodicamente le informazioni relative allo stato per ogni database con mirroring nell'istanza del server.

    sp_dbmmonitorchangemonitoring

    Cambia il valore di un parametro del monitoraggio di mirroring del database.

    sp_dbmmonitorhelpmonitoring

    Restituisce il periodo di aggiornamento corrente.

    sp_dbmmonitorresults

    Restituisce le righe relative allo stato per un database monitorato e consente di scegliere se la stored procedure ottiene l'ultimo stato preliminarmente.

    sp_dbmmonitordropmonitoring

    Interrompe ed elimina il processo di monitoraggio di mirroring per tutti i database nell'istanza del server.

    Le stored procedure di sistema dbmmonitor possono essere utilizzate a complemento di Monitoraggio mirroring del database. Anche se il monitoraggio è stato configurato utilizzando sp_dbmmonitoraddmonitoring, ad esempio, è possibile utilizzare Monitoraggio mirroring del database per visualizzare lo stato.

Funzionamento del monitoraggio

Questa sezione contiene informazioni sulla tabella relativa allo stato del mirroring del database, sul processo di monitoraggio del mirroring del database, sullo strumento di monitoraggio, sulla modalità di monitoraggio dello stato del mirroring del database, nonché sulla modalità di eliminazione del processo di monitoraggio.

Tabella dello stato di mirroring del database

Lo stato di mirroring del database viene archiviato in una tabella dello stato di mirroring del database interna non documentata contenuta nel database msdb. Questa tabella viene automaticamente creata al primo aggiornamento dello stato di mirroring nell'istanza del server.

La tabella dello stato può essere aggiornata in modo automatico o manuale da un amministratore di sistema, con un intervallo di aggiornamento minimo di 15 secondi. Il valore minimo di 15 secondi impedisce l'overload delle istanze del server con richieste di stato.

La tabella dello stato viene aggiornata automaticamente sia da Monitoraggio mirroring del database sia dal processo di Monitoraggio di mirroring del database, se in esecuzione. Processo di Monitoraggio mirroring del database aggiorna la tabella una volta ogni minuto per impostazione predefinita. Un amministratore di sistema può specificare un periodo di aggiornamento compreso tra 1 e 120 minuti. Monitoraggio mirroring del database, invece, aggiorna automaticamente la tabella ogni 30 secondi. Per questi aggiornamenti, Processo di Monitoraggio mirroring del database e Monitoraggio mirroring del database chiamano sp_dbmmonitorupdate.

Alla prima esecuzione, sp_dbmmonitorupdate crea la tabella dello stato di mirroring del database e il ruolo predefinito del database dbm_monitor nel database msdb. sp_dbmmonitorupdate aggiorna in genere lo stato del mirroring inserendo una nuova riga nella tabella dello stato per ogni database con mirroring nell'istanza del server. Per ulteriori informazioni, vedere "Tabella dello stato di mirroring del database" di seguito in questo argomento. Questa stored procedure restituisce inoltre le misurazioni delle prestazioni nelle nuove righe e tronca le righe antecedenti il periodo di memorizzazione corrente (il valore predefinito è 7 giorni). Per ulteriori informazioni, vedere sp_dbmmonitorupdate (Transact-SQL).

Nota

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

Processo di Monitoraggio mirroring del database

Processo di Monitoraggio mirroring del database funziona in modo indipendente da Monitoraggio mirroring del database e viene creato automaticamente solo se si utilizza SQL Server Management Studio per avviare una sessione di mirroring. Se per avviare il mirroring vengono sempre utilizzati i comandi ALTER DATABASE database_name SET PARTNER, il processo esiste solo se l'amministratore di sistema esegue la stored procedure sp_dbmmonitoraddmonitoring.

Dopo la creazione di Processo di monitoraggio mirroring del database, supponendo che SQL Server Agent sia in esecuzione, il processo viene chiamato una volta al minuto, per impostazione predefinita. Il processo chiama quindi la stored procedure del sistema sp_dbmmonitorupdate.

SQL Server Agent chiama Processo di Monitoraggio mirroring del database una volta al minuto, per impostazione predefinita, e il processo chiama sp_dbmmonitorupdate per aggiornare la tabella dello stato. Gli amministratori di sistema possono modificare il periodo di aggiornamento utilizzando la stored procedure di sistema sp_dbmmonitorchangemonitoring e visualizzare il periodo di aggiornamento corrente utilizzando la stored procedure di sistema sp_dbmmonitorchangemonitoring. Per ulteriori informazioni, vedere sp_dbmmonitoraddmonitoring (Transact-SQL) e sp_dbmmonitorchangemonitoring (Transact-SQL).

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

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

  • Utilizzo di Monitoraggio mirroring del database

    L'utilizzo di Monitoraggio mirroring del database consente a un amministratore di sistema di aggiornare manualmente la pagina Stato, l'albero di esplorazione o la pagina Cronologia. Questa operazione consente inoltre di aggiornare la tabella dello stato, a meno che non sia già stata aggiornata entro i 15 secondi precedenti.

    Per visualizzare la cronologia dello stato di mirroring in una determinata istanza del server, l'amministratore di sistema può fare clic sul pulsante Cronologia relativo a tale istanza del server nella pagina Stato. La cronologia viene visualizzata nella finestra di dialogo Cronologia mirroring del database. In questa finestra di dialogo l'amministratore di sistema può inoltre visualizzare alcune o tutte le righe della tabella dello stato dell'istanza del server.

    Per informazioni sulle misurazioni della pagina Stato, vedere Misurazioni delle prestazioni visualizzate da Monitoraggio mirroring del database di seguito in questo argomento.

  • Utilizzo di sp_dbmmonitorresults

    Gli amministratori di sistema possono utilizzare la stored procedure di sistema sp_dbmmonitorresults per visualizzare e, facoltativamente, aggiornare la tabella dello stato, se non è stata aggiornata entro i 15 secondi precedenti. Questa stored procedure chiama la stored procedure sp_dbmmonitorupdate e restituisce una o più righe di cronologia, in base a quanto richiesto nella chiamata. Per informazioni sullo stato nel set di risultati, vedere sp_dbmmonitorresults (Transact-SQL).

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

Come indicato in precedenza, alla prima esecuzione di sp_dbmmonitorupdate viene creato 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 utilizzando Monitoraggio mirroring del database o la stored procedure sp_dbmmonitorresults. Questi utenti non possono tuttavia aggiornare la tabella dello stato. Per conoscere l'ora dello stato visualizzato, osservare l'ora indicata in corrispondenza delle etichette Log principale (<time>) e Log mirror (<time>) nella pagina Stato.

I membri del ruolo predefinito del database dbm_monitor dipendono da Processo di Monitoraggio mirroring del database per l'aggiornamento della tabella dello stato a intervalli regolari. Se il processo non esiste o se SQL Server Agent è stato interrotto, lo stato non è più aggiornato 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 di Processo di Monitoraggio mirroring del database

Processo di Monitoraggio mirroring del database rimane presente finché non viene eliminato. Il processo di monitoraggio deve essere gestito dall'amministratore di sistema. Per eliminare Processo di Monitoraggio mirroring del database, utilizzare sp_dbmmonitordropmonitoring. Per ulteriori informazioni, vedere sp_dbmmonitordropmonitoring (Transact-SQL).

Stato visualizzato da Monitoraggio mirroring del database

Nella pagina Stato di Monitoraggio mirroring del database vengono descritti i partner e lo stato della sessione di mirroring. Lo stato include la metrica relativa alle prestazioni, ad esempio lo stato del log delle transazioni, e altre informazioni utili per consentire la valutazione effettiva del tempo necessario per completare un failover, nonché della potenziale perdita di dati, se la sessione non è sincronizzata. In questa pagina, inoltre, vengono visualizzati lo stato e informazioni generali relative alla sessione di mirroring.

Nota

Per un'introduzione a Monitoraggio mirroring del database e alla pagina Stato, vedere Strumenti per il monitoraggio dello stato del mirroring del database, più indietro in questo argomento.

Le informazioni disponibili per ogni strumento vengono riepilogate nelle sezioni seguenti.

Partner

Nella pagina Stato vengono visualizzate le informazioni seguenti per ogni partner:

  • Istanza del server

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

  • Ruolo corrente

    Ruolo corrente dell'istanza del server. I possibili stati sono i seguenti:

    • Server principale

    • Server mirror

  • Stato mirroring

    I possibili stati sono i seguenti:

    • Sconosciuto

    • Sincronizzazione in corso

    • Sincronizzato

    • Sospeso

    • Disconnesso

  • Connessione server di controllo del mirroring del database

    Stato di connessione del server di controllo del mirroring del database. I possibili stati sono i seguenti:

    • Sconosciuto

    • Connesso

    • Disconnesso

Log del server principale

La pagina Stato consente di visualizzare le informazioni seguenti relative allo stato del log nel server principale al momento indicato:

  • Log non inviato

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

  • Transazione non inviata meno recente

    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 stimato per l'invio del log

    Tempo stimato, espresso in minuti, richiesto dall'istanza del server principale per inviare il log attualmente presente nella coda di invio all'istanza del server mirror in base alla velocità di invio corrente. Il tempo effettivo richiesto per l'invio del log è soggetto alla velocità delle transazioni in entrata, che può subire notevoli variazioni. Il valore Tempo stimato per l'invio del log, tuttavia, può essere utile per valutare approssimativamente il tempo richiesto per un failover manuale.

  • Velocità di invio corrente

    Velocità alla quale le transazioni vengono inviate all'istanza del server mirror, espressa in KB al secondo.

  • Frequenza corrente 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.

Log del server mirror

La pagina Stato consente di visualizzare le informazioni seguenti relative allo stato del log nel server mirror al momento indicato:

  • Log non ripristinato

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

  • Tempo stimato per il ripristino del log

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

  • Velocità di ripristino corrente

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

Sessione di mirroring

Nella pagina Stato, inoltre, vengono visualizzate le informazioni seguenti relative alla sessione di mirroring:

  • Overhead commit mirror

    Ritardo medio per transazione, espresso in millisecondi, rilevanti solo nella modalità a sicurezza elevata. Questo ritardo rappresenta la quantità di overhead generato mentre l'istanza del server principale è in attesa che l'istanza del server mirror scriva il record di log della transazione nella coda di rollforward.

  • Tempo stimato per l'invio e il ripristino dell'intero log corrente

    Tempo stimato necessario per inviare l'intero log non inviato di cui è stato eseguito il commit al server principale e di ripristinare l'intero log attualmente presente nella coda di rollforward. Questo valore può essere inferiore alla somma dei valori dei campi Tempo stimato per l'invio del log e Tempo stimato per il ripristino del log, perché l'invio e il ripristino possono avvenire in parallelo.

  • Indirizzo server di controllo del mirroring

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

  • Modalità operativa

    Modalità operativa della sessione di mirroring del database:

    • Prestazioni elevate (asincrona)

    • Protezione elevata senza failover automatico (sincrona)

    • Protezione elevata con failover automatico (sincrona)