Eseguire un failover manuale pianificato di un gruppo di disponibilità (SQL Server)

Questo argomento descrive come eseguire un failover manuale senza perdite di dati (failover manuale pianificato) in un gruppo di disponibilità AlwaysOn tramite SQL Server Management StudioSQL Server Management Studio, Transact-SQLTransact-SQL o PowerShell in SQL Server 2017SQL Server 2017. Per un gruppo di disponibilità il failover si verifica al livello di una replica di disponibilità. Con un failover manuale pianificato, come con qualsiasi failover Gruppi di disponibilità Always OnAlways On availability groups, la replica secondaria passa al ruolo primario e, contemporaneamente, la replica primaria precedente passa al ruolo secondario.

Un failover manuale pianificato, supportato solo quando la replica primaria e la replica secondaria di destinazione sono in esecuzione in modalità con commit sincrono e sono attualmente sincronizzate, mantiene tutti i dati nei database secondari uniti in join al gruppo di disponibilità nella replica secondaria di destinazione. Quando la replica primaria precedente passa al ruolo secondario, i relativi database diventeranno database secondari e viene iniziata la sincronizzazione con i nuovi database primari. Dopo la transizione di tutti i database allo stato SYNCHRONIZED, la nuova replica secondaria diventa idonea a fungere da destinazione di un futuro failover manuale pianificato.

Nota

Se la replica primaria e le repliche secondarie sono configurate per la modalità di failover automatico, dopo la sincronizzazione, la replica secondaria può anche fungere da destinazione per un failover automatico. Per altre informazioni, vedere Modalità di disponibilità (gruppi di disponibilità AlwaysOn).

Prima di iniziare

Limitazioni e restrizioni

  • Un comando del failover viene restituito non appena la replica secondaria di destinazione ha accettato il comando. Tuttavia, il recupero del database si verifica in modo asincrono dopo che il gruppo di disponibilità ha completato il failover.

  • La coerenza tra i database all'interno del gruppo di disponibilità potrebbe non essere mantenuta nel failover.

    Nota

    Il supporto delle transazioni distribuite e tra database varia in base alle versioni di SQL Server e del sistema operativo. Per altre informazioni, vedere Transazioni tra database non supportate per il mirroring del database o i gruppi di disponibilità AlwaysOn (SQL Server).

Prerequisiti e restrizioni

  • La replica secondaria di destinazione e la replica primaria devono essere entrambe in esecuzione in modalità di disponibilità con commit sincrono.

  • La replica secondaria di destinazione deve essere attualmente sincronizzata con la replica primaria. È necessario che tutti i database secondari su tale replica secondaria siano uniti in join al gruppo di disponibilità e sincronizzati con i database primari corrispondenti (ossia lo stato dei database secondari locali deve essere SYNCHRONIZED).

    Suggerimento

    Per determinare la conformità di failover di una replica secondaria, eseguire una query sulla colonna is_failover_ready nella DMV sys.dm_hadr_database_cluster_states o esaminare la colonna Conformità failover del dashboard del gruppo AlwaysOn.

  • Questa attività è supportata solo nella replica secondaria di destinazione. È necessario essere connessi all'istanza del server che ospita la replica secondaria di destinazione.

Sicurezza

Autorizzazioni

È necessaria l'autorizzazione ALTER AVAILABILITY GROUP nel gruppo di disponibilità, l'autorizzazione CONTROL AVAILABILITY GROUP, l'autorizzazione ALTER ANY AVAILABILITY GROUP o l'autorizzazione CONTROL SERVER.

Utilizzo di SQL Server Management Studio

Per eseguire manualmente il failover di un gruppo di disponibilità

  1. In Esplora oggetti connettersi a un'istanza del server che ospita una replica secondaria del gruppo di disponibilità di cui eseguire il failover ed espandere l'albero del server.

  2. Espandere il nodo Disponibilità elevata AlwaysOn e il nodo Gruppi di disponibilità.

  3. Fare clic con il pulsante destro del mouse sul gruppo di disponibilità di cui eseguire il failover e selezionare il comando Failover.

  4. Verrà avviata la Creazione guidata Gruppo di disponibilità di failover. Per altre informazioni, vedere Utilizzare la Procedura guidata Failover del gruppo di disponibilità (SQL Server Management Studio).

Utilizzo di Transact-SQL

Per eseguire manualmente il failover di un gruppo di disponibilità

  1. Connettersi all'istanza del server che ospita la replica secondaria di destinazione.

  2. Utilizzare l'istruzione ALTER AVAILABILITY GROUP , come indicato di seguito:

    ALTER AVAILABILITY GROUP nome_gruppo FAILOVER

    dove nome_gruppo è il nome del gruppo di disponibilità.

    Nell'esempio seguente viene eseguito il failover manuale del gruppo di disponibilità MyAg alla replica secondaria connessa.

    ALTER AVAILABILITY GROUP MyAg FAILOVER;  
    

Utilizzo di PowerShell

Per eseguire manualmente il failover di un gruppo di disponibilità

  1. Cambiare la directory (cd) impostandola sull'istanza del server che ospita la replica secondaria di destinazione.

  2. Usare il cmdlet Switch-SqlAvailabilityGroup.

    Nota

    Per visualizzare la sintassi di un cmdlet, usare il cmdlet Get-Help nell'ambiente SQL Server 2017SQL Server 2017 PowerShell. Per altre informazioni, vedere Get Help SQL Server PowerShell.

    Nell'esempio seguente viene eseguito il failover manuale del gruppo di disponibilità MyAg alla replica secondaria con il percorso specificato.

    Switch-SqlAvailabilityGroup -Path SQLSERVER:\Sql\SecondaryServer\InstanceName\AvailabilityGroups\MyAg  
    

    Per impostare e utilizzare il provider PowerShell per SQL Server

Completamento: Dopo il failover manuale su un gruppo di disponibilità

Se è stato eseguito il failover al di fuori del failover automatico impostatoautomatic failover set del gruppo di disponibilità, modificare i voti del quorum dei nodi WSFC per riflettere la nuova configurazione del gruppo di disponibilità. Per altre informazioni, vedere WSFC (Windows Server Failover Clustering) con SQL Server.

Vedere anche

Panoramica di Gruppi di disponibilità AlwaysOn (SQL Server)
Failover e modalità di failover (gruppi di disponibilità AlwaysOn)
Eseguire un failover manuale forzato di un gruppo di disponibilità (SQL Server)