Hochverfügbarkeit und Azure SQL-DatenbankHigh-availability and Azure SQL Database

Die Architektur für Hochverfügbarkeit in Azure SQL-Datenbank soll garantieren, dass Ihre Datenbank aktiv ist und zu 99,99 % der Zeit ausgeführt wird, ohne dass Sie sich Gedanken über Auswirkungen von Wartungsarbeiten und Ausfällen machen müssen.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 verarbeitet automatisch wichtige Wartungsaufgaben, z.B. Patches, Sicherungen, Windows- und SQL-Upgrades, aber auch ungeplante Ereignisse wie Ausfälle der zugrunde liegenden Hardware oder Software oder Netzwerkfehler.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. Wenn die zugrunde liegende SQL-Instanz gepatcht oder ein Failover für die SQL-Instanz ausgeführt wird, ist im Allgemeinen keine Ausfallzeit festzustellen, wenn Sie in Ihrer App Wiederholungslogik nutzen.When the underlying SQL instance is patched or fails over, the downtime is not noticeable if you employ retry logic in your app. Azure SQL-Datenbank kann auch unter den kritischsten Umständen schnell wiederhergestellt werden. So wird sichergestellt, dass Ihre Daten immer verfügbar sind.Azure SQL Database can quickly recover even in the most critical circumstances ensuring that your data is always available.

Die Hochverfügbarkeitslösung soll sicherstellen, dass Daten, für die ein Commit ausgeführt wurde, nie aufgrund von Fehlern verloren gehen, dass sich Wartungsvorgänge nicht auf Ihre Workload auswirken und dass die Datenbank keinen Single Point of Failure in der Softwarearchitektur darstellt.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. Es gibt keine Wartungsfenster oder Ausfallzeiten, aufgrund derer Sie die Workload während der Aktualisierung oder Wartung der Datenbank beenden müssen.There are no maintenance windows or downtimes that should require you to stop the workload while the database is upgraded or maintained.

In Azure SQL-Datenbank werden zwei Hochverfügbarkeits-Architekturmodelle verwendet:There are two high-availability architectural models that are used in Azure SQL Database:

  • Das Standardverfügbarkeitsmodell, das auf der Trennung der Compute- und Speicherebene basiert.Standard availability model that is based on a separation of compute and storage. Es basiert auf der Hochverfügbarkeit und der Zuverlässigkeit der Remotespeicherebene.It relies on high availability and reliability of the remote storage tier. Diese Architektur ist auf budgetgebundene Geschäftsanwendungen ausgelegt, die bei Wartungsarbeiten gewisse Leistungseinbußen tolerieren können.This architecture targets budget-oriented business applications that can tolerate some performance degradation during maintenance activities.
  • Das Premium-Verfügbarkeitsmodell, das auf einem Cluster von Datenbank-Engine-Prozessen basiert.Premium availability model that is based on a cluster of database engine processes. Dieses beruht auf dem Umstand, dass stets ein Quorum von verfügbaren Datenbank-Engine-Knoten vorhanden ist.It relies on the fact that there is always a quorum of available database engine nodes. Diese Architektur ist auf unternehmenskritische Anwendungen mit hoher E/A-Leistung und einer hohen Transaktionsrate ausgelegt; es garantiert während Wartungsaktivitäten minimale Leistungseinbußen für Ihre Workload.This architecture targets mission critical applications with high IO performance, high transaction rate and guarantees minimal performance impact to your workload during maintenance activities.

Azure SQL-Datenbank wird auf der aktuellen stabilen Version der SQL Server-Datenbank-Engine und des Windows-Betriebssystems ausgeführt. Die meisten Benutzer bemerken nicht, dass laufend Upgrades ausgeführt werden.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.

Verfügbarkeit der Dienstebenen „Basic“, „Standard“ und „Universell“Basic, Standard, and General Purpose service tier availability

Diese Dienstebenen nutzen die Standardverfügbarkeitsarchitektur.These service tiers leverage the standard availability architecture. In der folgenden Abbildung werden vier Knoten mit getrennter Compute- und Speicherebene veranschaulicht.The following figure shows four different nodes with the separated compute and storage layers.

Trennung der Compute- und Speicherebene

Das Standardverfügbarkeitsmodell umfasst zwei Ebenen:The standard availability model includes two layers:

  • Eine zustandslose Compute-Ebene, auf der der Prozess sqlserver.exe ausgeführt wird und die auf der angehängten SSD nur temporäre und zwischengespeicherte Daten enthält (z.B. TempDB, Modelldatenbank, Plancache, Pufferpool und Spaltenspeicherpool).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. Dieser zustandslose Knoten wird von Azure Service Fabric gesteuert, die sqlserver.exe initialisiert, die Integrität des Knotens steuert und bei Bedarf ein Failover zu einem anderen Knoten durchführt.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.
  • Eine zustandsbehaftete Datenebene mit den Datenbankdateien (MDF- und LDF-Dateien), die in Azure Blob Storage gespeichert sind.A stateful data layer with the database files (.mdf/.ldf) that are stored in Azure Blob storage. Azure Blob Storage verfügt über integrierte Datenverfügbarkeits- und Redundanzfunktionen.Azure blob storage has built-in data availability and redundancy feature. Dadurch wird sichergestellt, dass jeder Datensatz in der Protokolldatei bzw. jede Seite in der Datendatei erhalten bleibt, auch wenn der SQL Server-Prozess abstürzt.It guarantees that every record in the log file or page in the data file will be preserved even if SQL Server process crashes.

