Condividi tramite


Come configurare un gruppo di disponibilità Always On per eseguire un failover quando il file di dati del database non è disponibile

Riepilogo

In un gruppo di disponibilità SQL Server Always On, il rilevamento dell'integrità a livello di database può eseguire un failover solo se l'errore (errore del disco o simile) si verifica nel log delle transazioni del database.

Se l'errore si verifica nel file di dati, SQL Server invia solo l'avviso di errore a un cluster di failover di Windows Server (WSFC) e si basa su di esso per prendere la decisione corretta in base alla configurazione dei criteri.

Per configurare un gruppo di disponibilità Always On per eseguire un failover quando si verificano errori 823 e altri, usare una delle procedure seguenti:

Configurare Gestione cluster di failover

Questa procedura configura i criteri WSFC per causare un failover in uno dei possibili proprietari anziché tentare di riavviare il ruolo nel nodo primario corrente.

  1. Aprire Gestione cluster di failover.

  2. Espandere il cluster e selezionare Ruoli.

  3. Fare clic con il pulsante destro del mouse sul ruolo gruppo di disponibilità e scegliere Criteri proprietà>.

  4. Impostare il valore di Riavvii massimi nel periodo specificato su 0.

  5. Selezionare la casella Se tutti i tentativi di riavvio non riescono, riavviare di nuovo dopo il periodo specificato (hh:mm) e selezionare OK.

  6. Assicurarsi che entrambi i nodi siano Proprietari possibili e proprietari preferiti.

Opzione di configurazione personalizzata

Questa procedura fornisce un esempio di come usare il meccanismo di avviso disponibile in SQL Server e SQL Server Agent per rilevare l'errore ed eseguire un failover.

  1. In SQL Server Management Studio espandere SQL Server Agent, fare clic con il pulsante destro del mouse su Avvisi e scegliere Nuovo avviso.

  2. Specificare un valore per Nome, selezionare SQL Server avviso evento per Tipo, specificare il valore di Numero di errore su 823 o qualsiasi altro errore desiderato in base all'elenco e quindi selezionare OK.

  3. Selezionare Risposta, selezionare Esegui processo, selezionare il processo desiderato e quindi selezionare OK.

  4. Nella finestra di dialogo Proprietà passaggio processo specificare un valore per Nome passaggio, selezionare Sistema operativo (CmdExec) per Tipo e quindi selezionare SQL Server Agent Account del servizio per Esegui come.

  5. Immettere il comando sqlcmd di failover seguente:

    sqlcmd -S <SecondaryReplicaName> -U SQLADMIN -P <YourPassword> -Q "ALTER Availability Group <AGName> Failover"

    Nota

    <SecondaryReplicaName>, <YourPassword>e <AGName> sono segnaposto. È necessario modificarlo in modo che corrisponda agli ambienti. Questo script è un esempio di riferimento. Uno script completo deve eseguire altri controlli prima di eseguire un failover.