Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Si applica a:SQL Server
Questa sezione presenta il monitoraggio del mirroring del database e le stored procedure di sistema sp_dbmmonitor , descrive il funzionamento del monitoraggio del mirroring del database, incluso il funzionamento del processo Monitoraggio mirroring del database, e fornisce un riepilogo delle informazioni che è possibile monitorare sulle sessioni di mirroring del database. Vengono inoltre fornite informazioni generali sulla definizione di valori soglia degli avvisi per un set di eventi di mirroring del database predefiniti e sull'impostazione di avvisi per qualsiasi evento di mirroring del database.
È possibile monitorare un database con mirroring durante una sessione di mirroring per verificare se i dati fluiscono correttamente. Per impostare e gestire il monitoraggio per uno o più database in mirroring su un'istanza del server, è possibile usare Monitor di mirroring del database oppure le stored procedure di sistema sp_dbmmonitor.
Un processo di monitoraggio del mirroring del database, Database Mirroring Monitor Job, viene eseguito in background, indipendentemente da Database Mirroring Monitor. SQL Server Agent chiama a intervalli regolari (per impostazione predefinita ogni minuto) il processo Monitoraggio mirroring del database, il quale chiama a sua volta una stored procedure che aggiorna lo stato di mirroring. Se si utilizza SQL Server Management Studio per avviare una sessione di mirroring, il processo Monitoraggio mirroring del database viene creato automaticamente. Tuttavia, se si usa ALTER DATABASE<solo database_name>SET PARTNER per avviare il mirroring, è necessario creare il processo eseguendo una stored procedure.
Contenuto dell'argomento
Monitoraggio dello stato di mirroring
Per configurare e gestire il monitoraggio per uno o più database di cui è stato eseguito il mirroring su un'istanza del server, è possibile utilizzare Monitoraggio del mirroring del database oppure 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. Inoltre, in qualsiasi modalità operativa, il server mirror può accumulare un arretrato di record del log non ancora ripristinati, già scritti nel file di log ma che devono ancora essere ripristinati 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 le soglie di avviso in base alle misurazioni chiave delle prestazioni.
Se una nuova riga di stato contiene un valore superiore a 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 per le metriche delle prestazioni del mirroring (SQL Server).
Strumenti per il monitoraggio dello stato di mirroring del database
Lo stato del mirroring può essere monitorato mediante Monitoraggio del mirroring del database o la stored procedure di sistema sp_dbmmonitorresults. Questi strumenti possono essere usati per monitorare il mirroring del database su qualsiasi database con mirroring nell'istanza del server locale sia dagli amministratori di sistema, ovvero i membri del ruolo predefinito del server sysadmin, sia dagli utenti aggiunti da un amministratore di sistema al ruolo predefinito del database dbm_monitor nel database msdb. 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 le soglie di avviso per le misurazioni chiave delle prestazioni. Per altre informazioni, vedere Utilizzo delle soglie di avviso e degli avvisi per le metriche delle prestazioni del mirroring (SQL Server).
Monitor del 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 le soglie di avviso per diverse misurazioni chiave delle prestazioni. Questo strumento può essere anche usato 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 riportate nella pagina Stato, vedere Stato visualizzato da Monitoraggio del mirroring del database, più avanti in questo argomento.
Per un'introduzione all'interfaccia di Monitoraggio mirroring del database, vedere Database Mirroring Monitor Overview. Per informazioni sull'avvio di Monitoraggio mirroring del database, vedere Avviare Monitoraggio mirroring del database (SQL Server Management Studio).
Stored procedure di sistema
È anche possibile ottenere 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.
La tabella seguente presenta le stored procedure per gestire e utilizzare il monitoraggio del mirroring del database in modo indipendente da Monitoraggio mirroring del database.
Procedura Descrizione sp_dbmmonitoraddmonitoring Crea un processo che aggiorna periodicamente le informazioni sullo stato di 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 di stato per un database monitorato e consente di scegliere se la procedura recupera prima lo stato più recente. sp_dbmmonitordropmonitoring Arresta 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 del mirroring del database. Ad esempio, anche se il monitoraggio è stato configurato tramite sp_dbmmonitoraddmonitoring, è possibile usare Monitoraggio del 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 di stato viene aggiornata automaticamente sia da Monitoraggio del mirroring del database sia dal processo di monitoraggio del mirroring del database, se in esecuzione. IlProcesso 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. Il monitor del mirroring del database, invece, aggiorna automaticamente la tabella ogni 30 secondi. Per questi aggiornamenti, il Processo di Monitoraggio mirroring del database e Monitoraggio mirroring del database chiamano sp_dbmmonitorupdate.
Alla prima esecuzione di sp_dbmmonitorupdate , vengono creati la tabella di stato di mirroring del database e il ruolo predefinito del database dbm_monitor nel database msdb . sp_dbmmonitorupdate di solito aggiorna lo stato del mirroring inserendo una nuova riga nella tabella di stato per ogni database con mirroring sull'istanza del server. Per altre informazioni, vedere "Tabella dello stato di mirroring del database" più avanti in questo argomento. Questa procedura valuta inoltre le metriche delle prestazioni presenti nelle nuove righe e tronca le righe più vecchie dell'attuale periodo di conservazione (il valore predefinito è 7 giorni). Per altre 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 il processo Monitoraggio mirroring del database esiste e se SQL Server Agent è in esecuzione.
Processo di monitoraggio del mirroring del database
Il processo di monitoraggio del mirroring del database, Database Mirroring Monitor Job, funziona in modo indipendente da Database Mirroring Monitor. Il processo Monitoraggio del mirroring del database viene creato automaticamente solo se viene usato SQL Server Management Studio per avviare una sessione di mirroring. Se ALTER DATABASEdatabase_nameSET i comandi PARTNER vengono sempre usati per avviare il mirroring, il processo esiste solo se l'amministratore di sistema esegue la stored procedure sp_dbmmonitoraddmonitoring .
Dopo la creazione del processo di monitoraggio del mirroring del database, se SQL Server Agent è in esecuzione, il processo viene eseguito una volta al minuto, per impostazione predefinita. Il processo chiama quindi la stored procedure di sistema sp_dbmmonitorupdate.
SQL Server Agent chiama il processo di monitoraggio del mirroring del database 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 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 Monitor del mirroring del database
Quando si utilizza il Monitor di mirroring del database, un amministratore di sistema può aggiornare manualmente la pagina Stato, l'albero di navigazione 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 del 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 metriche della pagina Stato, vedere Metriche delle prestazioni visualizzate da "Monitoraggio mirroring del database", più avanti in questo argomento.
Utilizzo di sp_dbmmonitorresults
Gli amministratori di sistema possono usare 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 procedura archiviata chiama la procedura sp_dbmmonitorupdate e restituisce una o più righe della cronologia, in base alla quantità richiesta nella chiamata alla procedura. Per informazioni sullo stato nel set di risultati, vedere sp_dbmmonitorresults (Transact-SQL).
Monitoraggio dello stato di mirroring del database (da parte dei 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 di database dbm_monitor possono visualizzare lo stato corrente del mirroring utilizzando il Monitoraggio del mirroring del database o la stored procedure sp_dbmmonitorresults. Questi utenti non possono tuttavia aggiornare la tabella dello stato. Per sapere da quanto tempo risale lo stato visualizzato, è possibile controllare gli orari nelle etichette Log principale (<ora>) e Log mirror (<ora>) nella pagina Stato.
I membri del ruolo predefinito di database dbm_monitor dipendono dal processo di monitoraggio del mirroring del database per aggiornare la tabella di stato a intervalli regolari. Se il processo non esiste o SQL Server Agent è stato arrestato, lo stato diventa sempre più obsoleto ed è possibile che non rifletta più la configurazione della sessione di mirroring. Ad esempio, dopo un failover, potrebbe sembrare che i partner abbiano lo stesso ruolo, principale o mirror, oppure il server principale corrente potrebbe essere visualizzato come mirror, mentre il server mirror corrente viene visualizzato come principale.
Eliminazione del processo di monitoraggio del mirroring del database
Il processo di monitoraggio del mirroring del database, Database Mirroring Monitor Job, rimane finché non viene eliminato. Il processo di monitoraggio deve essere gestito dall'amministratore di sistema. Per eliminare il processo di monitoraggio del mirroring del database, utilizzare sp_dbmmonitordropmonitoring. Per altre informazioni, vedere sp_dbmmonitordropmonitoring (Transact-SQL).
Stato visualizzato dal Monitoraggio mirroring del database
La pagina Stato di Monitoraggio del mirroring del database descrive i partner, nonché 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 al Monitor di mirroring del database e alla pagina Stato, vedere Strumenti per il monitoraggio dello stato del mirroring del database, in precedenza 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. Gli stati possibili sono:
Principale
Specchia
Stato della duplicazione
Gli stati possibili sono:
Sconosciuto
Sincronizzazione in corso
Sincronizzato
Sospeso
Disconnesso
Connessione del server testimone
Stato della connessione del witness. Gli stati possibili sono:
Sconosciuto
Connesso
Non connesso.
Accedi al 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
Anzianità della transazione non inviata meno recente nella coda di invio. L'anzianità di questa transazione indica quanti minuti di transazioni non sono ancora stati inviati 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.
Tasso 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, rimane al passo o sta recuperando, confronta questo valore con il valore Tempo stimato per l'invio del log.
Accedere al 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 attuale
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:
Sovraccarico del commit di mirroring
Ritardo medio per transazione, espresso in millisecondi, rilevanti solo nella modalità a sicurezza elevata. Questo ritardo rappresenta la quantità di sovraccarico generato mentre l'istanza del server principale attende che l'istanza del server mirror scriva il record del log della transazione nella coda di ripristino.
Tempo stimato per l'invio e il ripristino dell'intero log corrente
Tempo stimato per inviare tutto il log non ancora inviato di cui è stato eseguito il commit nel database primario e ripristinare tutto il log attualmente presente nella coda di ripristino. 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 witness. 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)
Protezione elevata senza failover automatico (sincrona)
Protezione elevata con failover automatico (sincrona)
Fonti di informazioni aggiuntive su un database con mirroring
Oltre a utilizzare il Monitor di mirroring del database e le stored procedure dbmmonitor per monitorare un database con mirroring e configurare avvisi sulle variabili di prestazione monitorate, SQL Server fornisce viste del catalogo, contatori delle prestazioni e notifiche di evento per il mirroring del database.
Contenuto della sezione
Metadati di mirroring del database
Ogni sessione di mirroring del database è descritta nei metadati esposti attraverso le seguenti visualizzazioni di catalogo o di gestione dinamica:
sys.database_mirroring
In questa vista vengono visualizzati i metadati di mirroring del database per ogni database sottoposto a mirroring in un'istanza del server. Per altre informazioni, vedere sys.database_mirroring (Transact-SQL).
sys.database_mirroring_endpoints
La vista di catalogo sys.database_mirroring_endpoints visualizza informazioni sull'endpoint di mirroring del database dell'istanza del server. Per altre informazioni, vedere sys.database_mirroring_endpoints (Transact-SQL).
sys.database_mirroring_witnesses
Questa visualizzazione del catalogo mostra i metadati sul mirroring del database per ogni sessione in cui un'istanza del server è il testimone. 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 di mirroring del database
I contatori delle prestazioni consentono di monitorare le prestazioni di mirroring del database. Ad esempio, è possibile esaminare il contatore Ritardo delle transazioni per verificare se il mirroring del database influisce sulle prestazioni del server principale e i contatori Coda di ripristino e Coda di invio del log per verificare quanto bene il database mirror riesca a tenere il passo con il database principale. È possibile esaminare il contatore Byte di log inviati/sec per monitorare la quantità di log inviata al secondo.
In Monitoraggio prestazioni, in uno dei due partner, i contatori delle prestazioni sono disponibili nell'oggetto prestazioni di mirroring del database (SQLServer:Database Mirroring). Per altre informazioni, vedere Oggetto Database Mirroring di SQL Server.
Per avviare il Performance Monitor
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 una serie di istruzioni DDL (Data Definition Language) Transact-SQL ed eventi di Traccia SQL e inviano informazioni su eventi di server e database a un servizio di Service Broker.
Per il mirroring del database sono disponibili gli eventi seguenti:
Classe di eventoDatabase Mirroring State Change
Indica quando lo stato di mirroring di un database con mirroring cambia. Per altre informazioni, vedere Database Mirroring State Change Event Class.
Classe di eventoAudit Database Mirroring Login
Segnala i messaggi di controllo correlati alla sicurezza di trasporto per il mirroring del database. Per altre informazioni, vedere Audit Database Mirroring Login Event Class.
Attività correlate
Usare soglie di avviso e avvisi per le metriche delle prestazioni del mirroring (SQL Server)
Avvia Monitoraggio del mirroring del database (SQL Server Management Studio)
Visualizzare lo stato di un database con mirroring (SQL Server Management Studio)
Stored procedure
Vedi anche
Mirroring del database (SQL Server)
Concetti del provider WMI per gli eventi del server