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.
Testen von Amazon Aurora PostgreSQL unter Verwendung von Fehlersimulationsabfragen
Sie können die Fehlertoleranz Ihres Aurora PostgreSQL-DB-Clusters testen, indem Sie Fehlersimulationsabfragen verwenden. Fehlersimulationsabfragen werden als SQL-Befehle an eine Amazon Aurora-Instance ausgegeben. Mit Fehlersimulationsabfragen können Sie die Instance zum Absturz bringen, sodass Sie Failover und Wiederherstellung testen können. Sie können auch Aurora Replica-Ausfall, Festplattenausfall und Datenträgerüberlastung simulieren. Fehlersimulationsabfragen werden von allen verfügbaren Aurora-PostgreSQL-Versionen wie folgt unterstützt.
Aurora PostgreSQL 12, 13, 14 und höhere Versionen
Aurora PostgreSQL 11.7 und höhere Versionen
Aurora PostgreSQL 10.11 und höhere Versionen
Themen
Wenn eine Fehlersimulationsabfrage einen Absturz angibt, erzwingt sie einen Absturz der Aurora PostgreSQL-DB-Instance. Die anderen Fehler-Injection-Abfragen erzeugen Simulationen von Ausfallereignissen, lösen aber keine Ereignisse aus. Wenn Sie eine Fehlersimulationsabfrage senden, geben Sie auch einen Zeitraum vor, in dem die Fehlerereignissimulation ablaufen soll.
Sie können eine Fehlersimulationsabfrage an eine Ihrer Aurora Replica-Instances senden, indem Sie eine Verbindung mit dem Endpunkt der Aurora Replica herstellen. Weitere Informationen finden Sie unter Amazon Aurora Aurora-Endpunktverbindungen.
Testen eines Instance-Ausfalls
Sie können den Absturz einer Aurora PostgreSQL-Instance erzwingen, indem Sie die Fehlersimulationsabfrage-Funktion verwende aurora_inject_crash()
.
Für diese Fehlersimulationsabfrage tritt kein Failover auf. Wenn Sie ein Failover testen möchten, können Sie die Aktion Failover-Instance für Ihren DB-Cluster in der RDS-Konsole auswählen oder den failover-db-cluster AWS CLI Befehl oder die RDS-API-Operation FailoverDBCluster verwenden.
Syntax
SELECT aurora_inject_crash ('instance' | 'dispatcher' | 'node');
Optionen
Diese Fehlersimulationsabfrage löst einen der folgenden Ausfalltypen aus. Bei der Absturzart wird die Groß-/Kleinschreibung nicht berücksichtigt:
- 'instance'
-
Es wird ein Absturz der PostgreSQL-kompatiblen Datenbank für die Amazon Aurora-Instance simuliert.
- 'Disponent'
-
Es wird ein Absturz des Dispatchers auf primären Instance für das Aurora-DB-Cluster simuliert. Der Dispatcher schreibt Updates zum Cluster-Volume für ein Amazon Aurora-DB-Cluster.
- 'Knoten'
-
Es wird ein Absturz sowohl der PostgreSQL-kompatiblen Datenbank als auch des Dispatchers für die Amazon Aurora-Instance simuliert.
Testen eines Aurora-Replikatausfalls
Sie können den Ausfall eines Aurora-Replikats mittels der Fehlersimulationsabfrage-Funktion simuliere aurora_inject_replica_failure()
.
EinAurora Replikatfehler blockiert die Replikation auf dasAurora Replikat oder alle Aurora-Replikate im DB-Cluster um den angegebenen Prozentsatz für das angegebene Zeitintervall. Wenn das Zeitintervall abgeschlossen ist, sind die betroffenen Aurora-Replikate automatisch mit der primären Instance synchronisiert.
Syntax
SELECT aurora_inject_replica_failure( percentage_of_failure, time_interval, 'replica_name' );
Optionen
Diese Fehlersimulationsabfrage verwendet die folgenden Parameter:
- prozent_an_ausfällen
-
Der Prozentsatz der Replikate, die während des Ausfallereignisses blockiert werden sollen. Dieser Wert kann ein Duplikat zwischen 0 und 100 sein. Wenn Sie 0 angeben, wird keine Replikation blockiert. Wenn Sie 100 angeben, wird die gesamte Replikation blockiert.
- time_intervall
-
Die Zeitspanne für die Simulation des Ausfalls des Aurora-Replikats. Das Intervall ist in Sekunden. Wenn der Wert beispielsweise 20 ist, wird die Simulation 20 Sekunden lang ausgeführt.
Anmerkung
Seien Sie vorsichtig bei der Angabe des Zeitintervalls für das Ausfallereignis in Ihrem Aurora-Replikat. Wenn Sie ein zu langes Intervall festlegen und Ihre Writer-Instance eine große Datenmenge während des Ausfallereignisses schreibt, könnte Ihr Aurora-DB-Cluster annehmen, dass Ihr Aurora-Replikat ausgefallen ist, und es ersetzen.
- replica_name
-
Das Aurora-Replikat, in das die Ausfallsimulation injiziert werden soll. Geben Sie den Namen eines Aurora-Replikats an, um einen Ausfall des einzelnen Aurora-Replikats zu simulieren. Geben Sie eine leere Zeichenfolge an, um Ausfälle für alle Aurora-Replikate im DB-Cluster zu simulieren.
Informationen zur Identifizierung von Replikatnamen finden Sie in der Spalte
server_id
der Funktionaurora_replica_status()
. Zum Beispiel:postgres=> SELECT server_id FROM aurora_replica_status();
Testen eines Festplattenausfalls
Sie können einen Festplattenausfall für einen Aurora PostgreSQL-DB-Cluster mittels der Fehlersimulationsabfrage-Funktion simuliere aurora_inject_disk_failure()
.
Während einer Simulation eines Festplattenausfalls markiert der Aurora PostgreSQL-DB-Cluster zufällige Festplattensegmente als fehlerhaft. Anfragen an diese Segmente werden für die Dauer der Simulation blockiert.
Syntax
SELECT aurora_inject_disk_failure( percentage_of_failure, index, is_disk, time_interval );
Optionen
Diese Fehlersimulationsabfrage verwendet die folgenden Parameter:
- prozent_an_ausfällen
-
Der Prozentsatz des Datenträgers, der während des Ausfallereignisses als ausgefallen markiert werden soll. Dieser Wert kann ein Duplikat zwischen 0 und 100 sein. Wenn Sie 0 festlegen, wird kein Segment der Festplatte als fehlerhaft markiert. Wenn Sie 100 festlegen, wird die gesamte Festplatte als fehlerhaft markiert.
- index
-
Ein spezifischer logischer Datenblock, in dem das Ausfallereignis simuliert werden soll. Wenn Sie den Bereich der verfügbaren logischen Blöcke oder Speichernodedaten überschreiten, erhalten Sie eine Fehlermeldung, in der Ihnen der maximal festlegbare Indexwert angezeigt wird. Informationen zur Vermeidung dieses Fehlers finden Sie unter Anzeigen des Volume-Status für einen Aurora PostgreSQL-DB-Cluster.
- ist_festplatte
-
Gibt an, ob der Injektionsfehler auf einen logischen Block oder einen Speicherknoten zurückzuführen ist. Die Angabe von „true“ bedeutet, dass Injektionsfehler auf einen logischen Block zurückzuführen sind. Die Angabe von „false“ bedeutet, dass Injektionsfehler auf einen Speicherknoten zurückzuführen sind.
- time_intervall
-
Die Zeit, die zum Simulieren des Festplattenausfalls benötigt wird. Das Intervall ist in Sekunden. Wenn der Wert beispielsweise 20 ist, wird die Simulation 20 Sekunden lang ausgeführt.
Testen einer Festplattenüberlastung
Sie können eine Festplattenüberlastung für einen Aurora-PostgreSQL-DB-Cluster simulieren, indem Sie die Fehlersimulationsabfragefunktion verwendenaurora_inject_disk_congestion()
.
Während einer Simulation einer Festplattenüberlastung markiert der Aurora PostgreSQL-DB-Cluster zufällige Festplattensegmente als überlastet. Anfragen an diese Segmente werden für die Dauer der angegebenen minimalen und maximalen Verzögerungszeit während der Simulation verzögert.
Syntax
SELECT aurora_inject_disk_congestion( percentage_of_failure, index, is_disk, time_interval, minimum, maximum );
Optionen
Diese Fehlersimulationsabfrage verwendet die folgenden Parameter:
- prozent_an_ausfällen
-
Der Prozentsatz des Datenträgers, der während des Ausfallereignisses als überlastet markiert werden soll. Dies ist ein doppelter Wert zwischen 0 und 100. Wenn Sie 0 festlegen, wird kein Segment der Festplatte als überlastet markiert. Wenn Sie 100 festlegen, wird die gesamte Festplatte als überlastet markiert.
- index
-
Ein spezifischer logischer Datenblock oder Speicherknoten, der zum Simulieren des Ausfallereignisses verwendet werden soll.
Wenn Sie den Bereich der verfügbaren logischen Datenblöcke oder Speichernodes überschreiten, erhalten Sie eine Fehlermeldung, die Ihnen den maximalen Indexwert angibt, den Sie angeben können. Informationen zur Vermeidung dieses Fehlers finden Sie unter Anzeigen des Volume-Status für einen Aurora PostgreSQL-DB-Cluster.
- ist_festplatte
-
Gibt an, ob der Injektionsfehler auf einen logischen Block oder einen Speicherknoten zurückzuführen ist. Die Angabe von „true“ bedeutet, dass Injektionsfehler auf einen logischen Block zurückzuführen sind. Die Angabe von „false“ bedeutet, dass Injektionsfehler auf einen Speicherknoten zurückzuführen sind.
- time_intervall
-
Die Zeit, die für die Simulation der Festplattenüberlastung benötigt wird. Das Intervall ist in Sekunden. Wenn der Wert beispielsweise 20 ist, wird die Simulation 20 Sekunden lang ausgeführt.
- Minimum, Maximum
-
Der Mindest- und Höchstwert in Millisekunden für die Überlastungsverzögerung. Gültige Werte reichen von 0,0 bis 100,0 Millisekunden. Festplattensegmente, die als überlastet gekennzeichnet sind, werden für die Dauer der Simulation um eine zufällige Zeit innerhalb des minimalen und maximalen Bereichs verzögert. Der Höchstwert muss größer als der Mindestwert sein.