Configurare un gruppo di disponibilità AlwaysOn in macchine virtuali di Azure in aree diverseConfigure an Always On availability group on Azure virtual machines in different regions

Questo articolo descrive come configurare la replica di un gruppo di disponibilità SQL Server AlwaysOn in macchine virtuali di Azure in una località di Azure remota.This article explains how to configure a SQL Server Always On availability group replica on Azure virtual machines in a remote Azure location. Usare questa configurazione per supportare il ripristino di emergenza.Use this configuration to support disaster recovery.

Questo articolo si applica a Macchine virtuali di Azure in modalità Resource Manager.This article applies to Azure Virtual Machines in Resource Manager mode.

L'immagine seguente illustra una distribuzione comune di un gruppo di disponibilità nelle macchine virtuali di Azure:The following image shows a common deployment of an availability group on Azure virtual machines:

Gruppo di disponibilità

In questa distribuzione tutte le macchine virtuali sono in un'unica area di Azure.In this deployment, all virtual machines are in one Azure region. Le repliche del gruppo di disponibilità possono avere il commit sincrono con failover automatico in SQL-1 e SQL-2.The availability group replicas can have synchronous commit with automatic failover on SQL-1 and SQL-2. Per creare questa architettura, vedere Availability Group template or tutorial (Modello o esercitazione per i gruppi di disponibilità).To build this architecture, see Availability Group template or tutorial.

Questa architettura è soggetta a tempi di inattività se l'area di Azure diventa inaccessibile.This architecture is vulnerable to downtime if the Azure region becomes inaccessible. Per ovviare a questa vulnerabilità, aggiungere una replica in un'area di Azure diversa.To overcome this vulnerability, add a replica in a different Azure region. Il diagramma seguente illustra l'aspetto della nuova architettura:The following diagram shows how the new architecture would look:

Ripristino di emergenza del gruppo di disponibilità

Il diagramma precedente illustra una nuova macchina virtuale denominata SQL-3.The preceding diagram shows a new virtual machine called SQL-3. SQL-3 è in un'area di Azure diversa.SQL-3 is in a different Azure region. SQL-3 viene aggiunta al cluster di failover di Windows Server.SQL-3 is added to the Windows Server Failover Cluster. SQL-3 può ospitare una replica del gruppo di disponibilità.SQL-3 can host an availability group replica. Si noti infine che l'area di Azure per SQL-3 ha un nuovo servizio di bilanciamento del carico di Azure.Finally, notice that the Azure region for SQL-3 has a new Azure load balancer.

Nota

Un set di disponibilità di Azure è necessario quando più macchine virtuali sono nella stessa area.An Azure availability set is required when more than one virtual machine is in the same region. Se una sola macchina virtuale è nell'area, il set di disponibilità non è necessario.If only one virtual machine is in the region, then the availability set is not required. È possibile inserire una macchina virtuale in un set di disponibilità solo al momento della creazione.You can only place a virtual machine in an availability set at creation time. Se la macchina virtuale è già in un set di disponibilità, è possibile aggiungere una macchina virtuale per un'altra replica in seguito.If the virtual machine is already in an availability set, you can add a virtual machine for an additional replica later.

In questa architettura la replica nell'area remota viene in genere configurata con la modalità di disponibilità commit asincrono e la modalità di failover manuale.In this architecture, the replica in the remote region is normally configured with asynchronous commit availability mode and manual failover mode.

Quando le repliche del gruppo di disponibilità sono nelle macchine virtuali di Azure in aree di Azure diverse, ogni area richiede:When availability group replicas are on Azure virtual machines in different Azure regions, each region requires:

  • Un gateway di rete virtualeA virtual network gateway
  • Una connessione gateway di rete virtualeA virtual network gateway connection

Il diagramma seguente illustra come le reti comunicano tra data center.The following diagram shows how the networks communicate between data centers.

Gruppo di disponibilità

Importante

Questa architettura è soggetta a costi per i dati in uscita replicati tra le aree di Azure.This architecture incurs outbound data charges for data replicated between Azure regions. Vedere Prezzi per la larghezza di banda.See Bandwidth Pricing.

