Disponibilità elevata e database SQL di AzureHigh-availability and Azure SQL Database

L'obiettivo dell'architettura di disponibilità elevata in Database SQL di Azure è garanzia che il database sia attivo e in esecuzione il 99,99% del tempo, senza doversi preoccupare l'impatto delle operazioni di manutenzione e le interruzioni.The goal of the High Availability architecture in Azure SQL Database is to guarantee that your database is up and running 99.99% of time, without worrying about the impact of maintenance operations and outages. Azure gestisce automaticamente le attività di manutenzione critiche, ad esempio l'applicazione di patch, backup, gli aggiornamenti di Windows e SQL, nonché eventi non pianificati, ad esempio errori hardware, software o di rete sottostanti.Azure automatically handles critical servicing tasks, such as patching, backups, Windows and SQL upgrades, as well as unplanned events such as underlying hardware, software or network failures. Quando l'istanza SQL sottostante viene riparata o viene eseguito il failover, il tempo di inattività non è evidente se si impiegare per la logica di ripetizione dei tentativi nell'app.When the underlying SQL instance is patched or fails over, the downtime is not noticeable if you employ retry logic in your app. Database SQL di Azure può effettuare rapidamente il recupero anche nei casi più critici garantendo che i dati siano sempre disponibili.Azure SQL Database can quickly recover even in the most critical circumstances ensuring that your data is always available.

La soluzione a disponibilità elevata è progettata per garantire che il commit dei dati non sono mai persi a causa di errori, che le operazioni di manutenzione non influiscono sul carico di lavoro, e che il database non sarà un singolo punto di guasto nell'architettura software.The high availability solution is designed to ensure that committed data is never lost due to failures, that maintenance operations do not affect your workload, and that the database will not be a single point of failure in your software architecture. Non ci sono finestre di manutenzione o tempi di inattività che richiedono l'arresto del carico di lavoro mentre il database viene aggiornato o se ne esegue la manutenzione.There are no maintenance windows or downtimes that should require you to stop the workload while the database is upgraded or maintained.

Esistono due modelli di architettura a disponibilità elevata utilizzabili in Database SQL di Azure:There are two high-availability architectural models that are used in Azure SQL Database:

  • Modello di disponibilità standard basato su una separazione tra calcolo e archiviazione.Standard availability model that is based on a separation of compute and storage. Si basa su un'elevata disponibilità e affidabilità del livello di archiviazione remota.It relies on high availability and reliability of the remote storage tier. Questa architettura è destinato alle applicazioni di business orientate al budget che possono tollerare un peggioramento delle prestazioni durante le attività di manutenzione.This architecture targets budget-oriented business applications that can tolerate some performance degradation during maintenance activities.
  • Modello di disponibilità di Premium che si basa su un cluster dei processi del motore di database.Premium availability model that is based on a cluster of database engine processes. Si basa sul fatto che ci sia sempre un quorum di nodi di motore di database disponibili.It relies on the fact that there is always a quorum of available database engine nodes. Questa architettura è destinato a applicazioni mission-critical con prestazioni dei / o elevate, elevata frequenza di transazioni e garanzie impatto minimo sulle prestazioni per il carico di lavoro durante le attività di manutenzione.This architecture targets mission critical applications with high IO performance, high transaction rate and guarantees minimal performance impact to your workload during maintenance activities.

Database SQL di Azure esegue la versione stabile più recente del motore di Database di SQL Server e del sistema operativo Windows e la maggior parte degli utenti non noterà che gli aggiornamenti vengono eseguiti in modo continuo.Azure SQL Database runs on the latest stable version of SQL Server Database Engine and Windows OS, and most users would not notice that upgrades are performed continuously.

Disponibilità dei livelli di servizio Basic, Standard e Utilizzo genericoBasic, Standard, and General Purpose service tier availability

Questi livelli di servizio sfruttano l'architettura di disponibilità standard.These service tiers leverage the standard availability architecture. La figura seguente illustra quattro nodi diversi con i livelli di calcolo e archiviazione separati.The following figure shows four different nodes with the separated compute and storage layers.

Separazione di calcolo e archiviazione

Il modello di disponibilità standard include due livelli:The standard availability model includes two layers:

  • Un livello di calcolo senza stato che viene eseguito il sqlserver.exe elaborare e contiene solo temporanei e memorizzati nella cache i dati su unità SSD collegata, ad esempio pool di archiviazione di TempDB, modello di database, cache dei piani, pool di buffer e colonna.A stateless compute layer that runs the sqlserver.exe process and contains only transient and cached data on the attached SSD, such as TempDB, model database, plan cache, buffer pool and column store pool. Questo nodo senza stato è gestito da Azure Service Fabric che consente di inizializzare sqlserver.exe, controlla l'integrità del nodo ed esegue il failover a un altro nodo se necessario.This stateless node is operated by Azure Service Fabric that initializes sqlserver.exe, controls health of the node, and performs failover to another node if necessary.
  • Un livello di dati con stato con i file di database (.mdf/.ldf) che vengono archiviati in archiviazione Blob di Azure.A stateful data layer with the database files (.mdf/.ldf) that are stored in Azure Blob storage. Archivio blob di Azure include la disponibilità dei dati incorporate e la funzionalità di ridondanza.Azure blob storage has built-in data availability and redundancy feature. Garantisce che ogni record nel file di log o nella pagina nel file di dati verranno mantenuti anche se si blocca il processo di SQL Server.It guarantees that every record in the log file or page in the data file will be preserved even if SQL Server process crashes.

