Proteggere SQL Server con il ripristino di emergenza di SQL Server e Azure Site RecoveryProtect SQL Server using SQL Server disaster recovery and Azure Site Recovery

Questo articolo descrive come proteggere il back-end SQL Server di un'applicazione usando una combinazione di Azure Site Recovery e tecnologie di continuità aziendale e ripristino di emergenza di SQL Server.This article describes how to protect the SQL Server back end of an application using a combination of SQL Server business continuity and disaster recovery (BCDR) technologies, and Azure Site Recovery.

Prima di iniziare, acquisire familiarità con le funzionalità di ripristino di emergenza di SQL Server, come il clustering di failover, i gruppi di disponibilità AlwaysOn, il mirroring del database e il log shipping.Before you start, make sure you understand SQL Server disaster recovery capabilities, including failover clustering, Always On availability groups, database mirroring, and log shipping.

Distribuzioni di SQL ServerSQL Server deployments

Molti carichi di lavoro usano come base SQL Server, che può essere integrato con app come SharePoint, Dynamics e SAP per implementare servizi dati.Many workloads use SQL Server as a foundation, and it can be integrated with apps such as SharePoint, Dynamics, and SAP, to implement data services. È possibile distribuire SQL Server in diversi modi.SQL Server can be deployed in a number of ways:

  • SQL Server autonomo: SQL Server e tutti i database sono ospitati in un singolo computer (fisico o una macchina virtuale).Standalone SQL Server: SQL Server and all databases are hosted on a single machine (physical or a virtual). Se è virtualizzato, il clustering dell'host viene usato per la disponibilità elevata.When virtualized, host clustering is used for local high availability. La disponibilità elevata a livello di guest non viene implementata.Guest-level high availability isn't implemented.
  • Istanze di clustering di failover di SQL Server (AlwaysOn): due o più nodi che eseguono istanze di SQL Server con dischi condivisi vengono configurati in un cluster di failover di Windows.SQL Server Failover Clustering Instances (Always On FCI): Two or more nodes running SQL Server instanced with shared disks are configured in a Windows Failover cluster. Se un nodo è inattivo, il cluster può effettuare il failover di SQL Server in un'altra istanza.If a node is down, the cluster can fail SQL Server over to another instance. Questa configurazione viene in genere usata per implementare la disponibilità elevata in un sito primario.This setup is typically used to implement high availability at a primary site. Questa distribuzione non offre la protezione da errori o interruzioni nel livello dell'archiviazione condivisa.This deployment doesn't protect against failure or outage in the shared storage layer. Un disco condiviso può essere implementato con iSCSI, Fibre Channel o VHDX condiviso.A shared disk can be implemented using iSCSI, fiber channel or shared vhdx.
  • Gruppi di disponibilità SQL AlwaysOn: due o più nodi vengono configurati in un cluster non condiviso con i database SQL Server configurati in un gruppo di disponibilità con replica sincrona e failover automatico.SQL Always On Availability Groups: Two or more nodes are set up in a shared nothing cluster, with SQL Server databases configured in an availability group, with synchronous replication and automatic failover.

    Per ripristinare i database in un sito remoto, in questo articolo vengono sfruttate le tecnologie di ripristino di emergenza native di SQL riportate di seguito:This article leverages the following native SQL disaster recovery technologies for recovering databases to a remote site:

  • Gruppi di disponibilità SQL AlwaysOn, per supportare il ripristino di emergenza per SQL Server 2012 o 2014 Enterprise Edition.SQL Always On Availability Groups, to provide for disaster recovery for SQL Server 2012 or 2014 Enterprise editions.

  • Mirroring del database SQL in modalità protezione elevata, per SQL Server Standard Edition (qualsiasi versione) o SQL Server 2008 R2.SQL database mirroring in high safety mode, for SQL Server Standard edition (any version), or for SQL Server 2008 R2.

Supporto di Site RecoverySite Recovery support

Scenari supportatiSupported scenarios

Site Recovery può proteggere SQL Server, come riepilogato nella tabella.Site Recovery can protect SQL Server as summarized in the table.

