Multi-AZ-DB-Instance-Bereitstellungen - Amazon Relational Database Service

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Multi-AZ-DB-Instance-Bereitstellungen

Amazon RDS bietet Hochverfügbarkeit und Failover-Unterstützung für DB-Instances, die Multi-AZ-Bereitstellungen mit einer einzelnen Standby-DB-Instance verwenden. Diese Art der Bereitstellung wird als Multi-AZ-DB-Instance-Bereitstellung bezeichnet. Amazon RDS verwendet mehrere verschiedene Technologien, um Failover-Unterstützung bereitzustellen. Multi-AZ-Bereitstellungen für DB-Instances von MariaDB, MySQL, Oracle, PostgreSQL und RDS Custom für SQL Server verwenden die Failover-Technologie von Amazon. DB-Instances von Microsoft SQL Server verwenden die SQL Server-Datenbankspiegelung oder Always On-Verfügbarkeitsgruppen. Informationen zur Unterstützung von SQL Server-Versionen für Multi-AZ finden Sie unter Multi-AZ-Bereitstellungen für Amazon RDS für Microsoft Server SQL. Informationen zum Arbeiten mit RDS Custom für SQL Server für Multi-AZ finden Sie unter Verwalten einer Multi-AZ-Bereitstellung für RDS Custom für SQL Server.

Bei einer Multi-AZ-Bereitstellung einer DB-Instance sorgt Amazon RDS für eine automatische Bereitstellung und Verwaltung eines synchronen Standby-Replikats in einer anderen Availability Zone. Die primäre DB-Instance wird synchron über Availability Zones hinweg auf ein Standby-Replikat repliziert, um Datenredundanz bereitzustellen und Latenzspitzen während Systemsicherungen zu minimieren. Wenn Sie eine DB-Instance mit hoher Verfügbarkeit ausführen, kann dies die Verfügbarkeit bei geplanten Systemwartungen verbessern. Sie kann auch Ihre Datenbanken bei Ausfällen der DB-Instance und bei Nichtverfügbarkeit von Availability Zones schützen. Weitere Informationen über Availability Zones finden Sie unter Regionen, Availability Zones und Local Zones.

Anmerkung

Die Option für hohe Verfügbarkeit ist keine Skalierungslösung für schreibgeschützte Szenarien. Sie können kein Standby-Replikat verwenden, um Leseverkehr bereitzustellen. Um schreibgeschützten Datenverkehr bereitzustellen, verwenden Sie stattdessen einen Multi-AZ-DB-Cluster oder ein Lesereplikat. Weitere Informationen zu Multi-AZ-DB-Clustern finden Sie unter Multi-AZ-DB-Cluster-Bereitstellungen. Weitere Informationen über Lesereplikate finden Sie unter Arbeiten mit DB-Instance-Lesereplikaten.

Anwendungsszenario für hohe Verfügbarkeit

Sie können über die RDS-Konsole eine Multi-AZ-DB-Instance-Bereitstellung erstellen, indem Sie ganz einfach bei der Erstellung einer DB-Instance die Option „Multi-AZ“ angeben. Sie können über die Konsole bestehende DB-Instances in Multi-AZ-Bereitstellungen für DB-Instances umwandeln, indem Sie die DB-Instance ändern und die Option „Multi-AZ“ angeben. Sie können auch eine Multi-AZ-DB-Instance-Bereitstellung mit der AWS CLI oder der Amazon-RDS-API angeben. Verwenden Sie den modify-db-instance CLI-Befehl create-db-instance oder die API-Operation CreateDBInstance oder ModifyDBInstance.

In der RDS-Konsole wird die Availability Zone des Standby-Replikats angezeigt (auch als sekundäre AZ bezeichnet). Sie können auch den describe-db-instances CLI-Befehl oder die API-Operation DescribeDBInstances verwenden, um die sekundäre AZ zu finden.

DB-Instances, die Multi-AZ-DB-Instance-Bereitstellungen verwenden, können im Vergleich zu einer Single-AZ-Bereitstellung eine höhere Schreib- und Commit-Latenz aufweisen. Dies kann aufgrund der auftretenden synchronen Datenreplikation geschehen. Möglicherweise kommt es zu einer Änderung der Latenz, wenn Ihre Bereitstellung ein Failover auf das Standby-Replikat durchführt, obwohl auf Netzwerkkonnektivität zwischen Availability Zones mit niedriger Latenz ausgelegt AWS ist. Für Produktionsworkloads empfehlen wir die Verwendung von bereitgestellten IOPS (Eingabe-/Ausgabevorgänge pro Sekunde) für eine schnelle, konsistente Leistung. Weitere Informationen zu DB-Instance-Klassen finden Sie unter .

