Utilisation du transfert d’écriture local pour Aurora PostgreSQL - Amazon Aurora

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

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.