ScenarioScenario In un sito secondarioTo a secondary site In AzureTo Azure
Hyper-VHyper-V Yes Yes
VMwareVMware Yes Yes
Server fisicoPhysical server Yes Yes

Versioni di SQL Server supportateSupported SQL Server versions

Per gli scenari supportati, sono supportate le versioni di SQL Server seguenti:These SQL Server versions are supported, for the supported scenarios:

  • SQL Server 2016 Enterprise e StandardSQL Server 2016 Enterprise and Standard
  • SQL Server 2014 Enterprise e StandardSQL Server 2014 Enterprise and Standard
  • SQL Server 2012 Enterprise e StandardSQL Server 2012 Enterprise and Standard
  • SQL Server 2008 R2 Enterprise e StandardSQL Server 2008 R2 Enterprise and Standard

Supporto dell'integrazione con SQL ServerSupported SQL Server integration

Site Recovery può essere integrato con le tecnologie di continuità aziendale e ripristino di emergenza native di SQL Server riepilogate nella tabella per fornire una soluzione di ripristino di emergenza.Site Recovery can be integrated with native SQL Server BCDR technologies summarized in the table, to provide a disaster recovery solution.

FunzionalitàFeature DettagliDetails SQL ServerSQL Server
Gruppo di disponibilità AlwaysOnAlways On availability group Ognuna delle istanze autonome multiple di SQL Server viene eseguita in un cluster di failover con più nodi.Multiple standalone instances of SQL Server each run in a failover cluster that has multiple nodes.

I database possono essere raggruppati in gruppi di failover che possono essere copiati (con mirroring) in istanze di SQL Server in modo che non sia necessaria alcuna archiviazione condivisa.Databases can be grouped into failover groups that can be copied (mirrored) on SQL Server instances so that no shared storage is needed.

Fornisce il ripristino di emergenza tra un sito primario e uno o più siti secondari.Provides disaster recovery between a primary site and one or more secondary sites. Due nodi possono essere configurati in un cluster non condiviso con i database di SQL Server configurati in un gruppo di disponibilità con replica sincrona e failover automatico.Two nodes can be set up in a shared nothing cluster with SQL Server databases configured in an availability group with synchronous replication and automatic failover.
SQL Server 2014 e 2012 EnterpriseSQL Server 2014 & 2012 Enterprise edition
Clustering di failover (istanza del cluster di failover AlwaysOn)Failover clustering (Always On FCI) SQL Server usa il clustering di failover di Windows per l'elevata disponibilità dei carichi di lavoro SQL Server locali.SQL Server leverages Windows failover clustering for high availability of on-premises SQL Server workloads.

I nodi che eseguono le istanze di SQL Server con dischi condivisi sono configurati in un cluster di failover.Nodes running instances of SQL Server with shared disks are configured in a failover cluster. Se un'istanza non è attiva, il cluster esegue il failover in un'altra istanza.If an instance is down the cluster fails over to different one.

Il cluster non protegge da errori o interruzioni nell'archiviazione condivisa.The cluster doesn't protect against failure or outages in shared storage. Il disco condiviso può essere implementato con iSCSI, fibre channel o VHDX condivisi.The shared disk can be implemented with iSCSI, fiber channel, or shared VHDXs.
Edizioni SQL Server EnterpriseSQL Server Enterprise editions

Edizione SQL Server Standard (limitata a soli due nodi)SQL Server Standard edition (limited to two nodes only)
Mirroring del database (modalità di protezione elevata)Database mirroring (high safety mode) Protegge un singolo database in una singola copia secondaria.Protects a single database to a single secondary copy. Disponibile nelle modalità di replica a protezione elevata (sincrona) e a prestazione elevata (asincrona).Available in both high safety (synchronous) and high performance (asynchronous) replication modes. Non richiede un cluster di failover.Doesn’t require a failover cluster. SQL Server 2008 R2SQL Server 2008 R2

