Erfassung von Aurora-PostgreSQL-Ausführungsplänen - Amazon Aurora

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.

Erfassung von Aurora-PostgreSQL-Ausführungsplänen

QPM (Query Plan Management) ermöglicht es Ihnen, die von Aurora Replicas generierten Abfragepläne zu erfassen und sie in der primären DB-Instance des Aurora-DB-Clusters zu speichern. Sie können die Abfragepläne von allen Aurora Replicas sammeln und eine Reihe optimaler Pläne in einer zentralen persistenten Tabelle auf der primären Instance verwalten. Sie können diese Pläne dann bei Bedarf auf andere Replicas anwenden. Dies hilft Ihnen, die Stabilität der Ausführungspläne aufrechtzuerhalten und die Leistung der Abfragen in den DB-Clustern und Engine-Versionen zu verbessern.

Voraussetzungen

Aktivieren Sie capture_plan_baselines parameter in Aurora Replica – Setzen Sie den capture_plan_baselines-Parameter auf automatisch oder manuell, um Pläne in Aurora Replicas zu erfassen. Weitere Informationen finden Sie unter apg_plan_mgmt.capture_plan_baselines.

Installieren Sie die postgres_fdw-Erweiterung – Sie müssen die postgres_fdw-Foreign-Data-Wrapper-Erweiterung installieren, um Pläne in Aurora Replicas zu erfassen. Führen Sie den folgenden Befehl in jeder Datenbank aus, um die Erweiterung zu installieren.

postgres=> CREATE EXTENSION IF NOT EXISTS postgres_fdw;

Verwaltung der Planerfassung für Aurora Replicas

Aktivierung der Planerfassung für Aurora Replicas

Sie müssen über rds_superuser-Berechtigungen verfügen, um die Planerfassung in Aurora Replicas zu erstellen oder zu entfernen. Weitere Informationen zu Benutzerrollen und Berechtigungen finden Sie unter PostgreSQL-Rollen und -Berechtigungen verstehen.

Um Pläne zu erfassen, rufen Sie die Funktion apg_plan_mgmt.create_replica_plan_capture in der Writer-DB-Instance auf, wie im Folgenden dargestellt:

