Hochverfügbarkeitskonzepte von Azure Database for MySQLHigh availability concepts in Azure Database for MySQL

Der Dienst „Azure Database for MySQL“ bietet eine garantiert hohes Verfügbarkeitsniveau.The Azure Database for MySQL service provides a guaranteed high level of availability. Die finanziell abgesicherte Vereinbarung zum Servicelevel (SLA) beträgt 99,99 % bei allgemeiner Verfügbarkeit.The financially backed service level agreement (SLA) is 99.99% upon general availability. Es gibt praktisch keine Ausfallzeiten bei der Nutzung dieses Diensts.There is virtually no application down time when using this service.

HochverfügbarkeitHigh availability

Das Hochverfügbarkeitsmodell (HA) basiert auf integrierten Failovermechanismen, die bei einer Unterbrechung auf Knotenebene greifen.The high availability (HA) model is based on built-in fail-over mechanisms when a node-level interruption occurs. Eine Unterbrechung auf Knotenebene kann aufgrund eines Hardwarefehlers oder als Reaktion auf eine Dienstbereitstellung auftreten.A node-level interruption could occur because of a hardware failure or in response to a service deployment.

Änderungen, die an einem Datenbankserver von Azure Database for MySQL vorgenommen werden, treten immer in Zusammenhang mit einer Transaktion auf.At all times, changes made to an Azure Database for MySQL database server occur in the context of a transaction. Änderungen werden in Azure Storage synchron aufgezeichnet, wenn die Transaktion commitet wird.Changes are recorded synchronously in Azure storage when the transaction is committed. Tritt eine Unterbrechung auf Knotenebene auf, erstellt der Datenbankserver automatisch einen neuen Knoten und fügt Datenspeicher an den neuen Knoten an.If a node-level interruption occurs, the database server automatically creates a new node and attaches data storage to the new node. Alle aktiven Verbindungen werden beendet, und für alle In-flight-Transaktionen wird kein Commit ausgeführt.Any active connections are dropped and any inflight transactions are not committed.

Wiederholungslogik für die Anwendung ist unerlässlichApplication retry logic is essential

Es ist wichtig, dass MySQL-Datenbankanwendungen so erstellt werden, dass beendete Verbindungen und Transaktionsfehler erkannt und für diese Wiederholungsversuche ausgeführt werden.It is important that MySQL database applications are built to detect and retry dropped connections and failed transactions. Wenn die Anwendung Wiederholungsversuche ausführt, wird die Verbindung der Anwendung transparent an die neu erstellte Instanz umgeleitet, die die Aufgaben der fehlerhaften Instanz übernimmt.When the application retries, the application's connection is transparently redirected to the newly created instance, which takes over for the failed instance.

Intern wird in Azure ein Gateway verwendet, um die Verbindungen an die neue Instanz umzuleiten.Internally in Azure, a gateway is used to redirect the connections to the new instance. Bei einer Unterbrechung dauert der gesamte Failovervorgang normalerweise wenige Sekunden.Upon an interruption, the entire fail-over process typically takes tens of seconds. Da die Umleitung intern vom Gateway behandelt wird, bleibt die externe Verbindungszeichenfolge für die Clientanwendung unverändert.Since the redirect is handled internally by the gateway, the external connection string remains the same for the client applications.

Zentrales Hoch- oder HerunterskalierenScaling up or down

Wenn Azure Database for MySQL zentral hoch- oder herunterskaliert wird, wird ähnlich wie beim HA-Modell eine neue Serverinstanz mit der angegebenen Größe erstellt.Similar to the HA model, when an Azure Database for MySQL is scaled up or down, a new server instance with the specified size is created. Der vorhandene Datenspeicher wird von der ursprünglichen Instanz getrennt und an die neue Instanz angefügt.The existing data storage is detached from the original instance, and attached to the new instance.

Während des Skalierungsvorgangs tritt eine Unterbrechung der Datenbankverbindungen auf.During the scale operation, an interruption to the database connections occurs. Die Verbindung der Clientanwendungen wird getrennt, und offene Transaktionen ohne Commit werden abgebrochen.The client applications are disconnected, and open uncommitted transactions are canceled. Sobald die Clientanwendung die Verbindung wiederherstellt oder eine neue Verbindung herstellt, leitet das Gateway die Verbindung an die Instanz mit der neuen Größe weiter.Once the client application retries the connection, or makes a new connection, the gateway directs the connection to the newly sized instance.

Nächste SchritteNext steps