Tutte le edizioni di SQL Server EnterpriseSQL Server Enterprise all editions
SQL Server autonomoStandalone SQL Server SQL Server e il database si trovano in un singolo server (fisico o virtuale).The SQL Server and database are hosted on a single server (physical or virtual). Il clustering dell'host viene usato per la disponibilità elevata se il server è virtuale.Host clustering is used for high availability if the server is virtual. Nessuna disponibilità elevata a livello di guest.No guest-level high availability. Edizione Enterprise o StandardEnterprise or Standard edition

Indicazioni di distribuzioneDeployment recommendations

Nella tabella seguente vengono riepilogate le indicazioni per l'integrazione delle tecnologie di continuità aziendale e ripristino di emergenza (BCDR) di SQL Server con Site Recovery.This table summarizes our recommendations for integrating SQL Server BCDR technologies with Site Recovery.

VersioneVersion EdizioneEdition DistribuzioneDeployment Da locale a localeOn-prem to on-prem Da locale ad AzureOn-prem to Azure
SQL Server 2014 o 2012SQL Server 2014 or 2012 EnterpriseEnterprise Istanza del cluster di failoverFailover cluster instance Gruppi di disponibilità AlwaysOnAlways On availability groups Gruppi di disponibilità AlwaysOnAlways On availability groups
EnterpriseEnterprise Gruppo di disponibilità AlwaysOn per la disponibilità elevataAlways On availability groups for high availability Gruppi di disponibilità AlwaysOnAlways On availability groups Gruppi di disponibilità AlwaysOnAlways On availability groups
StandardStandard Istanza del cluster di failover (FCI)Failover cluster instance (FCI) Replica di Site Recovery con mirror localeSite Recovery replication with local mirror Replica di Site Recovery con mirror localeSite Recovery replication with local mirror
Enterprise o StandardEnterprise or Standard AutonomaStandalone Replica di Site RecoverySite Recovery replication Replica di Site RecoverySite Recovery replication
SQL Server 2008 R2 o 2008SQL Server 2008 R2 or 2008 Enterprise o StandardEnterprise or Standard Istanza del cluster di failover (FCI)Failover cluster instance (FCI) Replica di Site Recovery con mirror localeSite Recovery replication with local mirror Replica di Site Recovery con mirror localeSite Recovery replication with local mirror
Enterprise o StandardEnterprise or Standard AutonomaStandalone Replica di Site RecoverySite Recovery replication Replica di Site RecoverySite Recovery replication
SQL Server (qualsiasi versione)SQL Server (Any version) Enterprise o StandardEnterprise or Standard Istanza del cluster di failover: applicazione DTCFailover cluster instance - DTC application Replica di Site RecoverySite Recovery replication Non supportatoNot Supported

Prerequisiti di distribuzioneDeployment prerequisites

  • Distribuzione di SQL Server locale che esegue una versione supportata di SQL Server.An on-premises SQL Server deployment, running a supported SQL Server version. In genere è necessario anche Active Directory per il server SQL.Typically, you also need Active Directory for your SQL server.
  • Requisiti per lo scenario che si vuole distribuire.The requirements for the scenario you want to deploy. Per altre informazioni sui requisiti per il supporto, vedere gli articoli relativi alla replica in Azure e in locale e ai prerequisiti per la distribuzione.Learn more about support requirements for replication to Azure and on-premises, and deployment prerequisites.
  • Per configurare il ripristino in Azure, eseguire lo strumento Azure Virtual Machine Readiness Assessment nelle macchine virtuali di SQL Server per verificare che siano compatibili con Azure e Site Recovery.To set up recovery in Azure, run the Azure Virtual Machine Readiness Assessment tool on your SQL Server virtual machines, to make sure they're compatible with Azure and Site Recovery.

Configurare Active DirectorySet up Active Directory