Ändern einer DB-Instance zu einer Multi-AZ-DB-Instance-Bereitstellung

Wenn Sie eine DB-Instance in einer Single-AZ-Bereitstellung haben und diese in eine Multi-AZ-Bereitstellung für Instances ändern (für andere Engines als Amazon Aurora), führt Amazon RDS mehrere Aktionen aus:

  1. Erstellt einen Snapshot der Amazon Elastic Block Store (EBS) -Volumes der primären DB-Instance.

  2. Erstellt neue Volumes für das Standby-Replikat aus dem Snapshot. Diese Volumes werden im Hintergrund initialisiert, und die maximale Volume-Leistung wird erreicht, nachdem die Daten vollständig initialisiert wurden.

  3. Aktiviert die synchrone Replikation auf Blockebene zwischen den Volumes der primären und Standby-Replikate.

Wichtig

Die Verwendung eines Snapshots zur Erstellung der Standby-Instance vermeidet Ausfallzeiten bei der Konvertierung von Single-AZ zu Multi-AZ, kann jedoch während und nach der Konvertierung zu Multi-AZ zu Leistungseinbußen führen. Diese Auswirkung kann bei Workloads erheblich sein, die empfindlich auf Schreiblatenz reagieren.

Diese Funktion ermöglicht zwar die schnelle Wiederherstellung großer Volumes aus Snapshots, kann jedoch aufgrund der synchronen Replikation zu einer erheblichen Erhöhung der Latenzzeit von E/A-Operationen führen. Diese Latenz kann sich auf die Leistung Ihrer Datenbank auswirken. Als Bewährte Methode empfehlen wir dringend, keine Multi-AZ-Konvertierung auf einer Produktions-DB-Instance durchzuführen.

Erstellen Sie ein Lesereplikat und aktivieren Sie Backups auf dem Lesereplikat, um Leistungseinbußen auf die DB-Instance zu vermeiden, die derzeit die sensible Workload bedient. Konvertieren Sie das Read Replica in Multi-AZ und führen Sie Abfragen aus, die die Daten in die Volumes des Read Replica laden (auf beiden AZs). Stufen Sie dann das Lesereplikat zur primären DB-Instance hoch. Weitere Informationen finden Sie unter Arbeiten mit DB-Instance-Lesereplikaten.

Es gibt zwei Möglichkeiten, eine DB-Instance in eine Multi-AZ-DB-Instance-Bereitstellung zu ändern:

Sie können sie mit der RDS-Konsole in eine Multi-AZ-DB-Instance-Bereitstellung konvertieren.

Sie können die RDS-Konsole verwenden, um eine DB-Instance in eine Multi-AZ-DB-Instance-Bereitstellung zu konvertieren.

Sie können die Konvertierung nur mit der Konsole abschließen. Um die AWS CLI oder RDS-API zu verwenden, folgen Sie den Anweisungen unter Ändern einer DB-Instance zu einer Multi-AZ-DB-Instance-Bereitstellung.

So konvertieren Sie die DB-Instance mit der RDS-Konsole in eine Multi-AZ-DB-Instance-Bereitstellung
  1. Melden Sie sich bei der an AWS Management Console und öffnen Sie die Amazon-RDS-Konsole unter https://console.aws.amazon.com/rds/.

  2. Wählen Sie im Navigationsbereich Databases (Datenbanken) und dann die DB-Instance, die Sie ändern möchten.

  3. Wählen Sie unter Actions (Aktionen) die Option Convert to Multi-AZ deployment In Multi-AZ-Bereitstellung konvertieren aus.

  4. Damit Änderungen sofort übernommen werden, wählen Sie die Option Apply Immediately (Sofort anwenden) auf der Bestätigungsseite aus. Die Auswahl dieser Option verursacht keine Ausfallzeiten, kann jedoch zur Beeinträchtigung der Leistung führen. Sie können die Aktualisierung auch im nächsten Wartungsfenster übernehmen. Weitere Informationen finden Sie unter Einstellung „Änderungen planen“.

  5. Wählen Sie Convert to Multi-AZ (In Multi-AZ konvertieren) aus.

Ändern einer DB-Instance zu einer Multi-AZ-DB-Instance-Bereitstellung

