Panoramica della continuità aziendale del database SQL di AzureOverview of business continuity with Azure SQL Database

La continuità aziendale nel database SQL di Azure fa riferimento a meccanismi, criteri e procedure che consentono all'azienda di continuare a funzionare in caso di interruzione, in particolare per quanto riguarda la propria infrastruttura di calcolo.Business continuity in Azure SQL Database refers to the mechanisms, policies, and procedures that enable your business to continue operating in the face of disruption, particularly to its computing infrastructure. Nella maggior parte dei casi, il database SQL di Azure gestirà gli eventi di arresto improvviso che potrebbero verificarsi nell'ambiente cloud e manterrà le applicazioni e i processi aziendali in esecuzione.In the most of the cases, Azure SQL Database will handle the disruptive events that might happen in the cloud environment and keep your applications and business processes running. Tuttavia, esistono alcuni eventi di disturbo che non possono essere gestiti dal database SQL automaticamente, ad esempio:However, there are some disruptive events that cannot be handled by SQL Database automatically such as:

  • Un utente elimina o aggiorna accidentalmente una riga in una tabella.User accidentally deleted or updated a row in a table.
  • Un utente malintenzionato riesce a eliminare dati o database.Malicious attacker succeeded to delete data or drop a database.
  • Un terremoto causa un'interruzione dell'alimentazione e una disabilitazione temporanea del data center.Earthquake caused a power outage and temporary disabled data-center.

Questa panoramica descrive le funzionalità offerte dal database SQL di Azure per la continuità aziendale e il ripristino di emergenza.This overview describes the capabilities that Azure SQL Database provides for business continuity and disaster recovery. Informazioni su opzioni, raccomandazioni ed esercitazioni per il ripristino da eventi di arresto improvviso che potrebbero provocare la perdita di dati o la disattivazione del database e dell'applicazione.Learn about options, recommendations, and tutorials for recovering from disruptive events that could cause data loss or cause your database and application to become unavailable. Informazioni sulle operazioni da eseguire quando si verifica un errore generato da un utente o da un'applicazione che influisce sull'integrità dei dati, se in un'area di Azure si verifica un'interruzione o quando l'applicazione richiede manutenzione.Learn what to do when a user or application error affects data integrity, an Azure region has an outage, or your application requires maintenance.

Funzionalità del database SQL che è possibile usare per assicurare la continuità aziendaleSQL Database features that you can use to provide business continuity

Dalla prospettiva del database, sono presenti quattro scenari principali di potenziali interruzioni:From a database perspective, there are four major potential disruption scenarios:

  • Errori hardware o software locali che interessano il nodo del database, ad esempio un errore del disco rigido.Local hardware or software failures affecting the database node such as a disk-drive failure.
  • Il danneggiamento o l'eliminazione di dati causati in genere da un bug dell'applicazione o da un errore umano.Data corruption or deletion typically caused by an application bug or human error. Tali errori sono specifici dell'applicazione e in genere non possono essere rilevati dal servizio di database.Such failures are application-specific and typically cannot be detected by the database service.
  • Interruzione del Data Center, probabilmente causata da una calamità naturale.Datacenter outage, possibly caused by a natural disaster. Questo scenario richiede un certo livello di ridondanza geografica con il failover delle applicazioni in un Data Center alternativo.This scenario requires some level of geo-redundancy with application failover to an alternate datacenter.
  • Errori di aggiornamento o manutenzione, problemi imprevisti che si verificano durante la manutenzione o gli aggiornamenti dell'infrastruttura pianificata possono richiedere un rollback rapido a uno stato precedente del database.Upgrade or maintenance errors, unanticipated issues that occur during planned infrastructure maintenance or upgrades may require rapid rollback to a prior database state.

Per attenuare gli errori hardware e software locali, il database SQL include un' architettura a disponibilità elevatache garantisce il ripristino automatico da questi errori con un contratto di contratto di disponibilità fino al 99,995%.To mitigate the local hardware and software failures, SQL Database includes a high availability architecture, which guarantees automatic recovery from these failures with up to 99.995% availability SLA.