Per garantire la corretta esecuzione di SQL Server, configurare Active Directory nel sito di ripristino secondario.Set up Active Directory, in the secondary recovery site, for SQL Server to run properly.

  • Organizzazione di piccole dimensioni: in presenza di un numero ridotto di applicazioni e di un singolo controller di dominio per il sito locale, se si vuole effettuare il failover dell'intero sito è consigliabile usare la replica di Site Recovery per replicare il controller di dominio nel data center secondario o in Azure.Small enterprise—With a small number of applications, and single domain controller for the on-premises site, if you want to fail over the entire site, we recommend you use Site Recovery replication to replicate the domain controller to the secondary datacenter, or to Azure.
  • Organizzazione di medie o grandi dimensioni: se si hanno un numero elevato di applicazioni e una foresta Active Directory e si vuole effettuare il failover per applicazione o carico di lavoro, è consigliabile configurare un controller di dominio aggiuntivo nel data center secondario o in Azure.Medium to large enterprise—If you have a large number of applications, an Active Directory forest, and you want to fail over by application or workload, we recommend you set up an additional domain controller in the secondary datacenter, or in Azure. Se si usano gruppi di disponibilità AlwaysOn per il ripristino in un sito remoto, è consigliabile configurare un altro controller di dominio aggiuntivo nel sito secondario o in Azure, da usare per l'istanza di SQL Server ripristinata.If you're using Always On availability groups to recover to a remote site, we recommend you set up another additional domain controller on the secondary site or in Azure, to use for the recovered SQL Server instance.

Le istruzioni in questo articolo presuppongono che sia disponibile un controller di dominio nella posizione secondaria.The instructions in this article presume that a domain controller is available in the secondary location. Altre informazioni sulla protezione di Active Directory con Site Recovery.Read more about protecting Active Directory with Site Recovery.

Eseguire l'integrazione con SQL Server AlwaysOn per la replica in AzureIntegrate with SQL Server Always On for replication to Azure

È necessario eseguire queste operazioni:Here's what you need to do:

  1. Importare gli script nell'account di Automazione di Azure.Import scripts into your Azure Automation account. Sono inclusi gli script per il failover del gruppo di disponibilità SQL in una macchina virtuale di Resource Manager e una macchina virtuale classica.This contains the scripts to failover SQL Availability Group in a Resource Manager virtual machine and a Classic virtual machine.

    Distribuzione in AzureDeploy to Azure

  2. Aggiungere ASR-SQL-FailoverAG come azione preliminare del primo gruppo del piano di ripristino.Add ASR-SQL-FailoverAG as a pre action of the first group of the recovery plan.

  3. Seguire le istruzioni disponibili nello script per creare una variabile di automazione in modo da specificare il nome dei gruppi di disponibilità.Follow the instructions available in the script to create an automation variable to provide the name of the availability groups.

Passaggi per eseguire un failover di testSteps to do a test failover

SQL AlwaysOn non supporta il failover di test in modo nativo.SQL Always On doesn’t natively support test failover. È quindi consigliabile eseguire queste operazioni:Therefore, we recommend the following:

  1. Configurare Backup di Azure nella macchina virtuale che ospita la replica del gruppo di disponibilità in Azure.Set up Azure Backup on the virtual machine that hosts the availability group replica in Azure.

  2. Prima di attivare il failover di test del piano di ripristino, ripristinare la macchina virtuale dal backup creato nel passaggio precedente.Before triggering test failover of the recovery plan, recover the virtual machine from the backup taken in the previous step.

    <span data-ttu-id="c7317-235">Eseguire il ripristino da Backup di Azure</span><span class="sxs-lookup"><span data-stu-id="c7317-235">Restore from Azure Backup</span></span>

  3. Forzare un quorum nella macchina virtuale ripristinata dal backup.Force a quorum in the virtual machine restored from backup.

  4. Aggiornare l'indirizzo IP del listener a un indirizzo IP disponibile nella rete di failover di test.Update IP of the listener to an IP available in the test failover network.

    Aggiornare l'indirizzo IP del listener

  5. Portare online il listener.Bring listener online.

    Portare online il listener

  6. Creare un servizio di bilanciamento del carico con un indirizzo IP creato nel pool di indirizzi IP front-end corrispondente al listener di ogni gruppo di disponibilità e con la macchina virtuale SQL aggiunta nel pool back-end.Create a load balancer with one IP created under frontend IP pool corresponding to each availability group listener and with the SQL virtual machine added in the backend pool.

    <span data-ttu-id="c7317-242">Creazione del servizio di bilanciamento del carico - Pool di indirizzi front-end</span><span class="sxs-lookup"><span data-stu-id="c7317-242">Create Load Balancer - Frontend IP pool</span></span>

    <span data-ttu-id="c7317-243">Creazione del servizio di bilanciamento del carico - Pool back-end</span><span class="sxs-lookup"><span data-stu-id="c7317-243">Create Load Balancer - Backend pool</span></span>

  7. Effettuare un failover di test del piano di ripristino.Do a test failover of the recovery plan.

