Exportieren und Importieren verwalteter Pläne für Aurora Postgre SQL - 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.

Exportieren und Importieren verwalteter Pläne für Aurora Postgre SQL

Sie können Ihre verwalteten Pläne exportieren und in eine andere DB-Instance importieren.

So exportieren Sie verwaltete Pläne:

Autorisierte Benutzer können ein beliebiges Subset der apg_plan_mgmt.plans-Tabelle in eine andere Tabelle kopieren und dann mit dem Befehl pg_dump speichern. Im Folgenden wird ein Beispiel gezeigt.

CREATE TABLE plans_copy AS SELECT * FROM apg_plan_mgmt.plans [ WHERE predicates ] ;
% pg_dump --table apg_plan_mgmt.plans_copy -Ft mysourcedatabase > plans_copy.tar
DROP TABLE apg_plan_mgmt.plans_copy;
So importieren Sie verwaltete Pläne:
  1. Kopieren Sie die .tar-Datei der exportierten verwalteten Pläne in das System, in dem die Pläne wiederhergestellt werden sollen.

  2. Verwenden Sie den Befehl pg_restore, um die .tar-Datei in eine neue Tabelle zu kopieren.

    % pg_restore --dbname mytargetdatabase -Ft plans_copy.tar
  3. Führen Sie die Tabellen plans_copy und apg_plan_mgmt.plans entsprechend dem folgenden Beispiel zusammen.

    Anmerkung

    In einigen Fällen verwenden Sie möglicherweise für die Sicherung eine bestimmte Version der Erweiterung apg_plan_mgmt und für die Wiederherstellung eine andere Version der Erweiterung. In diesem Fällen fallen die Spalten in der Plantabelle möglicherweise unterschiedlich aus. Wenn ja, benennen Sie die Spalten explizit, anstatt SELECT * zu verwenden.

    INSERT INTO apg_plan_mgmt.plans SELECT * FROM plans_copy ON CONFLICT ON CONSTRAINT plans_pkey DO UPDATE SET status = EXCLUDED.status, enabled = EXCLUDED.enabled, -- Save the most recent last_used date -- last_used = CASE WHEN EXCLUDED.last_used > plans.last_used THEN EXCLUDED.last_used ELSE plans.last_used END, -- Save statistics gathered by evolve_plan_baselines, if it ran: -- estimated_startup_cost = EXCLUDED.estimated_startup_cost, estimated_total_cost = EXCLUDED.estimated_total_cost, planning_time_ms = EXCLUDED.planning_time_ms, execution_time_ms = EXCLUDED.execution_time_ms, total_time_benefit_ms = EXCLUDED.total_time_benefit_ms, execution_time_benefit_ms = EXCLUDED.execution_time_benefit_ms;
  4. Laden Sie die verwalteten Pläne erneut in den gemeinsam genutzten Speicher und entfernen Sie die Tabelle für die temporären Pläne.

    SELECT apg_plan_mgmt.reload(); -- refresh shared memory DROP TABLE plans_copy;