sys.dm_database_replica_states (database SQL di Azure)
Si applica a: Database SQL di Azure Istanza gestita di SQL di Azure
Restituisce informazioni sullo stato per ogni database che partecipa alle repliche primarie e secondarie. In una replica secondaria restituisce una riga per ogni database secondario nell'istanza di . Nella replica primaria restituisce una riga per il database primario e una riga aggiuntiva per ogni database secondario.
Importante
A seconda dell'azione e degli stati di livello superiore, è possibile che le informazioni sullo stato del database non siano disponibili o non aggiornate. I valori hanno inoltre pertinenza esclusivamente locale.
Nome colonna | Tipo di dati | Descrizione (sulla replica primaria) |
---|---|---|
database_id | int | Identificatore del database. In database SQL di Azure i valori sono univoci all'interno di un database singolo o di un pool elastico, ma non all'interno di un server logico. |
group_id | uniqueidentifier | Identificatore del gruppo di disponibilità a cui appartiene il database. |
replica_id | uniqueidentifier | Identificatore della replica di disponibilità all'interno del gruppo di disponibilità. |
group_database_id | uniqueidentifier | Identificatore del database nel gruppo di disponibilità. L'identificatore è identico su ogni replica a cui è stato aggiunto questo database. |
is_local | bit | Se il database di disponibilità è locale, uno di: 0 = Il database non è locale per l'istanza di SQL Server. 1 = Il database è locale rispetto all'istanza del server. |
is_primary_replica | bit | Restituisce 1 se la replica è primaria o 0 se si tratta di una replica secondaria nel gruppo di disponibilità a cui appartiene il database. Questo non fa riferimento al database primario o secondario in un gruppo di disponibilità distribuito o a una relazione di replica geografica attiva. Si applica a: SQL Server 2014 (12.x) e versioni successive. |
synchronization_state | tinyint | Stato di spostamento dei dati, uno dei valori seguenti. 0 = Non sincronizzata. Per un database primario, indica che il database non è pronto per sincronizzare il log delle transazioni con i database secondari corrispondenti. Per un database secondario, indica che il database non ha avviato la sincronizzazione dei log a causa di un problema di connessione, è in corso di sospensione o passa attraverso stati di transizione durante l'avvio o un cambio di ruolo. 1 = Sincronizzazione. Per un database primario, indica che il database è pronto ad accettare una richiesta di analisi da un database secondario. Per un database secondario, indica che è in corso uno spostamento dati attivo per il database. 2 = Sincronizzato. Un database primario risulta essere nello stato SYNCHRONIZED anziché SYNCHRONIZING. Un database secondario con commit sincrono risulta essere nello stato sincronizzato se nella cache locale il database è pronto per il failover ed è in corso la sincronizzazione. 3 = Ripristino. Indica la fase del processo di rollback in cui un database secondario ottiene attivamente le pagine dal database primario. Importante: quando un database in una replica secondaria si trova nello stato REVERTING, forzare il failover nella replica secondaria lascia il database in uno stato in cui non può essere avviato come database primario. Il database deve riconnettersi come database secondario oppure è necessario applicare nuovi record di log da un backup del log. 4 = Inizializzazione. Indica la fase di rollback in cui il log delle transazioni necessario a un database secondario per l'intercettazione dell'LSN di rollback viene fornito e finalizzato su una replica secondaria. Importante: quando un database in una replica secondaria si trova nello stato INITIALIZING, forzare il failover nella replica secondaria lascia il database in uno stato in cui non può essere avviato come database primario. Il database deve riconnettersi come database secondario oppure è necessario applicare nuovi record di log da un backup del log. |
synchronization_state_desc | nvarchar(60) | Descrizione dello stato di spostamento dei dati, uno di: - NON SINCRONIZZAZIONE -SINCRONIZZAZIONE -SINCRONIZZATO -RIPRISTINO -INIZIALIZZAZIONE |
is_commit_participant | bit | 0 = Il commit della transazione non è sincronizzato rispetto a questo database. 1 = il commit della transazione è sincronizzato rispetto a questo database. Per un database in una replica di disponibilità con commit asincrono, questo valore è sempre 0. Per un database in una replica di disponibilità con commit sincrono, questo valore è preciso solo nel database primario. |
synchronization_health | tinyint | Riflette l'intersezione dello stato di sincronizzazione di un database unito al gruppo di disponibilità nella replica di disponibilità e la modalità di disponibilità della replica di disponibilità (modalità con commit sincrono o commit asincrono), uno dei valori seguenti. 0 = Non integro. L'oggetto synchronization_state del database è 0 (NOT SYNCHRONIZING).1 = Parzialmente integro. Un database in una replica di disponibilità con commit sincrono viene considerato parzialmente integro se synchronization_state è 1 (SYNCHRONIZING).2 = Integro. Un database in una replica di disponibilità con commit sincrono viene considerato integro se synchronization_state è 2 (SYNCHRONIZED) e un database in una replica di disponibilità con commit asincrono viene considerato integro se synchronization_state è 1 (SYNCHRONIZING). |
synchronization_health_desc | nvarchar(60) | Descrizione dell'oggetto synchronization_health del database di disponibilità.- NOT_HEALTHY - PARTIALLY_HEALTHY -SANO |
database_state | tinyint | 0 = Online 1 = Ripristino in corso 2 = Recupero in corso 3 = Recupero in sospeso 4 = Sospetto 5 = Emergenza 6 = Offline Nota: uguale alla state colonna in sys.databases . |
database_state_desc | nvarchar(60) | Descrizione dell'oggetto database_state della replica di disponibilità.-IN LINEA -RIPRISTINO -RECUPERO - RECOVERY_PENDING -SOSPETTARE -EMERGENZA -OFF-LINE Nota: uguale alla state_desc colonna in sys.databases . |
is_suspended | bit | Stato del database, uno di: 0 = Ripreso 1 = sospeso |
suspend_reason | tinyint | Se il database è sospeso, il motivo dello stato sospeso, uno di: 0 = Azione utente 1 = Sospensione da parte del partner 2 = Rollforward 3 = Acquisizione 4 = Applicazione 5 = Riavvio 6 = Rollback 7 = Riconvalida 8 = Errore nel calcolo del punto di sincronizzazione della replica secondaria |
suspend_reason_desc | nvarchar(60) | Descrizione del motivo dello stato sospeso del database, uno di: SUSPEND_FROM_USER = Movimento di dati sospeso manualmente dall'utente SUSPEND_FROM_PARTNER = La replica di database viene sospesa dopo un failover forzato SUSPEND_FROM_REDO = Si è verificato un errore durante la fase di rollforward SUSPEND_FROM_APPLY = Si è verificato un errore durante la scrittura del log nel file (vedere il log degli errori) SUSPEND_FROM_CAPTURE = Si è verificato un errore durante l'acquisizione del log sulla replica primaria SUSPEND_FROM_RESTART = La replica di database è stata sospesa prima che il database venisse riavviato (vedere il log degli errori) SUSPEND_FROM_UNDO = Si è verificato un errore durante la fase di annullamento (vedere il log degli errori) SUSPEND_FROM_REVALIDATION = Rilevata la mancata corrispondenza con le modifiche al log alla riconnessione (vedere il log degli errori) SUSPEND_FROM_XRF_UPDATE = Impossibile trovare il punto del log comune (vedere il log degli errori) |
recovery_lsn | numeric(25,0) | Nella replica primaria, la fine del log delle transazioni prima della scrittura di qualsiasi nuovo record di log da parte del database primario dopo il failover o il recupero. Per un determinato database secondario, se questo valore è minore dell'LSN con protezione avanzata corrente (last_hardened_lsn ), recovery_lsn è il valore a cui il database secondario dovrà risincronizzare (ovvero ripristinare e reinizializzare in). Se questo valore è maggiore o uguale all'LSN con protezione avanzata corrente, la risincronizzazione non sarà necessaria e non si verificherebbe.recovery_lsn riflette un ID di blocco di log riempito con zere. Non è un numero di sequenza di log effettivo (LSN). |
truncation_lsn | numeric(25,0) | Nella replica primaria, per il database primario, riflette l'LSN di troncamento del log minimo in tutti i database secondari corrispondenti. Se il troncamento del log locale è bloccato, ad esempio da un'operazione di backup, questo LSN potrebbe essere maggiore di quello di troncamento locale. Per un database secondario specificato, riflette il punto di troncamento del database in questione. truncation_lsn riflette un ID blocco di log riempito con zere. Non è un numero di sequenza di log effettivo. |
last_sent_lsn | numeric(25,0) | Identificatore del blocco di log che indica il punto fino a cui tutti i blocchi di log sono stati inviati dal database primario. ID del blocco di log successivo che verrà inviato, anziché l'ID del blocco di log inviato più di recente.last_sent_lsn riflette un ID di blocco di log riempito con zere. Non è un numero di sequenza di log effettivo. |
last_sent_time | datetime | Ora di invio dell'ultimo blocco di log. |
last_received_lsn | numeric(25,0) | ID del blocco di log che identifica il punto fino a cui tutti i blocchi di log sono stati ricevuti dalla replica secondaria che ospita questo database secondario.last_received_lsn riflette un ID di blocco di log riempito con zere. Non è un numero di sequenza di log effettivo. |
last_received_time | datetime | Ora in cui è stato letto l'ID del blocco di log nell'ultimo messaggio ricevuto sulla replica secondaria. |
last_hardened_lsn | numeric(25,0) | Avvio del blocco del log in cui sono contenuti i record di log dell'LSN ultima finalizzazione in un database secondario. In un database primario con commit asincrono o in un database con commit sincrono i cui criteri correnti si riferiscono a un ritardo, il valore è NULL. Per altri database primari con commit sincrono, last_hardened_lsn indica il numero minimo di LSN con protezione avanzata in tutti i database secondari.Nota: last_hardened_lsn riflette un ID blocco di log riempito con zere. Non è un numero di sequenza di log effettivo. |
last_hardened_time | datetime | In un database secondario, ora dell'identificatore del blocco di log per l'ultimo LSN con protezione avanzata (last_hardened_lsn ). In un database primario, riflette l'ora corrispondente all'LSN minimo finalizzato. |
last_redone_lsn | numeric(25,0) | Numero di sequenza del file di log (LSN) effettivo dell'ultimo record di log di cui è stato eseguito il rollforward nel database secondario. last_redone_lsn è sempre minore di last_hardened_lsn . |
last_redone_time | datetime | Ora del rollforward dell'ultimo record di log sul database secondario. |
log_send_queue_size | bigint | Quantità di record di log del database primario che non è stato inviato ai database secondari, in kilobyte (KB). |
log_send_rate | bigint | Frequenza media con cui l'istanza di replica primaria ha inviato dati durante l'ultimo periodo attivo, in kilobyte (KB)/secondo. |
redo_queue_size | bigint | Quantità di record di log nei file di log della replica secondaria che non è ancora stato eseguito il rollforward, in kilobyte (KB). |
redo_rate | bigint | Velocità media di rollforward dei record di log in un determinato database secondario, in kilobyte (KB)/secondo.redo_rate viene calcolato dividendo i byte di log totali dopo l'avvio del motore di database per l'intervallo di tempo in cui il rollforward è in esecuzione attivamente, anziché in base al tempo trascorso. Poiché il rollforward potrebbe non essere in esecuzione in modo continuo, il valore risultante può essere diverso (superiore) rispetto al valore del Database Replica:Redone Bytes/sec contatore delle prestazioni. |
filestream_send_rate | bigint | Velocità alla quale i file FILESTREAM vengono inviati alla replica secondaria (in KB/secondo). |
end_of_log_lsn | numeric(25,0) | Fine locale dell'LSN del log. LSN effettivo che corrisponde all'ultimo record di log nella cache di log sui database primario e secondari. Nella replica primaria, le righe secondarie riflettono la fine dell'LSN del log degli ultimi messaggi di stato inviati dalle repliche secondarie alla replica primaria.end_of_log_lsn riflette un ID di blocco di log riempito con zere. Non è un numero di sequenza di log effettivo. |
last_commit_lsn | numeric(25,0) | Numero di sequenza del file di log effettivo che corrisponde all'ultimo record di commit nel log delle transazioni. Sul database primario corrisponde all'ultimo record di commit elaborato. Nelle righe per i database secondari viene mostrato il numero di sequenza del file di log (LSN) inviato dalla replica secondaria alla replica primaria. Sulla replica secondaria si tratta dell'ultimo record di commit di cui è stato eseguito il rollforward. |
last_commit_time | datetime | Ora che corrisponde all'ultimo record di commit. Sul database secondario, l'ora equivale a quella sul database primario. Sulla replica primaria ogni riga del database secondario contiene l'ora in cui la replica secondaria che ospita il database secondario ha riferito alla replica primaria. La differenza di tempo tra la riga del database primario e una determinata riga del database secondario rappresenta approssimativamente l'obiettivo del punto di ripristino (RPO), presupponendo che il processo di rollforward venga intercettato e che lo stato di avanzamento sia stato riportato alla replica primaria dalla replica secondaria. |
low_water_mark_for_ghosts | bigint | Numero a incremento progressivo costante per il database che indica un limite minimo usato dall'attività di pulizia dei record fantasma sul database primario. Se questo numero non aumenta nel tempo, implica che la pulizia fantasma potrebbe non verificarsi. Per decidere quali righe fantasma pulire, la replica primaria utilizza il valore minimo di questa colonna per questo database in tutte le repliche di disponibilità, inclusa quella primaria. |
secondary_lag_seconds | bigint | Numero di secondi in cui la replica secondaria si trova dietro la replica primaria durante la sincronizzazione. Si applica a: SQL Server 2016 (13.x) e versioni successive. |
quorum_commit_lsn | numeric(25,0) | Identificato solo a scopo informativo. Non supportato. La compatibilità futura non è garantita. |
quorum_commit_time | datetime | Identificato solo a scopo informativo. Non supportato. La compatibilità futura non è garantita. |
Autorizzazioni
È richiesta l'autorizzazione VIEW DATABASE STATE per il database.