Passaggi per eseguire un failoverSteps to do a failover

Dopo aver aggiunto lo script nel piano di ripristino e aver convalidato il piano di ripristino tramite un failover di test, è possibile eseguire il failover del piano di ripristino.Once you have added the script in the recovery plan and validated the recovery plan by doing a test failover, you can do failover of the recovery plan.

Eseguire l'integrazione con SQL Server AlwaysOn per la replica in un sito secondario localeIntegrate with SQL Server Always On for replication to a secondary on-premises site

Se SQL Server usa gruppi di disponibilità per la disponibilità elevata o un'istanza di clustering di failover, è consigliabile usare gruppi di disponibilità anche nel sito di ripristino.If the SQL Server is using availability groups for high availability (or an FCI), we recommend using availability groups on the recovery site as well. Si noti che ciò si applica alle app che non usano transazioni distribuite.Note that this applies to apps that don't use distributed transactions.

  1. Configurare i database in gruppi di disponibilità.Configure databases into availability groups.
  2. Creare una rete virtuale nel sito secondario.Create a virtual network on the secondary site.
  3. Configurare una connessione VPN da sito a sito tra la rete virtuale e il sito primario.Set up a site-to-site VPN connection between the virtual network, and the primary site.
  4. Creare una macchina virtuale nel sito di ripristino e installarvi SQL Server.Create a virtual machine on the recovery site, and install SQL Server on it.
  5. Estendere i gruppi di disponibilità AlwaysOn esistenti alla nuova VM di SQL Server.Extend the existing Always On availability groups to the new SQL Server VM. Configurare l'istanza di SQL Server come una copia di replica asincrona.Configure this SQL Server instance as an asynchronous replica copy.
  6. Creare un listener del gruppo di disponibilità o aggiornare il listener esistente per includere la macchina virtuale di replica asincrona.Create an availability group listener, or update the existing listener to include the asynchronous replica virtual machine.
  7. Verificare che la farm dell'applicazione sia configurata con il listener.Make sure that the application farm is set up using the listener. Se è configurata con il nome del server di database, aggiornarla per usare il listener in modo che non debba essere riconfigurata dopo il failover.If it's setup up using the database server name, update it to use the listener, so you don't need to reconfigure it after the failover.

Per le applicazioni che usano transazioni distribuite, è consigliabile distribuire Site Recovery con la replica da sito a sito di VM VMware/server fisici.For applications that use distributed transactions, we recommend you deploy Site Recovery with VMware/physical server site-to-site replication.

Considerazioni sul piano di ripristinoRecovery plan considerations

  1. Aggiungere questo script di esempio alla libreria VMM nei siti primari e secondari.Add this sample script to the VMM library, on the primary and secondary sites.

     Param(
     [string]$SQLAvailabilityGroupPath
     )
     import-module sqlps
     Switch-SqlAvailabilityGroup -Path $SQLAvailabilityGroupPath -AllowDataLoss -force
    
  2. Quando si crea un piano di ripristino per l'applicazione, aggiungere un'azione preliminare al passaggio di script Group-1 che richiami lo script per eseguire il failover dei gruppi di disponibilità.When you create a recovery plan for the application, add a pre action to Group-1 scripted step, that invokes the script to fail over availability groups.

