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
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
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 la AWS Management Console, dans l’onglet Configuration de la page de détails du cluster, vous pouvez voir l’état Activé pour Transfert local d’écriture de réplica en lecture.
Pour voir l’état du paramètre de transfert d’écriture local pour tous vos clusters, exécutez la commande AWS CLI suivante.
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
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 | Portée | Type | Valeur par défaut | Valeurs valides |
|---|---|---|---|---|
apg_write_forward.connect_timeout |
Session | secondes | 30 | 0–2147483647 |
apg_write_forward.consistency_mode |
Session | enum | Session | SESSION, EVENTUAL, GLOBAL, et OFF |
apg_write_forward.idle_in_transaction_session_timeout |
Session | millisecondes | 86400000 | 0–2147483647 |
apg_write_forward.idle_session_timeout |
Session | millisecondes | 300000 | 0–2147483647 |
apg_write_forward.max_forwarding_connections_percent |
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 sontSESSION,EVENTUAL,GLOBALouOFF. Par défaut, cette valeur indiqueSESSION. Le réglage de la valeur surOFFdésactive le transfert d’écriture local dans la session. Pour en savoir plus sur les niveaux de cohérence, consultez la section Cohérence et isolement pour le transfert d’écriture local dans Aurora PostgreSQL. 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 de0correspond à 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 valeur0dé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 valeur0désactive le délai d’attente.
rdswriteforwarduser
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.