Informazioni su 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à AlwaysOn di SQL Server, 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à AlwaysOn per eseguire un failover quando si verificano errori 823 e altri , utilizzare una delle procedure seguenti:
Configurare Gestione cluster di failover
Questa procedura configura i criteri WSFC per causare un failover a uno dei possibili proprietari anziché tentare di riavviare il ruolo nel nodo primario corrente.
Aprire Gestione cluster di failover.
Espandere il cluster e selezionare Ruoli.
Fare clic con il pulsante destro del mouse sul ruolo gruppo di disponibilità e scegliere Criteri proprietà>.
Impostare il valore Massimo riavvii nel periodo specificato su 0.
Selezionare la casella Se tutti i tentativi di riavvio hanno esito negativo, riavviare nuovamente dopo il periodo specificato (hh:mm) e selezionare OK.
Assicurarsi che entrambi i nodi siano Possibili proprietari 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.
In SQL Server Management Studio espandere SQL Server Agent, fare clic con il pulsante destro del mouse su Avvisi e selezionare Nuovo avviso.
Specificare un valore per Nome, selezionare Avviso eventi di SQL Server per Tipo, specificare il valore numero di errore su 823 o qualsiasi altro errore desiderato in base all'elenco e quindi selezionare OK.
Selezionare Risposta, selezionare Esegui processo, selezionare il processo desiderato e quindi selezionare OK.
Nella finestra di dialogo Proprietà passaggio processo specificare un valore per Nome passaggio, selezionare Sistema operativo (CmdExec) per Tipo e quindi selezionare Account del servizio SQL Server Agent per Esegui come.
Immettere il comando sqlcmd di failover seguente:
sqlcmd -S <SecondaryReplicaName> -U SQLADMIN -P <YourPassword> -Q "ALTER Availability Group <AGName> Failover"
Note
<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.