postgres=> CALL apg_plan_mgmt.create_replica_plan_capture('endpoint', 'password');
  • endpoint — Der Aurora Global Database-Writer-Endpunkt oder cluster_endpoint bietet Failover-Unterstützung für Plan Capture in Aurora Replicas.

    Weitere Informationen zum Aurora Global Database-Writer-Endpunkt finden Sie unterEndpunkte einer globalen Amazon Aurora Aurora-Datenbank anzeigen.

    Weitere Informationen zu Cluster-Endpunkten finden Sie unterCluster-Endpunkte für Amazon Aurora.

  • password – Wir empfehlen, bei der Erstellung des Passworts die folgenden Richtlinien zu beachten, um die Sicherheit zu erhöhen:

    • Es muss mindestens 8 Zeichen enthalten.

    • Es muss mindestens einen Großbuchstaben, einen Kleinbuchstaben und eine Ziffer enthalten.

    • Es muss mindestens ein Sonderzeichen (?, !, #, <, >, * usw.) enthalten.

Anmerkung

Wenn Sie den Endpunkt, das Kennwort oder die Portnummer ändern, müssen Sie den Vorgang mit dem Endpunkt und dem Kennwort apg_plan_mgmt.create_replica_plan_capture() erneut ausführen, um die Planerfassung erneut zu initialisieren. Andernfalls schlägt die Erfassung von Plänen von Aurora Replicas fehl.

Deaktivieren der Planerfassung für Aurora Replicas

Sie können den capture_plan_baselines-Parameter in Aurora Replica deaktivieren, indem Sie seinen Wert in der Gruppe Parameter auf off setzen.

Entfernen der Planerfassung für Aurora Replicas

Sie können die Planerfassung in Aurora Replicas vollständig entfernen, stellen vorher jedoch Folgendes sicher: Rufen Sie apg_plan_mgmt.remove_replica_plan_capture wie folgt auf, um Plan Capture zu entfernen:

postgres=> CALL apg_plan_mgmt.remove_replica_plan_capture();

Sie müssen apg_plan_mgmt.create_replica_plan_capture () erneut aufrufen, um die Planerfassung in Aurora Replicas mit dem Endpunkt und dem Passwort zu aktivieren.

Fehlerbehebung

Im Folgenden finden Sie Tipps zur Fehlerbehebung und Workarounds für den Fall, dass der Plan nicht wie erwartet in Aurora Replicas erfasst wird.

  • Parametereinstellungen – Prüfen Sie, ob der capture_plan_baselines-Parameter auf den richtigen Wert gesetzt ist, um die Planerfassung zu aktivieren.

  • Die postgres_fdw-Erweiterung ist installiert – Verwenden Sie die folgende Abfrage, um zu überprüfen, ob postgres_fdw installiert ist.

    postgres=> SELECT * FROM pg_extension WHERE extname = 'postgres_fdw'
  • create_replica_plan_capture() wird aufgerufen – Verwenden Sie den folgenden Befehl, um zu überprüfen, ob die Benutzerzuordnung vorhanden ist. Rufen Sie andernfalls create_replica_plan_capture() auf, um das Feature zu initialisieren.

    postgres=> SELECT * FROM pg_foreign_server WHERE srvname = 'apg_plan_mgmt_writer_foreign_server';
  • Endpunkt und Portnummer — Prüfen Sie, ob der Endpunkt und die Portnummer angemessen sind. Wenn diese Werte inkorrekt sind, wird keine Fehlermeldung angezeigt.

    Verwenden Sie den folgenden Befehl, um zu überprüfen, ob der Endpunkt in create () verwendet wurde und in welcher Datenbank er sich befindet:

    postgres=> SELECT srvoptions FROM pg_foreign_server WHERE srvname = 'apg_plan_mgmt_writer_foreign_server';
  • reload() – Sie müssen apg_plan_mgmt.reload() aufrufen, nachdem Sie apg_plan_mgmt.delete_plan() in Aurora Replicas aufgerufen haben, damit die Löschfunktion wirksam wird. Dadurch wird sichergestellt, dass die Änderung erfolgreich implementiert wurde.

  • Passwort – Sie müssen das Passwort in create_replica_plan_capture() gemäß den genannten Richtlinien eingeben. Andernfalls wird eine Fehlermeldung angezeigt. Weitere Informationen finden Sie unter Verwaltung der Planerfassung für Aurora Replicas. Verwenden Sie ein anderes Passwort, das den Anforderungen entspricht.

  • Regionsübergreifende Verbindung – Die Planerfassung in Aurora Replicas wird auch in der globalen Aurora-Datenbank unterstützt, wo sich Writer-Instance und Aurora Replicas in verschiedenen Regionen befinden können. Stellen Sie sicher, dass Sie den Aurora Global Database-Writer-Endpunkt verwenden, um die Konnektivität nach Failover- oder Switchover-Ereignissen aufrechtzuerhalten. Weitere Informationen zu den Aurora Global Database-Endpunkten finden Sie unter Endpunkte einer Amazon Aurora Global Database anzeigen. Die Writer-Instance und das regionsübergreifende Replikat müssen in der Lage sein, mithilfe von VPC-Peering zu kommunizieren. Weitere Informationen finden Sie unter VPC-Peering. Wenn ein regionsübergreifendes Failover auftritt, müssen Sie den Endpunkt auf einen neuen primären DB-Cluster-Endpunkt umkonfigurieren.

    Anmerkung

    Wenn Sie einen Cluster-Endpunkt anstelle eines Aurora Global Database-Writer-Endpunkts verwenden, müssen Sie den Cluster-Endpunkt aktualisieren, nachdem Sie entweder einen globalen Failover- oder Switchover-Vorgang durchgeführt haben.