Eseguire un failover manuale pianificato di un gruppo di disponibilità (SQL Server)Perform a Planned Manual Failover of an Availability Group (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-SQLo PowerShell in SQL Server 2017SQL Server 2017.This topic describes how to perform a manual failover without data loss (a planned manual failover) on an Always On availability group by using SQL Server Management StudioSQL Server Management Studio, Transact-SQLTransact-SQL, or PowerShell in SQL Server 2017SQL Server 2017. Per un gruppo di disponibilità il failover si verifica al livello di una replica di disponibilità.An availability group fails over at the level of an availability replica. 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.A planned manual failover, like any Gruppi di disponibilità Always OnAlways On availability groups failover, transitions a secondary replica to primary role and, concurrently, transitions the former primary replica to the secondary role.

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.A planned manual failover, which is supported only when the primary replica and the target secondary replica are running in synchronous-commit mode and are currently synchronized, preserves all the data in the secondary databases that are joined to the availability group on the target secondary replica. 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.Once the former primary replica transitions to the secondary role, its databases become secondary databases and begin synchronizing with the new primary databases. 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.After they all transition into the SYNCHRONIZED state, the new secondary replica becomes eligible to serve as the target of a future planned manual failover.

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.If the secondary and primary replicas are both configured for automatic failover mode, once the secondary replica is synchronized, it can also serve as the target for an automatic failover. Per altre informazioni, vedere Modalità di disponibilità (gruppi di disponibilità AlwaysOn).For more information, see Availability Modes (Always On Availability Groups).

Prima di iniziare Before You Begin

Limitazioni e restrizioni Limitations and Restrictions

Prerequisiti e restrizioni Prerequisites and Restrictions

  • La replica secondaria di destinazione e la replica primaria devono essere entrambe in esecuzione in modalità di disponibilità con commit sincrono.The target secondary replica and the primary replica must both be running in synchronous-commit availability mode.

  • La replica secondaria di destinazione deve essere attualmente sincronizzata con la replica primaria.The target secondary replica must currently be synchronized with the primary replica. È 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).This requires that all the secondary databases on this secondary replica must have been joined to the availability group and be synchronized with their corresponding primary databases (that is, the local secondary databases must be 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.To determine the failover readiness of an secondary replica, query the is_failover_ready column in the sys.dm_hadr_database_cluster_states dynamic management view, or look at the Failover Readiness column of the Always On Group Dashboard.

  • Questa attività è supportata solo nella replica secondaria di destinazione.This task is supported only on the target secondary replica. È necessario essere connessi all'istanza del server che ospita la replica secondaria di destinazione.You must be connected to the server instance that hosts the target secondary replica.

Sicurezza Security

Autorizzazioni Permissions

È 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.Requires ALTER AVAILABILITY GROUP permission on the availability group, CONTROL AVAILABILITY GROUP permission, ALTER ANY AVAILABILITY GROUP permission, or CONTROL SERVER permission.

Utilizzo di SQL Server Management Studio Using SQL Server Management Studio

Per eseguire manualmente il failover di un gruppo di disponibilitàTo manually fail over an availability group

  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.In Object Explorer, connect to a server instance that hosts a secondary replica of the availability group that needs to be failed over, and expand the server tree.

  2. Espandere il nodo Disponibilità elevata AlwaysOn e il nodo Gruppi di disponibilità .Expand the Always On High Availability node and the Availability Groups node.

  3. Fare clic con il pulsante destro del mouse sul gruppo di disponibilità di cui eseguire il failover e selezionare il comando Failover .Right-click the availability group to be failed over, and select the Failover command.

  4. Verrà avviata la Creazione guidata Gruppo di disponibilità di failover.This launches the Failover Availability Group Wizard. Per ulteriori informazioni, vedere Utilizzare la Procedura guidata Failover del gruppo di disponibilità (SQL Server Management Studio).For more information, see Use the Fail Over Availability Group Wizard (SQL Server Management Studio).

Utilizzo di Transact-SQL Using Transact-SQL

Per eseguire manualmente il failover di un gruppo di disponibilitàTo manually fail over an availability group

  1. Connettersi all'istanza del server che ospita la replica secondaria di destinazione.Connect to the server instance that hosts the target secondary replica.

  2. Utilizzare l'istruzione ALTER AVAILABILITY GROUP , come indicato di seguito:Use the ALTER AVAILABILITY GROUP statement, as follows:

    ALTER AVAILABILITY GROUP nome_gruppo FAILOVERALTER AVAILABILITY GROUP group_name FAILOVER

    dove nome_gruppo è il nome del gruppo di disponibilità.where group_name is the name of the availability group.

    Nell'esempio seguente viene eseguito il failover manuale del gruppo di disponibilità MyAg alla replica secondaria connessa.The following example manually fails over the MyAg availability group to the connected secondary replica.

    ALTER AVAILABILITY GROUP MyAg FAILOVER;  
    

Utilizzo di PowerShell Using PowerShell

Per eseguire manualmente il failover di un gruppo di disponibilitàTo manually fail over an availability group

  1. Cambiare la directory (cd) impostandola sull'istanza del server che ospita la replica secondaria di destinazione.Change directory (cd) to the server instance that hosts the target secondary replica.

  2. Usare il cmdlet Switch-SqlAvailabilityGroup .Use the Switch-SqlAvailabilityGroup cmdlet.

    Nota

    Per visualizzare la sintassi di un cmdlet, usare il cmdlet Get-Help nell'ambiente SQL Server 2017SQL Server 2017 PowerShell.To view the syntax of a cmdlet, use the Get-Help cmdlet in the SQL Server 2017SQL Server 2017 PowerShell environment. Per altre informazioni, vedere Get Help SQL Server PowerShell.For more information, see 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.The following example manually fails over the MyAg availability group to the secondary replica with the specified path.

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

    Per impostare e utilizzare il provider PowerShell per SQL ServerTo set up and use the SQL Server PowerShell provider

Completamento: Dopo il failover manuale su un gruppo di disponibilità Follow Up: After Manually Failing Over an Availability Group

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à.If you failed over outside of the failover automatico impostatoautomatic failover set of the availability group, adjust the quorum votes of the WSFC nodes to reflect your new availability group configuration. Per altre informazioni, vedere WSFC (Windows Server Failover Clustering) con SQL Server.For more information, see Windows Server Failover Clustering (WSFC) with SQL Server.

Vedere ancheSee Also

Panoramica di gruppi di disponibilità AlwaysOn (SQL Server) Overview of Always On Availability Groups (SQL Server)
Failover e modalità di failover (gruppi di disponibilità AlwaysOn) Failover and Failover Modes (Always On Availability Groups)
Eseguire un failover manuale forzato di un gruppo di disponibilità (SQL Server)Perform a Forced Manual Failover of an Availability Group (SQL Server)