導出和導入受管理的計劃 Aurora 郵政 SQL - Amazon Aurora

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

導出和導入受管理的計劃 Aurora 郵政 SQL

您可以匯出受管計劃,再匯入另一個資料庫執行個體中。

匯出受管計劃

獲授權使用者可以將 apg_plan_mgmt.plans 資料表的任何子集複製到另一個資料表,然後使用 pg_dump 命令儲存它。以下是範例。

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;
匯入受管計劃
  1. 將所匯出受管計劃的 .tar 檔案複製到將還原計劃的系統上。

  2. 使用 pg_restore 命令將 tar 檔案複製到新的資料表。

    % pg_restore --dbname mytargetdatabase -Ft plans_copy.tar
  3. 合併 plans_copy 資料表與 apg_plan_mgmt.plans 資料表,如下列範例所示。

    注意

    在某些情況下,您可能會從 apg_plan_mgmt 延伸套件的某個版本傾印,然後還原成不同的版本。在這種情況下,計劃資料表中的資料欄可能不同。如果是這樣,請明確命名列,而不是使用 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. 將受管計劃重新載入共用記憶體,並移除暫時計劃資料表。

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