Per proteggere l'azienda dalla perdita di dati, il database SQL crea automaticamente backup completi del database ogni settimana, backup differenziali del database ogni 12 ore e backup del log delle transazioni ogni 5-10 minuti.To protect your business from data loss, SQL Database automatically creates full database backups weekly, differential database backups every 12 hours, and transaction log backups every 5 - 10 minutes . I backup vengono archiviati nell'archiviazione RA-GRS per almeno 7 giorni per tutti i livelli di servizio.The backups are stored in RA-GRS storage for at least 7 days for all service tiers. Tutti i livelli di servizio ad eccezione supporto Basic periodo di conservazione dei backup configurabile per il ripristino temporizzato, fino a 35 giorni.All service tiers except Basic support configurable backup retention period for point-in-time restore, up to 35 days.

Il database SQL offre inoltre diverse funzionalità di continuità aziendale, che è possibile utilizzare per attenuare diversi scenari non pianificati.SQL Database also provides several business continuity features, that you can use to mitigate various unplanned scenarios.

Ripristinare un database nella stessa area di AzureRecover a database within the same Azure region

È possibile utilizzare i backup automatici del database per ripristinare un database a un punto nel tempo precedente.You can use automatic database backups to restore a database to a point in time in the past. In questo modo è possibile eseguire il ripristino dai danneggiamenti dei dati causati da errori umani.This way you can recover from data corruptions caused by human errors. Il ripristino in poin consente di creare un nuovo database nello stesso server che rappresenta lo stato dei dati prima dell'evento danneggiato.The poin-in-time restore allows you to create a new database in the same server that represents the state of data prior to the corrupting event. Per la maggior parte dei database, le operazioni di ripristino richiedono meno di 12 ore.For most databases the restore operations takes less than 12 hours. Il ripristino di un database molto grande o molto attivo potrebbe richiedere più tempo.It may take longer to recover a very large or very active database. Per altre informazioni sui tempi di ripristino, vedere il tempo di ripristino dei database.For more information about recovery time, see database recovery time.

Se il periodo di conservazione dei backup massimo supportato per il ripristino temporizzato (ripristino temporizzato) non è sufficiente per l'applicazione, è possibile estenderlo configurando un criterio di conservazione a lungo termine per i database.If the maximum supported backup retention period for point-in-time restore (PITR) is not sufficient for your application, you can extend it by configuring a long-term retention (LTR) policy for the database(s). Per altre informazioni, vedere Conservazione dei backup a lungo termine.For more information, see Long-term backup retention.

Confrontare la replica geografica con i gruppi di failoverCompare geo-replication with failover groups

I gruppi di failover automatico semplificano la distribuzione e l'uso della replica geografica e aggiungono le funzionalità aggiuntive, come descritto nella tabella seguente:Auto-failover groups simplify the deployment and usage of geo-replication and add the additional capabilities as described in the following table:

Replica geograficaGeo-replication Gruppi di failoverFailover groups
Failover automaticoAutomatic failover NoNo YesYes
Eseguire contemporaneamente il failover di più databaseFail over multiple databases simultaneously NoNo Yes
Aggiornare la stringa di connessione dopo il failoverUpdate connection string after failover Yes NoNo
Istanza gestita supportataManaged instance supported NoNo YesYes
Può trovarsi nella stessa area del database primarioCan be in same region as primary Yes NoNo
Più replicheMultiple replicas Yes NoNo
Supporta la scalabilità in letturaSupports read-scale YesYes Yes
     

Recuperare un database nel server esistenteRecover a database to the existing server

