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('cluster_endpoint', 'password');
  • cluster_endpoint - cluster_endpoint (Writer-Endpunkt) bietet Failover-Unterstützung für Plan Capture in Aurora Replicas.

  • 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 Cluster-Endpunkt, das Passwort oder die Portnummer ändern, müssen Sie apg_plan_mgmt.create_replica_plan_capture() erneut mit dem Cluster-Endpunkt und dem Passwort 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 Cluster-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';
  • Cluster-Endpunkt und Portnummer – Überprüfen Sie, ob der Cluster-Endpunkt und die Portnummer korrekt 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. 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.