

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.

# Capture de plans d’exécution Aurora PostgreSQL dans des réplicas
<a name="AuroraPostgreSQL.QPM.Plancapturereplicas"></a>

QPM (Query Plan Management) vous permet de capturer les plans de requête générés par des réplicas Aurora et de les stocker sur l’instance de base de données principale du cluster de bases de données Aurora. Vous pouvez collecter les plans de requête de tous les réplicas Aurora et conserver les plans optimaux dans une table persistante centrale sur l’instance principale. Vous pouvez ensuite appliquer ces plans à d’autres réplicas si nécessaire. Cela vous permet de préserver la stabilité des plans d’exécution et d’améliorer les performances des requêtes sur l’ensemble des clusters de bases de données et des versions du moteur.

**Topics**
+ [

## Prérequis
](#AuroraPostgreSQL.QPM.Plancapturereplicas.Prereq)
+ [

## Gestion de la capture de plans dans des réplicas Aurora
](#AuroraPostgreSQL.QPM.Plancapturereplicas.managing)
+ [

## Résolution des problèmes
](#AuroraPostgreSQL.QPM.Plancapturereplicas.Troubleshooting)

## Prérequis
<a name="AuroraPostgreSQL.QPM.Plancapturereplicas.Prereq"></a>

**Activez `capture_plan_baselines parameter` dans le réplica Aurora :** définissez le paramètre `capture_plan_baselines` sur automatique ou manuel pour capturer des plans dans des réplicas Aurora. Pour plus d’informations, consultez [apg\$1plan\$1mgmt.capture\$1plan\$1baselines](AuroraPostgreSQL.Optimize.Parameters.md#AuroraPostgreSQL.Optimize.Parameters.capture_plan_baselines).

**Installez l’extension postgres\$1fdw :** vous devez installer l’extension de l’encapsuleur de données externes `postgres_fdw` pour capturer des plans dans des réplicas Aurora. Pour installer l’extension, exécutez la commande suivante dans chaque base de données. 

```
postgres=> CREATE EXTENSION IF NOT EXISTS postgres_fdw;
```

## Gestion de la capture de plans dans des réplicas Aurora
<a name="AuroraPostgreSQL.QPM.Plancapturereplicas.managing"></a>

**Activation de la capture de plans dans des réplicas Aurora**  
Vous devez disposer de privilèges `rds_superuser` pour créer ou supprimer la capture de plans dans des réplicas Aurora. Pour plus d’informations sur les rôles utilisateur et les autorisations, consultez [Comprendre les rôles et les autorisations PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.PostgreSQL.CommonDBATasks.Roles.html).

Pour capturer des plans, appelez la fonction apg\$1plan\$1mgmt.create\$1replica\$1plan\$1capture dans l’instance de base de données d’enregistreur, comme indiqué ci-dessous :

```
postgres=> CALL apg_plan_mgmt.create_replica_plan_capture('endpoint', 'password');
```
+ point de terminaison : le point de terminaison de l’enregistreur ou cluster\$1endpoint prend en charge le basculement pour la capture de plans dans des réplicas Aurora.

  Pour plus d’informations sur le point de terminaison d’enregistreur Aurora Global Database, consultez [Affichage des points de terminaison d’une base de données Amazon Aurora Global Database](aurora-global-database-connecting.md#viewing-endpoints).

  Pour plus d’informations sur les points de terminaison de cluster, consultez [Points de terminaison de cluster pour Amazon Aurora](Aurora.Endpoints.Cluster.md).
+ password : nous vous recommandons de suivre les instructions ci-dessous lors de la création du mot de passe afin de renforcer sa sécurité :
  + au moins 8 caractères ;
  + au moins une lettre majuscule, une lettre minuscule et un chiffre ;
  + au moins un caractère spécial (`?`, `!`, `#`, `<`, `>`, `*`, etc.).

**Note**  
Si vous modifiez le point de terminaison, le mot de passe ou le numéro de port, vous devez exécuter à nouveau `apg_plan_mgmt.create_replica_plan_capture()` avec le point de terminaison et le mot de passe pour réinitialiser la capture de plans. Dans le cas contraire, la capture de plans dans des réplicas Aurora échouera.

**Désactivation de la capture de plans dans des réplicas Aurora**  
Vous pouvez désactiver le paramètre `capture_plan_baselines` dans le réplica Aurora en définissant sa valeur sur `off` dans le groupe Paramètre.

**Suppression de la capture de plans dans des réplicas Aurora**  
Vous pouvez supprimer complètement la capture de plans dans des réplicas Aurora. Pour supprimer la capture de plans, appelez `apg_plan_mgmt.remove_replica_plan_capture` comme indiqué :

```
postgres=> CALL apg_plan_mgmt.remove_replica_plan_capture();
```

Vous devez appeler à nouveau apg\$1plan\$1mgmt.create\$1replica\$1plan\$1capture() pour activer la capture de plans dans des réplicas Aurora avec le point de terminaison et le mot de passe.

## Résolution des problèmes
<a name="AuroraPostgreSQL.QPM.Plancapturereplicas.Troubleshooting"></a>

Vous trouverez ci-dessous des suggestions de résolution des problèmes et des solutions de contournement si le plan n’est pas capturé dans des réplicas Aurora comme prévu.
+ **Définition des paramètres** : vérifiez si le paramètre `capture_plan_baselines` est défini sur la bonne valeur pour activer la capture de plans.
+ **Installation de l’extension `postgres_fdw`** : utilisez la requête suivante pour vérifier si `postgres_fdw` est installée.

  ```
  postgres=> SELECT * FROM pg_extension WHERE extname = 'postgres_fdw'
  ```
+ **Appel de create\$1replica\$1plan\$1capture ()** : utilisez la commande suivante pour vérifier si le mappage utilisateur existe. Sinon, appelez `create_replica_plan_capture()` pour initialiser la fonctionnalité.

  ```
  postgres=> SELECT * FROM pg_foreign_server WHERE srvname = 'apg_plan_mgmt_writer_foreign_server';
  ```
+ **Point de terminaison et numéro de port** : vérifiez si le point de terminaison et le numéro de port sont exacts. Aucun message d’erreur ne s’affiche si ces valeurs sont incorrectes. 

  Utilisez la commande suivante pour vérifier si le point de terminaison est utilisé dans create() et dans quelle base de données il réside :

  ```
  postgres=> SELECT srvoptions FROM pg_foreign_server WHERE srvname = 'apg_plan_mgmt_writer_foreign_server';
  ```
+ **reload()** : vous devez appeler apg\$1plan\$1mgmt.reload() après avoir appelé apg\$1plan\$1mgmt.delete\$1plan() dans les réplicas Aurora pour que la suppression soit effective. Cela permet de s’assurer que le changement a été mis en œuvre avec succès.
+ **Mot de passe** : vous devez saisir le mot de passe dans create\$1replica\$1plan\$1capture() conformément aux instructions mentionnées. Sinon, vous recevrez un message d’erreur. Pour plus d’informations, consultez [Gestion de la capture de plans dans des réplicas Aurora](#AuroraPostgreSQL.QPM.Plancapturereplicas.managing). Utilisez un autre mot de passe conforme aux instructions.
+ **Connexion interrégionales** : la capture de plans dans des réplicas Aurora est également prise en charge dans la base de données globale Aurora, où l’instance d’enregistreur et les réplicas Aurora peuvent se trouver dans des régions différentes. Assurez-vous d’utiliser le point de terminaison d’enregistreur Aurora Global Database pour maintenir la connectivité après des événements de basculement ou de bascule. Pour plus d’informations sur les points de terminaison Aurora Global Database, consultez [Affichage des points de terminaison d’une base de données Amazon Aurora Global Database](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-global-database-connecting.html#viewing-endpoints). L’instance d’enregistreur et le réplica interrégional doivent être en mesure de communiquer à l’aide d’un appairage de VPC. Pour en savoir plus, consultez [Appairage de VPC](https://docs.aws.amazon.com/vpc/latest/peering/what-is-vpc-peering.html). En cas de basculement vers une autre région, vous devez reconfigurer le point de terminaison du cluster de bases de données principal.
**Note**  
Lorsque vous utilisez un point de terminaison de cluster au lieu d’un point de terminaison d’enregistreur Aurora Global Database, vous devez mettre à jour le point de terminaison du cluster après avoir effectué une opération de basculement ou de bascule globale.