Anche se raramente, un data center di Azure può subire un'interruzione del servizio.Although rare, an Azure data center can have an outage. Quando si verifica un'interruzione, viene generata un'interruzione delle attività che potrebbe durare solo pochi minuti oppure ore.When an outage occurs, it causes a business disruption that might only last a few minutes or might last for hours.

  • Una delle opzioni è attendere che il database torni online al termine dell'interruzione del data center.One option is to wait for your database to come back online when the data center outage is over. Questa opzione funziona per le applicazioni che possono rimanere con il database offline.This works for applications that can afford to have the database offline. Ad esempio, un progetto di sviluppo o una versione di valutazione gratuita su cui non è necessario lavorare costantemente.For example, a development project or free trial you don't need to work on constantly. Quando un data center registra un'interruzione del servizio, non si sa quanto tempo essa durerà. Pertanto, questa opzione funziona solo se è possibile rinunciare al database per un periodo di tempo.When a data center has an outage, you do not know how long the outage might last, so this option only works if you don't need your database for a while.
  • Un'altra opzione consiste nel ripristinare un database su qualunque server in qualsiasi area di Azure usando i backup dei database con ridondanza geografica (ripristino geografico).Another option is to restore a database on any server in any Azure region using geo-redundant database backups (geo-restore). Il ripristino geografico usa un backup con ridondanza geografica come origine e può essere usato per ripristinare un database anche se il database o il data center è inaccessibile a causa di un'interruzione del servizio.Geo-restore uses a geo-redundant backup as its source and can be used to recover a database even if the database or datacenter is inaccessible due to an outage.
  • Infine, è possibile eseguire rapidamente il ripristino a seguito di un'interruzione se è stata configurata la replica geografica secondaria usando la replica geografica attiva o un gruppo di failover automatico per il database o i database.Finally, you can quickly recover from an outage if you have configured either geo-secondary using active geo-replication or an auto-failover group for your database or databases. A seconda della tecnologia scelta, è possibile usare il failover manuale o automatico.Depending on your choice of these technologies, you can use either manual or automatic failover. Il failover richiede solo alcuni secondi, ma il servizio impiegherà almeno un'ora per attivare il processo.While failover itself takes only a few seconds, the service will take at least 1 hour to activate it. Questo passaggio è necessario per assicurarsi che il failover sia giustificato dalla portata dell'interruzione.This is necessary to ensure that the failover is justified by the scale of the outage. Inoltre, il failover può comportare una lieve perdita di dati a causa della natura della replica asincrona.Also, the failover may result in small data loss due to the nature of asynchronous replication.

Quando si sviluppa il piano di continuità aziendale, è necessario conoscere il tempo massimo accettabile prima che l'applicazione venga ripristinata completamente dopo l'evento di arresto improvviso.As you develop your business continuity plan, you need to understand the maximum acceptable time before the application fully recovers after the disruptive event. Il tempo necessario per l'applicazione per il ripristino completo è noto come obiettivo del tempo di ripristino (RTO).The time required for application to fully recover is known as Recovery time objective (RTO). È anche necessario comprendere il periodo massimo di aggiornamenti dei dati recenti (intervallo di tempo) che l'applicazione può tollerare durante il ripristino da un evento di disturbo non pianificato.You also need to understand the maximum period of recent data updates (time interval) the application can tolerate losing when recovering from an unplanned disruptive event. La perdita di dati potenziale è nota come obiettivo del punto di ripristino (RPO).The potential data loss is known as Recovery point objective (RPO).

Metodi di ripristino diversi offrono livelli diversi di RPO e RTO.Different recovery methods offer different levels of RPO and RTO. È possibile scegliere un metodo di ripristino specifico oppure utilizzare una combinazione di metodi per ottenere il ripristino completo dell'applicazione.You can choose a specific recovery method, or use a combination of methods to achieve full application recovery. Nella tabella seguente vengono confrontati RPO e RTO di ogni opzione di ripristino.The following table compares RPO and RTO of each recovery option. I gruppi di failover automatico semplificano la distribuzione e l'uso della replica geografica e aggiungono le funzionalità aggiuntive, come descritto nella tabella seguente.Auto-failover groups simplify the deployment and usage of geo-replication and adds the additional capabilities as described in the following table.

Metodo RecoveryRecovery method RTORTO RPORPO
Ripristino geografico dai backup con replica geograficaGeo-restore from geo-replicated backups 12 ore12 h 1 h1 h
Gruppi di failover automaticoAuto-failover groups 1 h1 h 5 s5 s
Failover manuale del databaseManual database failover 30 s30 s 5 s5 s

Nota

Il failover manuale del database si riferisce al failover di un singolo database con la replica geografica secondaria usando la modalità non pianificata.Manual database failover refers to failover of a single database to its geo-replicated secondary using the unplanned mode. Per informazioni dettagliate su RTO e RPO del failover automatico, vedere la tabella riportata in precedenza in questo articolo.See the table earlier in this article for details of the auto-failover RTO and RPO.

