Exportar e importar planos gerenciados do Aurora PostgreSQL - Amazon Aurora

Exportar e importar planos gerenciados do Aurora PostgreSQL

Exporte os planos gerenciados e os importe para outra instância de banco de dados.

Para exportar planos gerenciados

Um usuário autorizado pode copiar qualquer subconjunto da tabela apg_plan_mgmt.plans para outra tabela e salvá-lo usando o comando pg_dump. Veja um exemplo a seguir.

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;
Para importar planos gerenciados
  1. Copie o arquivo .tar dos planos gerenciados exportados para o sistema onde os planos precisam ser restaurados.

  2. Use o comando pg_restore a fim de copiar o arquivo tar para uma nova tabela.

    % pg_restore --dbname mytargetdatabase -Ft plans_copy.tar
  3. Mescle a tabela plans_copy com a tabela apg_plan_mgmt.plans, conforme mostrado no exemplo a seguir.

    nota

    Em alguns casos, você pode descarregar de uma versão da extensão apg_plan_mgmt e restaurar para outra versão. Nesses casos, as colunas na tabela de planos podem ser diferentes. Se for diferente, nomeie as colunas explicitamente, em vez de usar 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. Recarregue os planos gerenciados na memória compartilhada e remova a tabela de planos temporária.

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