Sie können eine DB-Instance auf folgende Weise in eine Multi-AZ-DB-Instance-Bereitstellung ändern:

  • Ändern Sie die DB-Instance mithilfe der RDS-Konsole und legen Sie die Einstellung Multi-AZ deployment (Multi-AZ-Bereitstellung) auf Yes (Ja) fest.

  • AWS CLIRufen Sie mit dem den modify-db-instance Befehl auf und legen Sie die --multi-az Option fest.

  • Rufen Sie mit der RDS-API die Operation ModifyDBInstance auf und legen Sie den MultiAZ-Parameter auf true fest.

Informationen zum Ändern einer DB-Instance finden Sie unter Ändern einer Amazon RDS-DB-Instance. Nach Abschluss der Änderungen löst Amazon RDS ein Ereignis (RDS-EVENT-0025) aus, das anzeigt, dass der Prozess abgeschlossen ist. Sie können Amazon-RDS-Ereignisse überwachen. Weitere Informationen über -Ereignisse finden Sie unter Mit RDS Amazon-Event-Benachrichtigungen arbeiten.

Failover-Prozess bei Amazon RDS

Wenn ein geplanter oder ungeplanter Ausfall Ihrer DB-Instance durch einen Infrastrukturdefekt resultiert, wechselt Amazon RDS automatisch zu einem Standby-Replikat in einer anderen Availability Zone, wenn Sie Multi-AZ aktiviert haben. Die Dauer, bis der Failover-Prozess für die Instance abgeschlossen ist, hängt von der Datenbankaktivität sowie von anderen Bedingungen zu dem Zeitpunkt ab, an dem die primäre DB-Instance ausgefallen ist. Der Failover-Prozess dauert normalerweise 60–120 Sekunden. Diese Failover-Dauer kann sich verlängern, wenn umfangreiche Transaktionen oder zeitintensive Wiederherstellungsprozesse durchgeführt werden. Wenn der eigentliche Failover-Prozess abgeschlossen ist, kann es noch einmal etwas dauern, bis die RDS-Konsole die Daten für die neue Availability Zone geladen hat.

Anmerkung

Sie können ein Failover manuell erzwingen, wenn Sie eine DB-Instance neu starten. Weitere Informationen finden Sie unter Neustarten einer DB-Instance.

Amazon RDS führt den Failover-Prozess automatisch durch, sodass der Datenbankbetrieb so schnell wie möglich und ohne Verwaltungseingriff wieder aufgenommen werden kann. Die primäre DB-Instance schaltet automatisch auf das Standby-Replikat um, wenn eine der in der folgenden Tabelle beschriebenen Bedingungen eintritt: Sie können diese Failover-Gründe im Ereignisprotokoll einsehen.

Failover-Grund Beschreibung
Das Betriebssystem, das der RDS-Datenbank-Instance zugrunde liegt, wird offline gepatcht.

Ein Failover wurde während des Wartungsfensters für einen Betriebssystem-Patch oder ein Sicherheitsupdate ausgelöst.

Weitere Informationen finden Sie unter Warten einer DB-Instance.

Der primäre Host der RDS-Multi-AZ-Instance ist fehlerhaft. Die Multi-AZ-DB-Instance-Bereitstellung hat eine beeinträchtigte primäre DB-Instance erkannt und ein Failover eingeleitet.
Der primäre Host der RDS-Multi-AZ-Instance ist aufgrund des Verlusts der Netzwerkverbindung nicht erreichbar.

Die RDS-Überwachung hat einen Fehler bei der Erreichbarkeit des Netzwerks für die primäre DB-Instance festgestellt und ein Failover ausgelöst.

Die RDS-Instance wurde vom Kunden geändert.

Eine Änderung der RDS-DB-Instance hat ein Failover ausgelöst.

Weitere Informationen finden Sie unter Ändern einer Amazon RDS-DB-Instance.

Die primäre RDS-Multi-AZ-Instance ist beschäftigt und reagiert nicht.

Die primäre DB-Instance reagiert nicht. Wir empfehlen Folgendes:

Weitere Informationen zu diesen Empfehlungen finden Sie unter Überwachungstools für Amazon RDS und Bewährte Methoden für Amazon RDS.

Das Speichervolumen, das dem primären Host der RDS-Multi-AZ-Instance zugrunde liegt, ist ausgefallen. Die Multi-AZ-DB-Instance-Bereitstellung hat ein Speicherproblem der primären DB-Instance erkannt und ein Failover eingeleitet.
Der Benutzer hat ein Failover der DB-Instance angefordert.

Sie haben die DB-Instance neu gestartet und Neustart mit Failover gewählt.

