Impostazioni di Transact-SQL e modalità operative del mirroring del database
In questo argomento viene descritto il funzionamento di una sessione di mirroring del database dal punto di vista delle impostazioni di ALTER DATABASE e degli stati del database con mirroring e del server di controllo del mirroring. Le informazioni di questo argomento sono rivolte agli utenti che gestiscono il mirroring del database utilizzando principalmente o esclusivamente Transact-SQL, anziché Microsoft SQL Server Management Studio. Per informazioni sulle modalità operative, vedere Sessioni di mirroring del database.
Nota
In alternativa a Transact-SQL, è possibile controllare la modalità operativa di una sessione in Esplora oggetti mediante la pagina Mirroring della finestra di dialogo Proprietà database. Per ulteriori informazioni, vedere Procedura: Configurazione di una sessione di mirroring del database (SQL Server Management Studio).
Effetti della protezione delle transazioni e dello stato del server di controllo del mirroring sulla modalità operativa
La modalità operativa di una sessione è determinata dalla combinazione dell'impostazione del livello di protezione delle transazioni e dello stato del server di controllo del mirroring. In qualsiasi momento, il proprietario del database può modificare il livello di protezione delle transazioni e aggiungere o rimuovere il server di controllo del mirroring.
Livello di protezione delle transazioni
Il livello di protezione delle transazioni è una proprietà del database specifica del mirroring che determina l'esecuzione della sessione di mirroring del database in modalità sincrona o asincrona. Esistono due livelli di protezione: FULL e OFF.
SAFETY FULL
Il livello di sicurezza delle transazioni completo determina l'esecuzione della sessione in modo sincrono in modalità a sicurezza elevata. Se è presente un server di controllo del mirroring, una sessione supporta il failover automatico.
Quando si stabilisce una sessione utilizzando le istruzioni ALTER DATABASE, tale sessione inizia con la proprietà SAFETY impostata su FULL, ovvero in modalità a sicurezza elevata. Dopo l'inizio della sessione, è possibile aggiungere un server di controllo del mirroring.
Per ulteriori informazioni, vedere Mirroring sincrono del database (modalità a sicurezza elevata).
SAFETY OFF
La disattivazione della protezione delle transazioni determina l'esecuzione della sessione in modalità asincrona a prestazioni elevate. Se la proprietà SAFETY è impostata su OFF, è necessario impostare sul valore predefinito OFF anche la proprietà WITNESS. Per informazioni sull'effetto del server di controllo del mirroring in modalità a prestazioni elevate, vedere la sezione "Stato del server di controllo del mirroring" di seguito in questo argomento. Per ulteriori informazioni sull'esecuzione quando la protezione delle transazioni è disattivata, vedere Mirroring asincrono del database (modalità a prestazioni elevate).
L'impostazione del livello di protezione delle transazioni per il database viene registrata per ogni partner nelle colonne mirroring_safety_level e mirroring_safety_level_desc della vista del catalogo sys.database_mirroring. Per ulteriori informazioni, vedere sys.database_mirroring (Transact-SQL).
Il proprietario del database può modificare il livello di protezione delle transazioni in qualsiasi momento.
Stato del server di controllo del mirroring
Se è stato impostato un server di controllo del mirroring, il quorum è necessario e pertanto lo stato di tale server è sempre significativo.
Se è disponibile, il server di controllo del mirroring dispone di due stati:
Quando è connesso a un partner, il server di controllo del mirroring si trova nello stato CONNECTED in relazione a tale partner e dispone del quorum con quest'ultimo. In questo caso, è possibile rendere disponibile il database, anche se uno dei partner non è disponibile.
Quando è disponibile ma non è connesso a un partner, il server di controllo del mirroring si trova nello stato UNKNOWN o DISCONNECTED in relazione a tale partner. In questo caso, il server di controllo del mirroring non dispone del quorum con tale partner e, se i partner non sono connessi tra loro, il database non sarà più disponibile.
Per ulteriori informazioni sul quorum, vedere Quorum: Impatto di un server di controllo del mirroring sulla disponibilità del database.
Lo stato di ogni server di controllo del mirroring in un'istanza del server viene registrato nelle colonne mirroring_witness_state e mirroring_witness_state_desc della vista del catalogo sys.database_mirroring. Per ulteriori informazioni, vedere sys.database_mirroring (Transact-SQL).
Nella tabella seguente sono riepilogati gli effetti dell'impostazione della protezione delle transazioni e dello stato del server di controllo del mirroring sulla modalità operativa di una sessione.
Modalità operativa |
Livello di protezione delle transazioni |
Stato del server di controllo del mirroring |
---|---|---|
Modalità a prestazioni elevate |
OFF |
NULL (nessun server di controllo del mirroring)2 |
Modalità a sicurezza elevata senza failover automatico |
FULL |
NULL (nessun server di controllo del mirroring) |
Modalità a sicurezza elevata con failover automatico1 |
FULL |
CONNECTED |
1 Se il server di controllo del mirroring viene disconnesso, è consigliabile impostare WITNESS OFF finché l'istanza del server di controllo del mirroring non diventa disponibile.
2 Se un server di controllo è presente in modalità a prestazioni elevate, non partecipa alla sessione. Tuttavia, per rendere disponibile il database, è necessario che almeno due istanze del server rimangano connesse. È pertanto consigliabile mantenere la proprietà WITNESS impostata su OFF nelle sessioni in modalità a prestazioni elevate. Per ulteriori informazioni, vedere Quorum: Impatto di un server di controllo del mirroring sulla disponibilità del database.
Visualizzazione dell'impostazione di protezione e dello stato del server di controllo del mirroring
Per visualizzare l'impostazione di protezione e lo stato del server di controllo del mirroring per un database, utilizzare la vista del catalogo sys.database_mirroring. Le colonne rilevanti sono le seguenti:
Fattore |
Colonne |
Descrizione |
---|---|---|
Livello di protezione delle transazioni |
mirroring_safety_level o mirroring_safety_level_desc |
Impostazione del livello di protezione delle transazioni per gli aggiornamenti nel database mirror, scelta tra le seguenti: UNKNOWN OFF FULL NULL = database non in linea |
Disponibilità di un server di controllo del mirroring |
mirroring_witness_name |
Nome del server di controllo del mirroring del database o valore NULL se tale server non esiste. |
Stato del server di controllo del mirroring |
mirroring_witness_state o mirroring_witness_state_desc |
Stato del server di controllo del mirroring nel database di un determinato partner: UNKNOWN CONNECTED DISCONNECTED NULL = server di controllo del mirroring non disponibile o database non in linea |
Nel server principale o nel server mirror, ad esempio, immettere:
SELECT mirroring_safety_level_desc, mirroring_witness_name, mirroring_witness_state_desc FROM sys.database_mirroring
Per ulteriori informazioni su questa vista del catalogo, vedere sys.database_mirroring (Transact-SQL).
Per aggiungere un server di controllo del mirroring
Per rimuovere un server di controllo del mirroring
Per modificare il livello di protezione delle transazioni
Fattori che influiscono sul funzionamento della sessione in caso di perdita del server principale
Nella tabella seguente sono riepilogati gli effetti combinati dell'impostazione del livello di protezione delle transazioni, dello stato del database e dello stato del server di controllo del mirroring sul funzionamento di una sessione di mirroring in caso di perdita del server principale.
Livello di protezione delle transazioni |
Stato di mirroring del database mirror |
Stato del server di controllo del mirroring |
Funzionamento in caso di perdita del server principale |
---|---|---|---|
FULL |
SYNCHRONIZED |
CONNECTED |
Si verifica il failover automatico. |
FULL |
SYNCHRONIZED |
DISCONNECTED |
Il server mirror si interrompe. Non è possibile eseguire il failover né rendere disponibile il database. |
OFF |
SUSPENDED o DISCONNECTED |
NULL (nessun server di controllo del mirroring) |
È possibile forzare il servizio nel server mirror ma può verificarsi la perdita dei dati. |
FULL |
SYNCHRONIZING o SUSPENDED |
NULL (nessun server di controllo del mirroring) |
È possibile forzare il servizio sul server mirror ma può verificarsi la perdita dei dati. |
Vedere anche