Usare i gruppi di failover automatico se l'applicazione soddisfa uno qualsiasi dei criteri seguenti:Use auto-failover groups if your application meets any of these criteria:

  • È considerata cruciale.Is mission critical.
  • Ha un contratto di servizio che non consente 12 ore o più di inattività.Has a service level agreement (SLA) that does not allow for 12 hours or more of downtime.
  • Il tempo di inattività può implicare responsabilità finanziaria.Downtime may result in financial liability.
  • Ha un'elevata frequenza di modifica dei dati e una perdita di dati di un'ora non è accettabile.Has a high rate of data change and 1 hour of data loss is not acceptable.
  • Il costo aggiuntivo della replica geografica attiva è inferiore rispetto alla potenziale responsabilità finanziaria e alla perdita di profitto associata.The additional cost of active geo-replication is lower than the potential financial liability and associated loss of business.

È possibile scegliere di usare una combinazione di backup di database e la replica geografica attiva a seconda dei requisiti dell'applicazione.You may choose to use a combination of database backups and active geo-replication depending upon your application requirements. Per informazioni sulle considerazioni di progettazione per i database autonomi e per i pool elastici che usano queste funzionalità di continuità aziendale, vedere progettare un'applicazione per il ripristino di emergenza cloud e strategie di ripristino di emergenza del pool elastico.For a discussion of design considerations for stand-alone databases and for elastic pools using these business continuity features, see Design an application for cloud disaster recovery and Elastic pool disaster recovery strategies.

Le sezioni seguenti forniscono una panoramica della procedura per eseguire il ripristino tramite backup del database o replica geografica attiva.The following sections provide an overview of the steps to recover using either database backups or active geo-replication. Per la procedura dettagliata, inclusa la pianificazione dei requisiti, i passaggi successivi al ripristino e informazioni su come simulare un'interruzione del servizio per eseguire un'analisi del ripristino di emergenza, vedere Ripristinare un database SQL di Azure o eseguire il failover in un database secondario.For detailed steps including planning requirements, post recovery steps, and information about how to simulate an outage to perform a disaster recovery drill, see Recover a SQL Database from an outage.

Prepararsi a un'interruzione del servizioPrepare for an outage

Indipendentemente dalla funzionalità di continuità aziendale in uso, è necessario:Regardless of the business continuity feature you use, you must:

  • Identificare e preparare il server di destinazione, tra cui le regole del firewall IP a livello di server, gli account di accesso e le autorizzazioni a livello di database master.Identify and prepare the target server, including server-level IP firewall rules, logins, and master database level permissions.
  • Stabilire come verranno reindirizzati i client e le applicazioni client verso il nuovo serverDetermine how to redirect clients and client applications to the new server
  • Documentare altre dipendenze, ad esempio impostazioni di controllo e avvisiDocument other dependencies, such as auditing settings and alerts

Se non ci si prepara adeguatamente al ripristino, riportare online le applicazioni dopo un failover o un ripristino del database richiederà ulteriore tempo e probabilmente la risoluzione di problemi aggiuntivi in un momento di stress: una combinazione da evitare.If you do not prepare properly, bringing your applications online after a failover or a database recovery takes additional time and likely also require troubleshooting at a time of stress - a bad combination.

Failover a un database secondario con replica geograficaFail over to a geo-replicated secondary database

Se si usa la replica geografica attiva o i gruppi di failover automatico come meccanismo di ripristino, è possibile configurare un criterio di failover automatico o usare il failover manuale non pianificato.If you are using active geo-replication or auto-failover groups as your recovery mechanism, you can configure an automatic failover policy or use manual unplanned failover. Una volta avviato, il failover fa sì che il database secondario venga alzato di livello come nuovo database primario e sia pronto per registrare nuove transazioni e rispondere a tutte le query, con una perdita di dati minima per i dati non ancora replicati.Once initiated, the failover causes the secondary to become the new primary and ready to record new transactions and respond to queries - with minimal data loss for the data not yet replicated. Per informazioni su come progettare il processo di failover, vedere Progettare un'applicazione per il ripristino di emergenza cloud.For information on designing the failover process, see Design an application for cloud disaster recovery.

Nota