Creare una replica remotaCreate remote replica

Per creare una replica in un data center remoto, seguire questa procedura:To create a replica in a remote data center, do the following steps:

  1. Creare una rete virtuale nella nuova area.Create a virtual network in the new region.

  2. Configurare una connessione da rete virtuale a rete virtuale con il portale di Azure.Configure a VNet-to-VNet connection using the Azure portal.

    Nota

    In alcuni casi, potrebbe essere necessario usare PowerShell per creare la connessione da rete virtuale a rete virtuale.In some cases, you may have to use PowerShell to create the VNet-to-VNet connection. Se, ad esempio, si usano account Azure diversi, non è possibile configurare la connessione nel portale.For example, if you use different Azure accounts you cannot configure the connection in the portal. In questi casi, vedere Configurare una connessione da rete virtuale a rete virtuale con il portale di Azure.In this case see, Configure a VNet-to-VNet connection using the Azure portal.

  3. Creare un controller di dominio nella nuova area.Create a domain controller in the new region.

    Questo controller di dominio fornisce l'autenticazione se il controller di dominio nel sito primario non è disponibile.This domain controller provides authentication if the domain controller in the primary site is not available.

  4. Creare una macchina virtuale SQL Server nella nuova area.Create a SQL Server virtual machine in the new region.

  5. Creare un servizio di bilanciamento del carico di Azure in rete nella nuova area.Create an Azure load balancer in the network on the new region.

    Questo servizio di bilanciamento del carico deve:This load balancer must:

    • Essere nella stessa rete e subnet della nuova macchina virtuale.Be in the same network and subnet as the new virtual machine.
    • Avere un indirizzo IP statico per il listener del gruppo di disponibilità.Have a static IP address for the availability group listener.
    • Includere un pool back-end costituito solo dalle macchine virtuali nella stessa area del servizio di bilanciamento del carico.Include a backend pool consisting of only the virtual machines in the same region as the load balancer.
    • Usare il probe di una porta TCP specifico dell'indirizzo IP.Use a TCP port probe specific to the IP address.
    • Avere una regola di bilanciamento del carico specifica dell'istanza di SQL Server nella stessa area.Have a load balancing rule specific to the SQL Server in the same region.
  6. Aggiungere la funzionalità di clustering di failover alla nuova istanza di SQL Server.Add Failover Clustering feature to the new SQL Server.

  7. Aggiungere la nuova istanza di SQL Server al dominio.Join the new SQL Server to the domain.

  8. Impostare il nuovo account del servizio SQL Server per l'uso di un account di dominio.Set the new SQL Server service account to use a domain account.

  9. Aggiungere la nuova istanza di SQL Server al cluster di failover di Windows Server.Add the new SQL Server to the Windows Server Failover Cluster.

  10. Creare una risorsa indirizzo IP nel cluster.Create an IP address resource on the cluster.

    È possibile creare la risorsa indirizzo IP in Gestione cluster di failover.You can create the IP address resource in Failover Cluster Manager. Fare clic con il pulsante destro del mouse sul ruolo del gruppo di disponibilità, scegliere Aggiungi risorsa, Altre risorse e fare clic su Indirizzo IP.Right-click the availability group role, click Add Resource, More Resources, and click IP Address.

    Creare un indirizzo IP

    Configurare l'indirizzo IP come segue:Configure this IP address as follows:

    • Usare la rete dal data center remoto.Use the network from the remote data center.
    • Assegnare l'indirizzo IP dal nuovo servizio di bilanciamento del carico di Azure.Assign the IP address from the new Azure load balancer.
  11. Nella nuova istanza di SQL Server in Gestione configurazione SQL Server abilitare i gruppi di disponibilità AlwaysOn.On the new SQL Server in SQL Server Configuration Manager, enable Always On Availability Groups.

  12. Aprire le porte del firewall nella nuova istanza di SQL Server.Open firewall ports on the new SQL Server.

    I numeri di porta che è necessario aprire dipendono dall'ambiente.The port numbers you need to open depend on your environment. Aprire le porte per l'endpoint del mirroring e il probe di integrità di bilanciamento del carico di Azure.Open ports for the mirroring endpoint and Azure load balancer health probe.

  13. Aggiungere una replica al gruppo di disponibilità nella nuova istanza di SQL Server.Add a replica to the availability group on the new SQL Server.

    Per una replica in un'area di Azure remota, impostarla per la replica asincrona con il failover manuale.For a replica in a remote Azure region, set it for asynchronous replication with manual failover.

  14. Aggiungere la risorsa indirizzo IP come dipendenza per il cluster del punto di accesso client listener (nome della rete).Add the IP address resource as a dependency for the listener client access point (network name) cluster.

    Lo screenshot seguente illustra una risorsa cluster di tipo indirizzo IP configurata correttamente:The following screenshot shows a properly configured IP address cluster resource:

    Gruppo di disponibilità

    Importante

    Il gruppo di risorse cluster include entrambi gli indirizzi IP.The cluster resource group includes both IP addresses. Entrambi gli indirizzi IP sono dipendenze per il punto di accesso client listener.Both IP addresses are dependencies for the listener client access point. Usare l'operatore OR nella configurazione delle dipendenze del cluster.Use the OR operator in the cluster dependency configuration.

  15. Impostare i parametri del cluster in PowerShell.Set the cluster parameters in PowerShell.