Weitere Informationen finden Sie unter Neustarten einer DB-Instance.

Um festzustellen, ob Ihre Multi-AZ-DB-Instance erfolgreich ausgeführt wurde, können Sie Folgendes tun:

  • Sie können Benachrichtigungen per E-Mail oder per SMS für DB-Ereignisse abonnieren, bei denen ein Failover ausgelöst wird. Weitere Informationen über -Ereignisse finden Sie unter Mit RDS Amazon-Event-Benachrichtigungen arbeiten.

  • Sie können Ihre DB-Ereignisse über die RDS-Konsole oder mittels API-Operationen anzeigen.

  • Zeigen Sie den aktuellen Status Ihrer Multi-AZ-DB-Instance-Bereitstellung mithilfe der RDS-Konsole oder API-Vorgänge an.

Informationen zur empfohlenen Vorgehensweise bei Failover-Situationen, zur Verringerung der Wiederherstellungsdauer und zu bewährten Methoden für Amazon RDS finden Sie unter Bewährte Methoden für Amazon RDS.

Festlegen des JVM-TTL-Werts für DNS-Name-Lookups

Bei dem Failover-Prozess wird der DNS-Datensatz (Domain Name System) der DB-Instance so geändert, dass er auf die Standby-DB-Instance verweist. Als Ergebnis müssen alle bestehenden Verbindungen zu Ihrer DB-Instance neu hergestellt werden. In einer JVM-Umgebung (Java Virtual Machine) müssen Sie aufgrund der besonderen Funktionsweise der Zwischenspeicherung von DNS-Informationen in Java möglicherweise die JVM-Einstellungen rekonfigurieren.

Die JVM speichert DNS-Name-Lookups zwischen. Wenn die JVM einen Hostnamen in eine IP-Adresse auflöst, speichert sie die IP-Adresse für einen bestimmten Zeitraum zwischen, bekannt als time-to-live (TTL).

Da AWS Ressourcen DNS-Namenseinträge verwenden, die sich gelegentlich ändern, empfehlen wir Ihnen, Ihre JVM mit einem TTL-Wert von nicht mehr als 60 Sekunden zu konfigurieren. Auf diese Weise wird bei Änderung der IP-Adresse einer Ressource sichergestellt, dass Ihre Anwendung die neue IP-Adresse der Ressource durch erneute Abfrage des DNS abrufen und nutzen kann.

Bei einigen Java-Konfigurationen ist die JVM-Standard-TTL so festgelegt, dass DNS-Einträge nie aktualisiert werden, bis die JVM neu gestartet wird. Wenn sich die IP-Adresse für eine - AWS Ressource ändert, während Ihre Anwendung noch ausgeführt wird, kann sie diese Ressource erst verwenden, wenn Sie die JVM manuell neu starten und die zwischengespeicherten IP-Informationen aktualisiert werden. In diesem Fall ist es wichtig, die TTL der JVM so einzustellen, dass sie die zwischengespeicherten IP-Daten von Zeit zu Zeit aktualisiert.

Sie erhalten die JVM-Standard-TTL, indem Sie den Eigenschaftswert networkaddress.cache.ttl abrufen:

String ttl = java.security.Security.getProperty("networkaddress.cache.ttl");
Anmerkung

Die Standard-TTL kann je nach Version Ihrer JVM und abhängig davon, ob ein Sicherheits-Manager installiert ist, unterschiedlich sein. Viele JVMs bieten eine Standard-TTL von weniger als 60 Sekunden. Wenn Sie eine solche JVM und keinen Sicherheits-Manager nutzen, können Sie den Rest dieses Themas ignorieren. Weitere Informationen zu Sicherheits-Managern in Oracle finden Sie unter The Security Manager in der Oracle-Dokumentation.

Um die TTL der JVM zu ändern, legen Sie den Eigenschaftswert networkaddress.cache.ttl fest. Nutzen Sie dazu eine der folgenden Methoden je nach Ihrem Bedarf:

  • Legen Sie in der networkaddress.cache.ttl-Datei $JAVA_HOME/jre/lib/security/java.security fest, um den Eigenschaftswert global für alle Anwendungen festzulegen, die die JVM verwenden.

    networkaddress.cache.ttl=60
  • Um die Eigenschaft nur für Ihre Anwendung lokal festzulegen, legen Sie networkaddress.cache.ttl im Initialisierungscode Ihrer Anwendung fest, bevor Netzwerkverbindungen hergestellt werden.

    java.security.Security.setProperty("networkaddress.cache.ttl" , "60");