Quando il data center ritorna in linea, i database primari precedenti si ricollegano automaticamente al nuovo database primario e diventano database secondari.When the data center comes back online the old primaries automatically reconnect to the new primary and become secondary databases. Se si desidera spostare di nuovo il database primario nell'area originale è possibile avviare manualmente un failover pianificato (failback).If you need to relocate the primary back to the original region, you can initiate a planned failover manually (failback).

Eseguire un ripristino geograficoPerform a geo-restore

Se si usano i backup automatici con l'archiviazione con ridondanza geografica (abilitata per impostazione predefinita), è possibile ripristinare il database tramite il ripristino geografico.If you are using the automated backups with geo-redundant storage (enabled by default), you can recover the database using geo-restore. In genere il ripristino avviene entro 12 ore, con una perdita di dati fino a 1 ora, a seconda dell'ultima acquisizione e replica del backup del log.Recovery usually takes place within 12 hours - with data loss of up to one hour determined by when the last log backup was taken and replicated. Fino a quando non viene completato il ripristino, il database non è in grado di registrare tutte le transazioni o rispondere a tutte le query.Until the recovery completes, the database is unable to record any transactions or respond to any queries. Si noti che il ripristino geografico consente solo di ripristinare il database al punto di ripristino più recente disponibile.Note, geo-restore only restores the database to the last available point in time.

Nota

Se il data center ritorna online prima che l'applicazione venga spostata sul database ripristinato, è possibile annullare il ripristino.If the data center comes back online before you switch your application over to the recovered database, you can cancel the recovery.

Eseguire attività successive al filover/ripristinoPerform post failover / recovery tasks

Dopo il ripristino da un meccanismo di ripristino, è necessario eseguire le seguenti attività aggiuntive prima che utenti e applicazioni siano nuovamente attivi e in esecuzione:After recovery from either recovery mechanism, you must perform the following additional tasks before your users and applications are back up and running:

  • Reindirizzare i client e le applicazioni client verso il nuovo server e il database ripristinatoRedirect clients and client applications to the new server and restored database
  • Verificare che siano disponibili regole del firewall IP a livello di server appropriate per consentire agli utenti di connettersi o usare i firewall a livello di database per abilitare regole appropriate.Ensure appropriate server-level IP firewall rules are in place for users to connect or use database-level firewalls to enable appropriate rules.
  • Verificare che siano presenti gli account di accesso appropriato e le autorizzazioni a livello di database master o usare gli utenti contenutiEnsure appropriate logins and master database level permissions are in place (or use contained users)
  • Configurare il controllo in base alle proprie esigenze.Configure auditing, as appropriate
  • Configurare gli avvisi in base alle proprie esigenze.Configure alerts, as appropriate

Nota

Se si usa un gruppo di failover e ci si connette ai database mediante il listener di lettura/scrittura, il reindirizzamento dopo il failover verrà eseguito automaticamente e in modo trasparente per l'applicazione.If you are using a failover group and connect to the databases using the read-write lstener, the redirection after failover will happen automatically and transparently to the application.

Aggiornare un'applicazione con tempo di inattività minimoUpgrade an application with minimal downtime

A volte un'applicazione deve essere portata offline per ragioni di manutenzione pianificata, ad esempio un aggiornamento dell'applicazione.Sometimes an application must be taken offline because of planned maintenance such as an application upgrade. Gestione degli aggiornamenti dell'applicazione descrive come usare la replica geografica attiva per consentire gli aggiornamenti in sequenza dell'applicazione cloud al fine di ridurre al minimo i tempi di inattività durante gli aggiornamenti e fornire un percorso di recupero se si verificano problemi.Manage application upgrades describes how to use active geo-replication to enable rolling upgrades of your cloud application to minimize downtime during upgrades and provide a recovery path if something goes wrong.

Passaggi successiviNext steps

Per una descrizione delle considerazioni sulla progettazione di applicazioni per database autonomi e pool elastici, vedere Progettare un'applicazione per il ripristino di emergenza cloud e Strategie di ripristino di emergenza per applicazioni che usano il pool elastico del database SQL.For a discussion of application design considerations for stand-alone databases and for elastic pools, see Design an application for cloud disaster recovery and Elastic pool disaster recovery strategies.