Eseguire lo script PowerShell con il nome di rete cluster, l'indirizzo IP e la porta probe configurati nel servizio di bilanciamento del carico nella nuova area.Run the PowerShell script with the cluster network name, IP address, and probe port that you configured on the load balancer in the new region.

$ClusterNetworkName = "<MyClusterNetworkName>" # The cluster name for the network in the new region (Use Get-ClusterNetwork on Windows Server 2012 of higher to find the name).
$IPResourceName = "<IPResourceName>" # The cluster name for the new IP Address resource.
$ILBIP = “<n.n.n.n>” # The IP Address of the Internal Load Balancer (ILB) in the new region. This is the static IP address for the load balancer you configured in the Azure portal.
[int]$ProbePort = <nnnnn> # The probe port you set on the ILB.

Import-Module FailoverClusters

Get-ClusterResource $IPResourceName | Set-ClusterParameter -Multiple @{"Address"="$ILBIP";"ProbePort"=$ProbePort;"SubnetMask"="255.255.255.255";"Network"="$ClusterNetworkName";"EnableDhcp"=0}

Impostare la connessione per più subnetSet connection for multiple subnets

La replica nel data center remoto fa parte del gruppo di disponibilità, ma si trova in un'altra subnet.The replica in the remote data center is part of the availability group but it is in a different subnet. Se questa replica diventa quella primaria, possono verificarsi timeout della connessione dell'applicazione.If this replica becomes the primary replica, application connection time-outs may occur. Questo comportamento è lo stesso di un gruppo di disponibilità locale in una distribuzione su più subnet.This behavior is the same as an on-premises availability group in a multi-subnet deployment. Per consentire le connessioni dalle applicazioni client, aggiornare la connessione client o configurare la memorizzazione nella cache della risoluzione dei nomi nella risorsa nome di rete del cluster.To allow connections from client applications, either update the client connection or configure name resolution caching on the cluster network name resource.

È preferibile aggiornare le stringhe di connessione client per impostare MultiSubnetFailover=Yes.Preferably, update the client connection strings to set MultiSubnetFailover=Yes. Vedere Connessione con MultiSubnetFailover.See Connecting With MultiSubnetFailover.

Se non è possibile modificare le stringhe di connessione, è possibile configurare la memorizzazione nella cache della risoluzione dei nomi.If you cannot modify the connection strings, you can configure name resolution caching. Vedere Connection Timeouts in Multi-subnet Availability Group (Timeout connessione in un gruppo di disponibilità su più subnet).See Connection Timeouts in Multi-subnet Availability Group.

Effettuare il failover in un'area remotaFail over to remote region

