Aurora PostgreSQL の管理計画のエクスポートとインポート - Amazon Aurora

Aurora PostgreSQL の管理計画のエクスポートとインポート

管理計画をエクスポートしたり、別の DB インスタンスにインポートできます。

管理計画をエクスポートする

承認されたユーザーは 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. tar ファイルを新しいテーブルにコピーするには、pg_restore コマンドを使用します。

    % 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;