Mirroring del database e istanze del cluster di failover di SQL Server

Si applica a:SQL Server

Per cluster di failover si intende una combinazione di uno o più dischi fisici inclusi in un gruppo cluster di Microsoft Cluster Services (MSCS), noto come gruppo di risorse, che partecipano ai nodi del cluster. Il gruppo di risorse viene configurato come istanza cluster di failover che ospita un'istanza di SQL Server. Un'istanza cluster di failover di SQL Server viene visualizzata nella rete come singolo computer, ma include funzionalità che consentono il failover tra nodi nel caso in cui un nodo non sia più disponibile. Per altre informazioni, vedere Istanze del cluster di failover Always On (SQL Server).

I cluster di failover offrono un supporto a disponibilità elevata per un'intera istanza di Microsoft SQL Server, mentre il mirroring del database offre un supporto a disponibilità elevata per un database singolo. Il mirroring del database funziona tra cluster di failover e anche tra un cluster di failover e un host non in cluster.

Nota

Per un'introduzione al mirroring del database, vedere Mirroring del database (SQL Server).

Mirroring e raggruppamento in cluster

In genere, quando il mirroring viene utilizzato in combinazione con il clustering, il server principale e il server mirror risiedono entrambi nei cluster. Il server principale viene eseguito nell'istanza cluster di failover di un cluster mentre il server mirror viene eseguito nell'istanza cluster di failover di un cluster diverso. È tuttavia possibile stabilire una sessione di mirroring in cui un partner risiede nell'istanza cluster di failover di un cluster e l'altro partner risiede in un computer non cluster separato.

Se il server principale non è temporaneamente disponibile a causa del failover di un cluster, i client vengono disconnessi dal database. Al termine del failover di un cluster, è possibile riconnettere i client al server principale nello stesso cluster, in un cluster diverso o in un computer non cluster, a seconda della modalità operativa. Pertanto, quando si sceglie la configurazione per il mirroring del database in un ambiente cluster, la modalità operativa utilizzata per il mirroring riveste notevole importanza.

Sessione in modalità a sicurezza elevata con failover automatico

Se si desidera eseguire il mirroring di un database in modalità a sicurezza elevata con failover automatico, per i partner è consigliabile una configurazione a due cluster. Questa configurazione consente di ottenere la disponibilità massima. Il witness può risiedere sia in un terzo cluster sia in un computer non appartenente a un cluster.

Se si verifica un problema nel nodo in cui è in esecuzione il server principale corrente, entro alcuni secondi viene avviato il failover automatico del database, mentre è ancora in corso il failover del cluster a un altro nodo. La sessione di mirroring del database passa in failover al server di mirroring nell'altro cluster o nel computer non clusterizzato e il precedente server mirror diventa il server principale. Il nuovo server principale esegue il rollforward della rispettiva copia del database nel modo più rapido possibile e la porta online come database principale. Al termine del failover del cluster, che in genere richiede diversi minuti, l'istanza cluster di failover che in precedenza svolgeva la funzione di server principale diventa il server mirror.

Nella figura seguente viene illustrato un failover automatico tra cluster in una sessione di mirroring in esecuzione in modalità a sicurezza elevata con un server di controllo del mirroring, che supporta il failover automatico.

Failover su un cluster

Le tre istanze del server nella sessione di mirroring risiedono in tre cluster distinti: Cluster_A, Cluster_Be Cluster_C. In ogni cluster è in esecuzione un'istanza predefinita di SQL Server configurata come istanza del cluster di failover di SQL Server. All'avvio della sessione di mirroring, l'istanza del cluster di failover in Cluster_A è il server principale, l'istanza del cluster di failover in Cluster_B è il server mirror e l'istanza del cluster di failover in Cluster_C è il testimone della sessione di mirroring. Nella fase finale, si verifica un problema nel nodo attivo del Cluster_A e, di conseguenza, il server principale non è più disponibile.

Prima che il cluster abbia il tempo di eseguire il failover, la perdita del server principale viene rilevata dal server mirror, con l'aiuto del witness. Il server mirror esegue il rollforward del rispettivo database, portandolo online come nuovo database principale nel più breve tempo possibile. Quando il failover in Cluster_A è completato, il server principale precedente ora è il server mirror e sincronizza il proprio database con il database principale corrente su Cluster_B.

Sessione in modalità a sicurezza elevata senza failover automatico

Se si esegue il mirroring di un database in modalità a sicurezza elevata senza failover automatico, un altro nodo del cluster assumerà il ruolo di server principale se nel nodo in cui è eseguito il server principale corrente si verifica un errore. Si noti che, quando il cluster non è disponibile, non è disponibile nemmeno il database.

Sessione in modalità a prestazioni elevate

Se si desidera eseguire il mirroring di un database in modalità a prestazioni elevate, è consigliabile posizionare il server principale nell'istanza cluster di failover di un cluster e il server mirror in un server non cluster in una posizione remota. Se viene eseguito il failover del cluster su un nodo diverso, l'istanza cluster di failover continuerà a svolgere la funzione di server principale nella sessione di mirroring. Se si verificano problemi nell'intero cluster, è possibile forzare il servizio nel server mirror.

Per impostare un nuovo cluster di failover di SQL Server

Per impostare il mirroring del database