Bei jedem Upgrade der Datenbank-Engine oder des Betriebssystems sowie beim Erkennen eines Fehlers wird der zustandslose SQL Server-Prozess in Azure Service Fabric zu einem anderen zustandslosen Computeknoten mit ausreichender freier Kapazität verschoben.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. Daten in Azure Blob Storage sind vom Verschiebevorgang nicht betroffen, und die Daten- und Protokolldateien werden an den neu initialisierten SQL Server-Prozess angefügt.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. Dieser Prozess garantiert eine Verfügbarkeit von 99,99 %; bei einer starken Workload ist möglicherweise eine gewisse Leistungseinbuße während des Übergangs festzustellen, da die neue SQL Server-Instanz mit einem kalten Cache gestartet wird.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.

Verfügbarkeit der Dienstebenen „Premium“ und „Unternehmenskritisch“Premium and Business Critical service tier availability

Die Dienstebenen „Premium“ und „Unternehmenskritisch“ nutzen das Premium-Verfügbarkeitsmodell, das eine Integration von Computeressourcen (SQL Server-Datenbank-Engine-Prozess) und Speicher (lokal angefügte SSD) auf einem einzigen Knoten bietet.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. Hochverfügbarkeit wird durch Replizieren von Compute- und Speicherressourcen auf weiteren Knoten erreicht, wodurch ein Cluster mit drei bis vier Knoten erstellt wird.High availability is achieved by replicating both compute and storage to additional nodes creating a three to four-node cluster.

Cluster von Datenbank-Engine-Knoten

Die zugrunde liegenden Datenbankdateien (MDF- und LDF-Dateien) werden auf dem angefügten SSD-Speicher platziert, um eine E/A mit äußerst niedriger Latenz für Ihre Workload zu erzielen.The underlying database files (.mdf/.ldf) are placed on the attached SSD storage to provide very low latency IO to your workload. Hochverfügbarkeit wird anhand einer ähnlichen Technologie wie AlwaysOn-Verfügbarkeitsgruppen in SQL Server implementiert.High availability is implemented using a technology similar to SQL Server Always On Availability Groups. Der Cluster umfasst ein einzelnes primäres Replikat (SQL Server-Prozess), der für Lese-/Schreib-Workloads der Kunden zugänglich ist, sowie bis zu drei sekundäre Replikate (Compute und Speicher) mit Kopien der Daten.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. Der primäre Knoten ständig überträgt Änderungen der Reihe nach auf die sekundären Knoten und stellt sicher, dass die Daten vor dem Ausführen eines Commits für jede Transaktion mit mindestens einem sekundären Replikat synchronisiert werden.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. Durch diesen Prozess wird sichergestellt, dass bei einem Ausfall des primären Knotens stets ein vollständig synchronisierter Knoten vorhanden ist, auf den ein Failover ausgeführt werden kann.This process guarantees that if the primary node crashes for any reason, there is always a fully synchronized node to fail over to. Das Failover wird von der Azure Service Fabric initiiert.The failover is initiated by the Azure Service Fabric. Sobald das sekundäre Replikat zum neuen primären Knoten wird, wird ein weiteres sekundäres Replikat erstellt, um sicherzustellen, dass der Cluster über eine ausreichende Anzahl von Knoten (Quorumssatz) verfügt.Once the secondary replica becomes the new primary node, another secondary replica is created to ensure the cluster has enough nodes (quorum set). Nach Abschluss des Failovers werden SQL-Verbindungen automatisch an den neuen primären Knoten umgeleitet.Once failover is complete, SQL connections are automatically redirected to the new primary node.

Als weiteren Vorteil bietet das Premium-Verfügbarkeitsmodell die Möglichkeit, SQL-Verbindungen mit Schreibschutz auf eines der sekundären Replikate umzuleiten.As an extra benefit, the premium availability model includes the ability to redirect read-only SQL connections to one of the secondary replicas. Dieses Feature wird als horizontale Leseskalierung bezeichnet. Es bietet 100 % zusätzliche Computekapazität ohne anfallende Zusatzkosten, sodass Schreibschutzvorgänge wie analytische Workloads vom primären Replikat ausgelagert werden können.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.

Zonenredundante KonfigurationZone redundant configuration

