Condividi tramite


Quorum: come un testimone influisce sulla disponibilità del database (mirroring del database)

Ogni volta che viene impostato un testimone per una sessione di mirroring del database, è necessario il quorum. Il quorum è una relazione che esiste quando due o più istanze del server in una sessione di mirroring del database sono connesse tra loro. In genere, il quorum prevede tre istanze del server interconnesse. Quando un witness è impostato, è necessario un quorum per rendere disponibile il database. Progettato per la modalità a sicurezza elevata con failover automatico, il quorum garantisce che un database sia di proprietà di un solo partner alla volta.

Se una determinata istanza del server viene disconnessa da una sessione di mirroring, tale istanza perde il quorum. Se nessuna istanza del server è connessa, la sessione perde il quorum e il database non è più disponibile. Sono possibili tre tipi di quorum:

  • Un quorum completo include sia i partner che il testimone.

  • Un quorum testimone-partner è costituito dal testimone e da uno dei due partner.

  • Un quorum tra partner è costituito dai due partner.

La figura seguente illustra questi tipi di quorum.

Quorum: completi; testimone e partner; entrambi i partner

Finché il server principale corrente dispone del quorum, questo server possiede il ruolo di principale e continua a servire il database, a meno che il proprietario del database non esegua un failover manuale. Se il server principale perde il quorum, smette di gestire il database. Il failover automatico può verificarsi solo se il database principale ha perso il quorum, che garantisce che non gestisca più il database.

Un'istanza del server disconnessa mantiene il suo ruolo più recente nella sessione. In genere, un'istanza del server disconnessa si riconnette alla sessione al riavvio e recupera il quorum.

Importante

L'istanza per il witness deve essere impostata solo quando si intende utilizzare la modalità ad alta sicurezza con failover automatico. In modalità a prestazioni elevate, per la quale un testimone non è mai necessario, consigliamo vivamente di impostare la proprietà WITNESS su OFF. Per informazioni sull'impatto di un testimone sulla modalità ad alte prestazioni, vedere Modalità operative del mirroring del database.

Quorum nelle sessioni in modalità High-Safety

In modalità a sicurezza elevata, il quorum consente il failover automatico fornendo un contesto in cui le istanze del server con quorum arbitra quale partner sia proprietario del ruolo di principale. Il server principale gestisce il database se dispone del quorum. Se il server principale perde il consenso mentre il server mirror sincronizzato e il server di controllo mantengono il consenso, si verifica il failover automatico.

Gli scenari quorum per la modalità a sicurezza elevata sono i seguenti:

  • Un quorum completo che consiste di entrambi i partner e del testimone.

    In genere, tutte e tre le istanze del server partecipano a un quorum a tre vie, denominato quorum completo. Con un quorum completo, i server principale e mirror continuano a eseguire i rispettivi ruoli (a meno che non si verifichi il failover manuale).

  • Un quorum testimone-partner costituito dal testimone e da uno dei due partner.

    Se la connessione di rete tra i partner viene persa perché uno dei partner è andato perso, sono possibili i casi seguenti:

    • Il server mirror viene perso e il server principale e il server testimone mantengono il quorum.

      In questo caso, l'entità imposta il database su DISCONNECTED e viene eseguito con il mirroring in uno stato SUSPENDED. Questa operazione viene definita esecuzione esposta, perché il database non è attualmente sottoposto a mirroring. Quando il server mirror esegue nuovamente la ricongiunzione della sessione, il server recupera il quorum come mirror e avvia la risincronizzazione della copia del database.

    • Il server principale è fuori uso e il server testimone e il server mirror mantengono il quorum.

      In questo caso, si verifica il failover automatico. Per altre informazioni, vedere Database Mirroring Operating Modes.

    • Tutte le istanze del server perdono il quorum, ma successivamente il mirror e il server di controllo si riconnettono. Il database non verrà gestito in questo caso.

    Raramente, la connessione di rete tra i partner di failover viene persa mentre entrambi i partner rimangono connessi al testimone. In questo caso, esistono due quorum separati tra testimone e partner, con il testimone come collegamento. Il witness informa il server mirror che il server principale è ancora connesso. Di conseguenza, il failover automatico non si verifica. Il server mirror mantiene invece il ruolo mirror e attende di riconnettersi all'entità. Se la coda di rollforward contiene record di log a questo punto, il server mirror continua a eseguire il roll forward del database mirror. Durante la riconnessione, il server mirror risincronizzerà il database mirror.

  • Un quorum tra partner costituito dai due partner.

    Finché i partner mantengono il quorum, il database continua in uno stato SINCRONIZZATO, e il failover manuale rimane possibile. Senza il testimone, il failover automatico non è possibile; ma quando il testimone riconquista il quorum, la sessione riprende il normale funzionamento e il failover automatico è nuovamente supportato.

  • La sessione perde il quorum.

    Se tutte le istanze del server vengono disconnesse l'una dall'altra, si dice che la sessione abbia perso il quorum. Quando le istanze del server si riconnettono tra loro, recuperano il quorum tra loro.

    • Se il server principale si riconnette con una delle altre istanze del server, il database diventa disponibile.

    • Se il server principale rimane disconnesso, ma il mirror e il server di controllo si riconnettono tra loro, il failover automatico non può verificarsi perché potrebbe verificarsi una perdita di dati. Pertanto, il database rimane non disponibile fino a quando il server principale non rielabora la sessione.

    • Quando tutte e tre le istanze del server sono state riconnesse, viene ripristinato il quorum completo e la sessione riprende il normale funzionamento.

Importante

Quando una sessione ha un quorum da partner a partner, se uno dei partner perde il quorum, la sessione perde il quorum. Pertanto, se si prevede che il testimone rimanga disconnesso per molto tempo, è consigliabile rimuoverlo temporaneamente dalla sessione. La rimozione del testimone elimina il requisito per il quorum. Se quindi il server mirror viene disconnesso, il server principale può continuare a gestire il database. Per informazioni su come aggiungere o rimuovere un testimone, vedere Database Mirroring Witness.

Impatto del quorum sulla disponibilità del database

Nella figura seguente viene illustrato come il testimone e i partner collaborano per assicurarsi che, in un determinato momento, un solo partner sia proprietario del ruolo di principale e che soltanto il server principale corrente possa mettere online il suo database. Entrambi gli scenari iniziano con quorum completo e Partner_A nel ruolo principale e Partner_B nel ruolo mirror.

Come collaborano i partner e il server di controllo del

Lo scenario 1 mostra come, dopo che il server principale originale (Partner_A) ha esito negativo, il server di controllo del mirroring e il mirror accettano che l'entità principale, Partner_A, non sia più disponibile e form quorum. Il mirror Partner_B assume quindi il ruolo principale. Si verifica il failover automatico e Partner_B porta online la relativa copia del database. Quindi Partner_B si arresta e il database diventa offline. Successivamente, il server principale precedente, Partner_A, si riconnette al server di controllo del mirroring, recuperando il quorum; durante la comunicazione con il server di controllo del mirroring, Partner_A apprende che non può rendere disponibile online la propria copia del database, perché Partner_B ora detiene il ruolo principale. Quando Partner_B si unisce nuovamente alla sessione, il database viene riportato online.

Nello scenario 2, il testimone perde il quorum, mentre i partner, Partner_A e Partner_B, mantengono il quorum a vicenda, e il database rimane online. Anche i partner perdono il quorum e il database diventa offline. Successivamente, il server principale, Partner_A, si riconnette al testimone recuperando il quorum. Il server di controllo del mirroring conferma che Partner_A ancora proprietario del ruolo principale e Partner_A riporta il database online.

Vedere anche

Modalità operative di mirroring del database
Cambio di ruolo durante una sessione di mirroring del database (SQL Server)
Testimone del Mirroring del Database
Possibili errori durante il mirroring del database
Stati di mirroring (SQL Server)