Per testare la connettività del listener all'area remota, è possibile effettuare il failover della replica nell'area remota.To test listener connectivity to the remote region, you can fail over the replica to the remote region. Mentre la replica è asincrona, il failover è soggetto a perdita potenziale di dati.While the replica is asynchronous, failover is vulnerable to potential data loss. Per effettuare il failover senza perdita di dati, impostare la modalità di disponibilità come sincrona e la modalità di failover come automatica.To fail over without data loss, change the availability mode to synchronous and set the failover mode to automatic. Seguire questa procedura:Use the following steps:

  1. In Esplora oggetti connettersi all'istanza di SQL Server che ospita la replica primaria.In Object Explorer, connect to the instance of SQL Server that hosts the primary replica.
  2. In Gruppi di disponibilità AlwaysOn, Gruppi di disponibilità fare clic con il pulsante destro del mouse sul gruppo di disponibilità e scegliere Proprietà.Under AlwaysOn Availability Groups, Availability Groups, right-click your availability group and click Properties.
  3. Nella pagina Generale in Repliche di disponibilità impostare la replica secondaria nel sito di ripristino di emergenza per l'uso della modalità di disponibilità Commit sincrono e della modalità di failover Automatico.On the General page, under Availability Replicas, set the secondary replica in the DR site to use Synchronous Commit availability mode and Automatic failover mode.
  4. Se è presente una replica secondaria nello stesso sito della replica primaria per la disponibilità elevata, impostare questa replica su Commit asincrono e Manuale.If you have a secondary replica in same site as your primary replica for high availability, set this replica to Asynchronous Commit and Manual.
  5. Fare clic su OK.Click OK.
  6. In Esplora oggetti fare clic con il pulsante destro del mouse sul gruppo di disponibilità e scegliere Mostra dashboard.In Object Explorer, right-click the availability group, and click Show Dashboard.
  7. Nel dashboard verificare che la replica nel sito di ripristino di emergenza sia sincronizzata.On the dashboard, verify that the replica on the DR site is synchronized.
  8. In Esplora oggetti fare clic con il pulsante destro del mouse sul gruppo di disponibilità e scegliere Failover. SQL Server Management Studio apre una procedura guidata per il failover di SQL Server.In Object Explorer, right-click the availability group, and click Failover.... SQL Server Management Studios opens a wizard to fail over SQL Server.
  9. Fare clic su Avanti e selezionare l'istanza di SQL Server nel sito del ripristino di emergenza.Click Next, and select the SQL Server instance in the DR site. Fare di nuovo clic su Avanti .Click Next again.
  10. Connettersi all'istanza di SQL Server nel sito di ripristino di emergenza e fare clic su Avanti.Connect to the SQL Server instance in the DR site and click Next.
  11. Nella pagina Riepilogo verificare le impostazioni e fare clic su Fine.On the Summary page, verify the settings and click Finish.

Dopo avere testato la connettività, spostare di nuovo la replica primaria nel data center primario e configurare di nuovo la modalità di disponibilità sulle normali impostazioni operative.After testing connectivity, move the primary replica back to your primary data center and set the availability mode back to their normal operating settings. La tabella seguente indica le normali impostazioni operative per l'architettura descritta in questo documento:The following table shows the normal operational settings for the architecture described in this document:

PercorsoLocation Istanza del serverServer Instance RuoloRole Modalità di disponibilitàAvailability Mode Modalità di failoverFailover Mode
Data center primarioPrimary data center SQL-1SQL-1 PrimarioPrimary SincronoSynchronous AutomaticoAutomatic
Data center primarioPrimary data center SQL-2SQL-2 SecondarioSecondary SincronoSynchronous AutomaticoAutomatic
Data center secondario o remotoSecondary or remote data center SQL-3SQL-3 SecondarioSecondary AsincronoAsynchronous ManualeManual

Altre informazioni sul failover manuale forzato e pianificatoMore information about planned and forced manual failover

Per ulteriori informazioni, vedere gli argomenti seguenti:For more information, see the following topics: