Puede exportar sus planes administrados e importarlos en otra instancia de base de datos.
Para exportar planes administrados.
Un usuario autorizado puede copiar cualquier subconjunto de la tabla apg_plan_mgmt.plans
a otra tabla, y después guardarlo mediante el comando pg_dump
. A continuación se muestra un ejemplo.
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 planes administrados.
-
Copie el archivo .tar de los planes administrados exportados al sistema en el que desee restaurar los planes.
-
Utilice el comando
pg_restore
para copiar el archivo tar en una nueva tabla.%
pg_restore --dbname mytargetdatabase -Ft plans_copy.tar -
Combine la tabla
plans_copy
con la tablaapg_plan_mgmt.plans
, como se muestra en el siguiente ejemplo.nota
En algunos casos, puede volcar de una versión de la extensión
apg_plan_mgmt
y restaurar a una versión diferente. En estos casos, las columnas de la tabla de planes puede ser diferente. De ser así, ponga un nombre explícito a las columnas en lugar 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;
-
Vuelva a cargar los planes administrados en la memoria compartida y elimine la tabla de planes temporal.
SELECT apg_plan_mgmt.reload();
-- refresh shared memory
DROP TABLE plans_copy;