Ogni volta che viene aggiornato il motore di database o del sistema operativo, o viene rilevato un errore, Azure Service Fabric sposta il processo di SQL Server senza stato in un altro nodo di calcolo senza stato con una capacità sufficiente disponibile.Whenever the database engine or the operating system is upgraded, or a failure is detected, Azure Service Fabric will move the stateless SQL Server process to another stateless compute node with sufficient free capacity. Dati in archiviazione Blob di Azure non sono interessati dallo spostamento e i file di dati o di log associati al processo di SQL Server appena inizializzato.Data in Azure Blob storage is not affected by the move, and the data/log files are attached to the newly initialized SQL Server process. Questo processo garantisce disponibilità al 99,99%, ma un carico di lavoro potrebbe notare un calo delle prestazioni durante la transizione poiché la nuova istanza di SQL Server viene avviato con la cache a freddo.This process guarantees 99.99% availability, but a heavy workload may experience some performance degradation during the transition since the new SQL Server instance starts with cold cache.

Disponibilità dei livelli di servizio Premium e Business criticalPremium and Business Critical service tier availability

Premium e come sfruttare i livelli di servizio Business Critical al modello di disponibilità Premium, che si integra calcolo delle risorse (processo di SQL Server Database Engine) e archiviazione (SSD collegato al computer locale) in un singolo nodo.Premium and Business Critical service tiers leverage the Premium availability model, which integrates compute resources (SQL Server Database Engine process) and storage (locally attached SSD) on a single node. Disponibilità elevata si ottiene tramite la replica di archiviazione e calcolo in nodi aggiuntivi creando un cluster a quattro composto da tre nodi.High availability is achieved by replicating both compute and storage to additional nodes creating a three to four-node cluster.

Cluster di nodi di motore di database

I file di database sottostante (.mdf/.ldf) vengono inseriti nello spazio di archiviazione unità SSD associata per offrire una latenza molto bassa i/o al carico di lavoro.The underlying database files (.mdf/.ldf) are placed on the attached SSD storage to provide very low latency IO to your workload. Disponibilità elevata viene implementata usando una tecnologia simile a SQL Server gruppi di disponibilità AlwaysOn.High availability is implemented using a technology similar to SQL Server Always On Availability Groups. Il cluster include una singola replica primaria (processo di SQL Server) che è accessibile per i carichi di lavoro dei clienti di lettura / scrittura e fino a tre repliche secondarie (calcolo e archiviazione) che contiene copie dei dati.The cluster includes a single primary replica (SQL Server process) that is accessible for read-write customer workloads, and up to three secondary replicas (compute and storage) containing copies of data. Il nodo primario costantemente effettua il push delle modifiche ai nodi secondari in ordine e assicura che i dati vengono sincronizzati per almeno una replica secondaria prima del commit di ogni transazione.The primary node constantly pushes changes to the secondary nodes in order and ensures that the data is synchronized to at least one secondary replica before committing each transaction. Questo processo garantisce che se il nodo primario si blocca per qualche motivo, è sempre un nodo completamente sincronizzato per eseguire il failover.This process guarantees that if the primary node crashes for any reason, there is always a fully synchronized node to fail over to. Il failover viene avviato da Azure Service Fabric.The failover is initiated by the Azure Service Fabric. Dopo la replica secondaria diventa il nuovo nodo primario, viene creata un'altra replica secondaria per assicurarsi che il cluster dispone di sufficienti nodi (set di quorum).Once the secondary replica becomes the new primary node, another secondary replica is created to ensure the cluster has enough nodes (quorum set). Al termine del failover, le connessioni SQL verranno reindirizzate automaticamente al nuovo nodo primario.Once failover is complete, SQL connections are automatically redirected to the new primary node.

Come vantaggio aggiuntivo, il modello di disponibilità premium include la possibilità di reindirizzare le connessioni di SQL di sola lettura a una delle repliche secondarie.As an extra benefit, the premium availability model includes the ability to redirect read-only SQL connections to one of the secondary replicas. Questa funzionalità è detta scalabilità in lettura. Fornisce 100% ulteriori capacità di calcolo senza alcun costo aggiuntivo a ricaricamenti operazioni di sola lettura, ad esempio carichi di lavoro analitici, dalla replica primaria.This feature is called Read Scale-Out. It provides 100% additional compute capacity at no extra charge to off-load read-only operations, such as analytical workloads, from the primary replica.

Configurazione con ridondanza della zonaZone redundant configuration