Proteggere un'istanza di SQL Server autonomaProtect a standalone SQL Server

In questo scenario, è consigliabile usare la replica di Site Recovery per proteggere il computer SQL Server.In this scenario, we recommend that you use Site Recovery replication to protect the SQL Server machine. La procedura esatta varia a seconda che SQL Server sia configurato come VM o server fisico e che si voglia eseguire la replica in Azure o in un sito secondario locale.The exact steps will depend whether SQL Server is a VM or a physical server, and whether you want to replicate to Azure or a secondary on-premises site. Vedere l'articolo relativo agli scenari di Site Recovery.Learn about Site Recovery scenarios.

Proteggere un cluster SQL Server (Standard Edition/Windows Server 2008 R2)Protect a SQL Server cluster (standard edition/Windows Server 2008 R2)

Per un cluster che esegue SQL Server Standard Edition o SQL Server 2008 R2, è consigliabile usare la replica di Site Recovery per proteggere SQL Server.For a cluster running SQL Server Standard edition, or SQL Server 2008 R2, we recommend you use Site Recovery replication to protect SQL Server.

Da sito locale a sito localeOn-premises to on-premises

  • Se l'app usa transazioni distribuite, è consigliabile distribuire Site Recovery con la replica SAN per un ambiente Hyper-V oppure la replica da server fisico/VMware a VMware per un ambiente VMware.If the app uses distributed transactions we recommend you deploy Site Recovery with SAN replication for a Hyper-V environment, or VMware/physical server to VMware for a VMware environment.
  • Per le applicazioni non DTC, usare l'approccio precedente per ripristinare il cluster come un server autonomo sfruttando un mirror del database a protezione elevata locale.For non-DTC applications, use the above approach to recover the cluster as a standalone server, by leveraging a local high safety DB mirror.

Da sito locale ad AzureOn-premises to Azure

Site Recovery non offre il supporto di cluster guest durante la replica in Azure.Site Recovery doesn't provide guest cluster support when replicating to Azure. Inoltre, SQL Server non fornisce una soluzione di ripristino di emergenza a costo contenuto per l'edizione Standard.SQL Server also doesn't provide a low-cost disaster recovery solution for Standard edition. In questo scenario, è consigliabile proteggere il cluster SQL Server locale in un'istanza di SQL Server autonoma e ripristinarlo in Azure.In this scenario, we recommend you protect the on-premises SQL Server cluster to a standalone SQL Server, and recover it in Azure.

  1. Configurare un'istanza di SQL Server autonoma aggiuntiva nel sito locale.Configure an additional standalone SQL Server instance on the on-premises site.
  2. Configurare l'istanza in modo che funga da mirror per i database da proteggere.Configure the instance to serve as a mirror for the databases you want to protect. Configurare il mirroring in modalità protezione elevata.Configure mirroring in high safety mode.
  3. Configurare Site Recovery nel sito locale, per Hyper-V o VM VMware/server fisici.Configure Site Recovery on the on-premises site, for (Hyper-V or VMware VMs/physical servers).
  4. Usare la replica di Site Recovery per eseguire la replica della nuova istanza di SQL Server in Azure.Use Site Recovery replication to replicate the new SQL Server instance to Azure. Trattandosi di una copia mirror a protezione elevata, verrà sincronizzata con il cluster primario, ma verrà replicata in Azure con la replica di Site Recovery.Since it's a high safety mirror copy, it will be synchronized with the primary cluster, but it will be replicated to Azure using Site Recovery replication.

Cluster standard

Considerazioni sul failbackFailback considerations

Per i cluster SQL Server Standard, il failback dopo un failover non pianificato richiede un backup e un ripristino di SQL Server dall'istanza del mirror al cluster originale, con ridefinizione del mirror.For SQL Server Standard clusters, failback after an unplanned failover requires a SQL server backup and restore, from the mirror instance to the original cluster, with reestablishment of the mirror.

Passaggi successiviNext steps

Altre informazioni sull'architettura di Site Recovery.Learn more about Site Recovery architecture.