In der Standardeinstellung wird der Cluster von Knoten für das Premium-Verfügbarkeitsmodell im selben Rechenzentrum erstellt.By default, the cluster of nodes for the premium availability model is created in the same datacenter. Mit der Einführung von Azure-Verfügbarkeitszonen kann Azure SQL-Datenbank nun verschiedene Replikate im Cluster in unterschiedlichen Verfügbarkeitszonen in derselben Region platzieren.With the introduction of Azure Availability Zones, SQL Database can place different replicas in the cluster to different availability zones in the same region. Um einen Single Point of Failure auszuschließen, wird der Steuerring zudem in mehreren Zonen als drei Gatewayringe (GW) kopiert.To eliminate a single point of failure, the control ring is also duplicated across multiple zones as three gateway rings (GW). Die Weiterleitung an einen bestimmten Gatewayring wird durch Azure Traffic Manager (ATM) gesteuert.The routing to a specific gateway ring is controlled by Azure Traffic Manager (ATM). Da bei der zonenredundanten Konfiguration in den Dienstebenen „Premium“ oder „Unternehmenskritisch“ keine zusätzliche Datenbankredundanz erzeugt wird, können Sie sie ohne Zusatzkosten aktivieren.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. Durch die Auswahl einer zonenredundanten Konfiguration können Sie Ihre Datenbanken der Dienstebenen „Premium“ oder „Unternehmenskritisch“ für deutlich mehr Ausfallszenarien resistent machen (z.B. für schwerwiegende Ausfälle von Rechenzentren), ohne Änderungen an der Anwendungslogik vornehmen zu müssen.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. Sie können zudem alle vorhandenen Datenbanken oder Pools der Dienstebenen „Premium“ oder „Unternehmenskritisch“ in die zonenredundante Konfiguration konvertieren.You can also convert any existing Premium or Business Critical databases or pools to the zone redundant configuration.

Da die zonenredundanten Datenbanken über Replikate in verschiedenen Rechenzentren mit einiger Entfernung dazwischen verfügen, kann sich durch die erhöhte Netzwerklatenz die Commitzeit erhöhen und dadurch die Leistung einiger OLTP-Workloads beeinträchtigt werden.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. Sie können jederzeit zur Einzelzonenkonfiguration zurückkehren, indem Sie die zonenredundante Einstellung deaktivieren.You can always return to the single-zone configuration by disabling the zone redundancy setting. Dieser Prozess ist ein Onlinevorgang und ähnelt dem regulären Dienstebenen-Upgrade.This process is an online operation similar to the regular service tier upgrade. Am Ende des Prozesses wird die Datenbank oder der Pool aus einem zonenredundanten Ring zum Ring einer einzelnen Zone migriert (oder umgekehrt).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.

Wichtig

Zonenredundante Datenbanken und Pools für elastische Datenbanken werden derzeit nur auf den Dienstebenen „Premium“ und „Unternehmenskritisch“ in ausgewählten Regionen unterstützt.Zone redundant databases and elastic pools are currently only supported in the Premium and Business Critical service tiers in select regions. Bei Verwendung des Tarifs „Unternehmenskritisch“ ist die zonenredundante Konfiguration nur verfügbar, wenn die Gen5-Computehardware ausgewählt ist.When using the Business Critical tier, zone redundant configuration is only available when the Gen5 compute hardware is selected. Aktuelle Informationen über die Regionen, die zonenredundante Datenbanken unterstützen, finden Sie unter Unterstützung der Dienste nach Region.For up to date information about the regions that support zone redundant databases, see Services support by region.

Die zonenredundante Version der Hochverfügbarkeitsarchitektur wird im folgenden Diagramm veranschaulicht:The zone redundant version of the high availability architecture is illustrated by the following diagram:

Hochverfügbarkeitsarchitektur, zonenredundant

Schnellere DatenbankwiederherstellungAccelerated Database Recovery (ADR)

Die schnellere Datenbankwiederherstellung (Accelerated Database Recovery, ADR) ist eine neue Funktion der SQL-Datenbank-Engine. Mit dieser Funktion wird die Datenbankverfügbarkeit erheblich verbessert, insbesondere bei Transaktionen mit langer Ausführungsdauer.Accelerated Database Recovery (ADR) is a new SQL database engine feature that greatly improves database availability, especially in the presence of long running transactions. ADR ist derzeit für Einzeldatenbanken, Pools für elastische Datenbanken und Azure SQL Data Warehouse verfügbar.ADR is currently available for single databases, elastic pools, and Azure SQL Data Warehouse.

ZusammenfassungConclusion

Azure SQL-Datenbank verfügt über eine integrierte Hochverfügbarkeitslösung, die tief in die Azure-Plattform integriert ist.Azure SQL Database features a built-in high availability solution, that is deeply integrated with the Azure platform. Sie ist bei der Fehlererkennung und Wiederherstellung von Service Fabric, in Verbindung mit dem Datenschutz von Azure Blob Storage und für höhere Fehlertoleranz von Verfügbarkeitszonen abhängig.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. Darüber hinaus nutzt Azure SQL-Datenbank die Technologie der AlwaysOn-Verfügbarkeitsgruppen von SQL Server für Replikation und Failover.In addition, Azure SQL database leverages the Always On Availability Group technology from SQL Server for replication and failover. Dank der Kombination dieser Technologien können Anwendungen die Vorteile eines gemischten Speichermodells voll ausschöpfen und sehr anspruchsvolle SLAs unterstützen.The combination of these technologies enables applications to fully realize the benefits of a mixed storage model and support the most demanding SLAs.

Nächste SchritteNext steps