High availability for Azure SQL Database
This tutorial will help you know about the High availability for Azure SQL Database. The purpose of the high availability design in Azure SQL Database and SQL Managed Instance is to ensure that your database is up and running for at least 99.99 percent of the time, regardless of maintenance or outages.
The high availability solution ensures that:
- data is never lost due to failures
- maintenance activities do not disrupt your workload
- database is not a single point of failure in your software architecture. There should be no downtimes or maintenance periods that force you to stop working while the database updates or maintains.
There are two high availability architectural models:
- Standard availability model that is based on a separation of compute and storage. It relies on high availability and reliability of the remote storage tier. This architecture targets budget-oriented business applications that can tolerate some performance degradation during maintenance activities.
- Premium availability model that is based on a cluster of database engine processes. It relies on the fact that there is always a quorum of available database engine nodes. This architecture targets mission critical applications with high IO performance, high transaction rate and guarantees minimal performance impact to your workload during maintenance activities.
Basic, Standard, and General Purpose service tier availability
For both serverless and provided computing, the Basic, Standard, and General Purpose service tiers use the standard availability architecture. The diagram below depicts four distinct nodes with computing and storage layers that are separated.
The standard availability model includes two layers:
A stateless compute layer that executes the sqlservr.exe process and only holds temporary and cached data and a stateful data layer that stores database files (.mdf/.ldf) on Azure Blob storage.
Premium and Business Critical service tier availability
The Premium and Business Critical service tiers use the Premium availability model, which combines computation (sqlservr.exe process) and storage (locally connected SSD) on one node. High availability is accomplished by duplicating computing and storage over many nodes, resulting in a three to four-node cluster.
Hyperscale service tier availability
The Hyperscale service tier architecture in the Distributed functions architecture is only currently available for SQL Database, not SQL Managed Instance.
The availability model in Hyperscale includes four layers:
A stateless compute layer, A stateless storage layer formed by page servers, A stateful transaction log storage layer and A stateful data storage layer with the database files.
Zone redundant configuration
The premium availability model’s cluster of nodes is formed in the same datacenter by default. SQL Database may now deploy separate copies of the Business Critical database to different availability zones within the same area thanks to the advent of Azure Availability Zones. The control ring duplicates across many zones as three gateway rings to eliminate a single point of failure (GW).
Accelerated Database Recovery (ADR)
ADR (Accelerated Database Recovery) is a new database engine feature that dramatically increases database availability, particularly when long-running transactions are present. Azure SQL Database, Azure SQL Managed Instance, and Azure SQL Data Warehouse currently support ADR.
Testing application fault resiliency – High availability is a fundamental part of the SQL Database and SQL Managed Instance platform that works transparently for your database application.
Reference documentation – High availability for Azure SQL Database and SQL Managed Instance