Per impostazione predefinita, viene creato il cluster di nodi per il modello di disponibilità premium nello stesso datacenter.By default, the cluster of nodes for the premium availability model is created in the same datacenter. Con l'introduzione del zone di disponibilità di Azure, Database SQL può posizionare repliche diverse nel cluster di diverse zone di disponibilità nella stessa area.With the introduction of Azure Availability Zones, SQL Database can place different replicas in the cluster to different availability zones in the same region. Per eliminare un singolo punto di guasto, viene duplicato anche l'anello di controllo in più zone come tre anelli gateway.To eliminate a single point of failure, the control ring is also duplicated across multiple zones as three gateway rings (GW). Il routing a un anello gateway specifico è controllato da Gestione traffico di Azure.The routing to a specific gateway ring is controlled by Azure Traffic Manager (ATM). Poiché configurazione nei livelli di servizio Premium o Business Critical con ridondanza della zona non crea ridondanza aggiuntiva del database, è possibile abilitarlo senza costi aggiuntivi.Because the zone redundant configuration in the Premium or Business Critical service tiers does not create additional database redundancy, you can enable it at no extra cost. Se si seleziona una configurazione con ridondanza della zona, è possibile rendere i database Premium o Business Critical resilienti a un set molto più ampio di errori, incluse interruzioni irreversibili del Data Center, senza apportare modifiche alla logica dell'applicazione.By selecting a zone redundant configuration, you can make your Premium or Business Critical databases resilient to a much larger set of failures, including catastrophic datacenter outages, without any changes to the application logic. È anche possibile convertire qualsiasi pool o database premium o business critical alla configurazione con ridondanza della zona.You can also convert any existing Premium or Business Critical databases or pools to the zone redundant configuration.

Poiché i database con ridondanza della zona hanno repliche in diversi Data Center distanti tra loro, la maggiore latenza di rete può aumentare il tempo di commit e pertanto compromettere le prestazioni di alcuni carichi di lavoro OLTP.Because the zone redundant databases have replicas in different datacenters with some distance between them, the increased network latency may increase the commit time and thus impact the performance of some OLTP workloads. È sempre possibile tornare alla configurazione a singola zona disabilitando l'impostazione di ridondanza della zona.You can always return to the single-zone configuration by disabling the zone redundancy setting. Questo processo è un'operazione online simile per l'aggiornamento del livello servizio regolari.This process is an online operation similar to the regular service tier upgrade. Al termine del processo, viene eseguita la migrazione del database o del pool da un anello con ridondanza della zona a un anello a singola zona o viceversa.At the end of the process, the database or pool is migrated from a zone redundant ring to a single zone ring or vice versa.

Importante

Database con ridondanza della zona e i pool elastici sono attualmente supportati solo nei livelli di servizio Premium e Business Critical in aree selezionate.Zone redundant databases and elastic pools are currently only supported in the Premium and Business Critical service tiers in select regions. Quando si usa il livello Business Critical, configurazione con ridondanza della zona è disponibile solo quando è selezionata l'hardware di calcolo Gen5.When using the Business Critical tier, zone redundant configuration is only available when the Gen5 compute hardware is selected. Per informazioni aggiornate sulle aree che supportano i database con ridondanza della zona, vedere i servizi supportano area.For up to date information about the regions that support zone redundant databases, see Services support by region.

La versione con ridondanza della zona dell'architettura a disponibilità elevata è illustrata nel diagramma seguente:The zone redundant version of the high availability architecture is illustrated by the following diagram:

architettura a disponibilità elevata con ridondanza della zona

Ripristino accelerato del databaseAccelerated Database Recovery (ADR)

Accelerated ripristino Database (ADR) è una nuova funzionalità di motore di database SQL che consente di migliorare notevolmente la disponibilità del database, in particolare in presenza di lunga esecuzione di transazioni.Accelerated Database Recovery (ADR) is a new SQL database engine feature that greatly improves database availability, especially in the presence of long running transactions. Questa funzionalità è attualmente disponibile per database singoli, pool elastici e Azure SQL Data Warehouse.ADR is currently available for single databases, elastic pools, and Azure SQL Data Warehouse.

ConclusioniConclusion

Database SQL di Azure offre una soluzione a disponibilità elevata incorporata, che è perfettamente integrata con la piattaforma Azure.Azure SQL Database features a built-in high availability solution, that is deeply integrated with the Azure platform. È dipendente in Service Fabric per il ripristino e il rilevamento degli errori, in archiviazione Blob di Azure per la protezione dati e sulle zone di disponibilità per la tolleranza di errore.It is dependent on Service Fabric for failure detection and recovery, on Azure Blob storage for data protection, and on Availability Zones for higher fault tolerance. Inoltre, database SQL di Azure sfrutta la tecnologia di gruppo di disponibilità AlwaysOn di SQL Server per la replica e failover.In addition, Azure SQL database leverages the Always On Availability Group technology from SQL Server for replication and failover. La combinazione di queste tecnologie consente alle applicazioni di sfruttare pienamente i vantaggi di una risorsa di archiviazione mista modellare e supportano i contratti di servizio più esigenti.The combination of these technologies enables applications to fully realize the benefits of a mixed storage model and support the most demanding SLAs.

Passaggi successiviNext steps