

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Exportation et importation de plans gérés pour Aurora PostgreSQL
<a name="AuroraPostgreSQL.Optimize.Maintenance.ExportingImporting"></a>

Vous pouvez exporter vos plans gérés et les exporter dans une autre instance de base de données. 

**Pour exporter des plans gérés**  
Un utilisateur autorisé peut copier tout sous-ensemble de la table `apg_plan_mgmt.plans` dans une autre table et l’enregistrer à l’aide de la commande `pg_dump`. Voici un exemple de.

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

**Pour importer des plans gérés**

1. Copiez le fichier .tar des plans gérés exportés dans le système dans lequel vous voulez restaurer les plans.

1. Utilisez la commande `pg_restore` pour copier le fichier .tar dans une nouvelle table. 

   ```
   % pg_restore --dbname mytargetdatabase -Ft plans_copy.tar
   ```

1. Fusionnez la table `plans_copy` avec la table `apg_plan_mgmt.plans`, comme montré dans l’exemple suivant.
**Note**  
Dans certains cas, il se peut que vous procédiez à un vidage depuis une version de l’extension `apg_plan_mgmt` et que vous la restauriez dans une autre version. Dans ces cas-là, il se peut que les colonnes de la table des plans soient différentes. Dans ce cas, nommez les colonnes explicitement au lieu d’utiliser SELECT \$1. 

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

1. Rechargez les plans gérés dans la mémoire partagée et supprimez la table temporaire des plans.

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