Mengekspor dan mengimpor rencana terkelola untuk Aurora Postgre SQL - Amazon Aurora

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Mengekspor dan mengimpor rencana terkelola untuk Aurora Postgre SQL

Anda dapat mengekspor rencana terkelola Anda dan mengimpornya ke dalam instans DB lain.

Untuk mengekspor rencana terkelola

Pengguna dapat menyalin subset tabel apg_plan_mgmt.plans ke tabel lain, lalu menyimpannya menggunakan perintah pg_dump. Berikut adalah contohnya.

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;
Untuk mengimpor rencana terkelola
  1. Salin file .tar dari rencana terkelola yang diekspor ke sistem tempat rencana tersebut akan dipulihkan.

  2. Gunakan perintah pg_restore untuk menyalin file .tar ke dalam tabel baru.

    % pg_restore --dbname mytargetdatabase -Ft plans_copy.tar
  3. Gabungkan tabel plans_copy dengan tabel apg_plan_mgmt.plans seperti yang ditunjukkan dalam contoh berikut.

    catatan

    Dalam beberapa kasus, Anda mungkin membuang dari satu versi ekstensi apg_plan_mgmt dan memulihkan ke versi yang berbeda. Dalam kasus ini, kolom di tabel rencana mungkin berbeda. Jika demikian, beri nama kolom secara eksplisit alih-alih menggunakan SELECT *.

    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. Muat ulang rencana terkelola ke dalam memori bersama dan hapus tabel rencana sementara.

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