

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.

# Utilisation du transfert d’écriture local pour Aurora PostgreSQL
<a name="aurora-postgresql-write-forwarding-understanding"></a>

Reportez-vous aux sections suivantes pour vérifier si le transfert d’écriture local est activé dans un cluster de bases de données, pour consulter les considérations en matière de compatibilité et pour découvrir les paramètres configurables et la configuration de l’authentification. Ces informations vous fourniront les détails nécessaires pour utiliser efficacement la fonctionnalité de transfert d’écriture local d’Aurora PostgreSQL.

**Note**  
Lorsqu’une instance d’enregistreur dans un cluster utilisant le transfert d’écriture local est redémarrée, toutes les transactions et requêtes actives et transférées sur les instances de lecteur utilisant le transfert d’écriture local sont automatiquement fermées. Une fois que l’instance d’enregistreur est à nouveau disponible, vous pouvez réessayer ces transactions.

## Vérification de l’activation du transfert d’écriture local dans un cluster de bases de données
<a name="aurora-postgresql-write-forwarding-describing"></a>

Pour déterminer si vous pouvez utiliser le transfert d’écriture local dans un cluster de bases de données, vérifiez que l’attribut `LocalWriteForwardingStatus` du cluster est défini sur `enabled`.

Dans l' AWS Management Console onglet **Configuration** de la page de détails du cluster, le statut **Activé** pour le **transfert d'écriture de répliques de lecture locales s'affiche**.

Pour connaître l'état du paramètre de transfert d'écriture local pour tous vos clusters, exécutez la AWS CLI commande suivante.

**Example**  

```
aws rds describe-db-clusters \
--query '*[].{DBClusterIdentifier:DBClusterIdentifier,LocalWriteForwardingStatus:LocalWriteForwardingStatus}'

[
{
"LocalWriteForwardingStatus": "enabled",
"DBClusterIdentifier": "write-forwarding-test-cluster-1"
},
{
"LocalWriteForwardingStatus": "disabled",
"DBClusterIdentifier": "write-forwarding-test-cluster-2"
},
{
"LocalWriteForwardingStatus": "requested",
"DBClusterIdentifier": "test-global-cluster-2"
},
{
"LocalWriteForwardingStatus": "null",
"DBClusterIdentifier": "aurora-postgresql-v2-cluster"
}
]
```

Un cluster de bases de données peut avoir les valeurs suivantes pour `LocalWriteForwardingStatus` :
+ `disabled` : le transfert d’écriture local est désactivé.
+ `disabling` : le transfert d’écriture local est en cours de désactivation.
+ `enabled` : le transfert d’écriture local est activé.
+ `enabling` : le transfert d’écriture local est en cours d’activation.
+ `null` : le transfert d’écriture local n’est pas disponible pour ce cluster de bases de données.
+ `requested` : le transfert d’écriture local a été demandé, mais n’est pas encore actif.

## Paramètres par défaut pour le transfert d’écriture
<a name="aurora-postgresql-write-forwarding-params"></a>

Les groupes de paramètres de cluster Aurora incluent des paramètres pour la fonctionnalité de transfert d’écriture local. Comme il s’agit de paramètres de cluster, toutes les instances de base de données de chaque cluster ont les mêmes valeurs pour ces variables. Les détails sur ces paramètres sont résumés dans le tableau suivant, avec des notes d’utilisation après le tableau.


| Paramètre | Scope | Type | Valeur par défaut | Valeurs valides | 
| --- | --- | --- | --- | --- | 
| apg\$1write\$1forward.connect\$1timeout | Session | secondes | 30 | 0–2147483647 | 
| apg\$1write\$1forward.consistency\$1mode | Session | enum | Session | SESSION, EVENTUAL, GLOBAL, et OFF | 
| apg\$1write\$1forward.idle\$1in\$1transaction\$1session\$1timeout | Session | millisecondes | 86400000 | 0–2147483647 | 
| apg\$1write\$1forward.idle\$1session\$1timeout | Session | millisecondes | 300 000 | 0–2147483647 | 
| apg\$1write\$1forward.max\$1forwarding\$1connections\$1percent | Globale | int | 25 | 1–100 | 

Le paramètre `apg_write_forward.max_forwarding_connections_percent` est la limite supérieure des emplacements de connexion à la base de données qui peuvent être utilisés pour traiter les requêtes transmises par les lecteurs. Il est exprimé en pourcentage du paramètre `max_connections` de l’instance de base de données d’enregistreur. Par exemple, si la valeur de `max_connections` est `800` et celle de `apg_write_forward.max_forwarding_connections_percent` est `10`, l’enregistreur autorise un maximum de 80 sessions transférées simultanées. Ces connexions proviennent du même groupe de connexions géré par le paramètre `max_connections`. Ce paramètre s’applique uniquement à l’instance de base de données d’enregistreur quand le transfert d’écriture local est activé sur le cluster.

Utilisez les paramètres suivants pour contrôler les demandes de transfert d’écriture local :
+ `apg_write_forward.consistency_mode` : paramètre de niveau session qui contrôle le degré de cohérence en lecture sur le réplica en lecture. Les valeurs valides sont `SESSION`, `EVENTUAL`, `GLOBAL` ou `OFF`. Par défaut, cette valeur indique `SESSION`. Le réglage de la valeur sur `OFF` désactive le transfert d’écriture local dans la session. Pour en savoir plus sur les niveaux de cohérence, consultez [Cohérence et isolement pour le transfert d’écriture local dans Aurora PostgreSQL](aurora-postgresql-write-forwarding-configuring.md#aurora-postgresql-write-forwarding-isolation). Ce paramètre n’est pertinent que dans les instances de lecteur où le transfert d’écriture local est activé.
+ `apg_write_forward.connect_timeout` : nombre maximal de secondes pendant lesquelles le réplica en lecture attend lors de l’établissement d’une connexion à l’instance de base de données d’enregistreur avant d’abandonner. Une valeur de `0` correspond à un temps d’attente indéfini.
+ `apg_write_forward.idle_in_transaction_session_timeout` : nombre de millisecondes pendant lesquelles l’instance de base de données d’enregistreur attend une activité sur une connexion transférée depuis un réplica en lecture ayant une transaction en cours avant de le fermer. Si la session reste inactive au-delà de cette durée, Aurora y met fin. La valeur `0` désactive le délai d’attente.
+ `apg_write_forward.idle_session_timeout` : nombre de millisecondes pendant lesquelles l’instance de base de données d’enregistreur attend une activité sur une connexion transférée depuis un réplica en lecture avant de le fermer. Si la session reste inactive au-delà de cette durée, Aurora y met fin. La valeur `0` désactive le délai d’attente.

## rdswriteforwarduser
<a name="aurora-postgresql-write-forwarding-rdswriteforwarduser"></a>

 `rdswriteforwarduser` est l’utilisateur qui nous permettra d’établir une connexion entre le réplica en lecture et l’instance de base de données d’enregistreur. 

**Note**  
`rdswriteforwarduser` héritera de ses privilèges CONNECT pour les bases de données clients via le rôle PUBLIC. Si les privilèges du rôle PUBLIC sont révoqués, vous devrez octroyer des privilèges GRANT CONNECT pour les bases de données vers lesquelles vous devez transférer les écritures. 