Configuration des paramètres de l’extension pgactive - Amazon Relational Database Service

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.

Configuration des paramètres de l’extension pgactive

Vous pouvez utiliser la requête suivante pour afficher tous les paramètres associés à l'extension pgactive.

app=> SELECT * FROM pg_settings WHERE name LIKE 'pgactive.%';

Vous pouvez configurer l’extension pgactive à l’aide de différents paramètres. Ces paramètres peuvent être définis par le biais de la AWS Management Console ou de l’interface AWS CLI.

Principaux paramètres de l’extension pgactive

Le tableau suivant fournit une référence pour les principaux paramètres de l’extension pgactive :

Paramètre

Unité

Par défaut

Description

pgactive.conflict_logging_include_tuples

boolean

Journalise les informations complètes du tuple pour l’extension pgactive.

Note

Un redémarrage du serveur est nécessaire pour que les modifications prennent effet.

pgactive.log_conflicts_to_table

boolean

Détermine si l’extension pgactive journalise les conflits détectés dans la table pgactive.pgactive_conflict_history. Pour plus d’informations, consultez Journalisation des conflits.

Note

Un redémarrage du serveur est nécessaire pour que les modifications prennent effet.

pgactive.log_conflicts_to_logfile

boolean

Détermine si l’extension pgactive journalise les conflits détectés dans le fichier journal PostgreSQL. Pour plus d’informations, consultez Journalisation des conflits.

Note

Un redémarrage du serveur est nécessaire pour que les modifications prennent effet.

pgactive.synchronous_commit

boolean

off

Détermine le comportement de validation pour les applications de travail d’application pgactive. Lorsque cette option est désactivée (off), les applications de travail d’application effectuent des validations asynchrones, ce qui améliore le débit de PostgreSQL lors des opérations d’application, mais retarde les confirmations de relecture en amont. La paramétrer sur off est toujours sûr et n’entraîne pas de perte ni de saut de transaction. Ce paramètre affecte uniquement le calendrier des vidanges de disque sur le nœud en aval et le moment où les confirmations sont envoyées en amont. Le système retarde l’envoi des confirmations de relecture jusqu’à ce que les validations soient vidées sur le disque par le biais d’opérations indépendantes, telles que des points de contrôle ou des tâches périodiques. Toutefois, si l’amont a répertorié l’aval dans synchronous_standby_names, si vous définissez ce paramètre sur off, les validations synchrones en amont mettent plus de temps à signaler le succès au client. Dans ce cas, définissez le paramètre sur on.

Note

Même lorsque ce paramètre est défini sur on, avec des nœuds répertoriés dans synchronous_standby_names, des conflits de réplication peuvent toujours se produire dans les configurations active-active. Cela est dû au fait que le système ne dispose pas de verrouillage entre nœuds ni de gestion globale des instantanés, ce qui permet à des transactions simultanées sur différents nœuds de modifier le même tuple. De plus, les transactions ne commencent la réplication qu’après avoir été validées sur le nœud en amont. L’activation de la validation synchrone ne transforme pas l’extension pgactive en un système toujours cohérent.

pgactive.temp_dump_directory

string

Définit le chemin de stockage temporaire requis pour les opérations de clonage de base de données lors de la configuration initiale. Ce répertoire doit être accessible en écriture par l’utilisateur postgres et disposer d’un espace de stockage suffisant pour contenir un vidage complet de la base de données. Le système utilise cet emplacement uniquement lors de la configuration initiale de la base de données avec des opérations de copie logique. Ce paramètre n’est pas utilisé par la pgactive_init_copy command.

pgactive.max_ddl_lock_delay

milliseconds

-1

Spécifie le temps d’attente maximal pour le verrou DDL avant l’abandon forcé de transactions d’écriture simultanées. La valeur par défaut est -1, qui adopte la valeur définie dans max_standby_streaming_delay. Ce paramètre accepte les unités de temps. Par exemple, vous pouvez le définir sur 10 s pour 10 secondes. Pendant cette période d’attente, le système tente d’acquérir des verrous DDL en attendant que les transactions d’écriture en cours soient validées ou annulées. Pour plus d’informations, consultez Verrouillage DDL.

pgactive.ddl_lock_timeout

milliseconds

-1

Spécifie le temps d’attente d’une tentative de verrouillage DDL pour obtenir le verrou. La valeur par défaut est -1, qui utilise la valeur spécifiée dans lock_timeout. Vous pouvez définir ce paramètre en utilisant des unités de temps telles que 10 s pour 10 secondes. Ce minuteur contrôle uniquement la période d’attente pour obtenir un verrou DDL. Une fois que le système obtient le verrou et commence l’opération DDL, le minuteur s’arrête. Ce paramètre ne limite pas la durée totale pendant laquelle un verrou DDL peut être maintenu ni le temps global de l’opération DDL. Pour contrôler la durée totale de l’opération, utilisez plutôt statement_timeout. Pour plus d’informations, consultez Verrouillage DDL.

pgactive.debug_trace_ddl_locks_level

boolean

Remplace le niveau de journalisation de débogage par défaut pour les opérations de verrouillage DDL dans l’extension pgactive. Lorsqu’il est configuré, ce paramètre entraîne l’émission de messages relatifs aux verrous DDL au niveau de débogage JOURNAL au lieu du niveau par défaut. Utilisez ce paramètre pour surveiller l’activité de verrouillage DDL sans activer les niveaux de journalisation détaillée DEBUG1 ou DEBUG2 sur l’ensemble du serveur.

Niveaux de journalisation disponibles, par ordre croissant de détail :

  • none : les messages de verrous DDL apparaissent uniquement aux niveaux de journalisation du serveur DEBUG1 et inférieurs.

  • statement : ajoute une sortie JOURNAL pour les tentatives d’acquisition de verrous DDL.

  • acquire_release : enregistre les événements d’acquisition, de libération, de refus de verrous et les applications de nœuds pairs des verrous DDL distants.

  • peers : fournit des informations supplémentaires sur les négociations de verrous DDL entre les nœuds pairs.

  • debug : journalise toutes les activités liées aux verrous DDL au niveau JOURNAL.

Pour plus d’informations sur les options de surveillance, consultez Surveillance des verrous DDL globaux.

Note

Les modifications apportées à ce paramètre prennent effet lorsque vous rechargez la configuration. Vous n’avez pas besoin de redémarrer le serveur.

Paramètres supplémentaires de l’extension pgactive

Le tableau suivant présente les options de configuration internes moins fréquemment utilisées disponibles pour l’extension pgactive.

Paramètre

Unité

Par défaut

Description

pgactive.debug_apply_delay

integer

Définit un délai d’application (en millisecondes) pour les connexions configurées dont l’entrée pgactive.pgactive_connections ne comporte pas de délai d’application explicite. Ce délai est défini lors de la création ou de la jointure d’un nœud, et pgactive ne relit pas une transaction sur des nœuds pairs avant qu’au moins le nombre de millisecondes spécifié ne se soit écoulé depuis sa validation.

Principalement utilisé pour simuler des réseaux à latence élevée dans des environnements de test afin de faciliter la création de conflits. Par exemple, avec un délai de 500 ms sur les nœuds A et B, vous disposez d’au moins 500 ms pour effectuer une insertion conflictuelle sur le nœud B après avoir inséré une valeur sur le nœud A.

Note

Nécessite le rechargement du serveur ou le redémarrage des applications de travail d’application pour prendre effet.

pgactive.connectability_check_duration

integer

Spécifie la durée (en secondes) pendant laquelle une application de travail de base de données tente d’établir des connexions en cas de tentative infructueuse. L’application de travail effectue une tentative de connexion par seconde jusqu’à ce qu’elle réussisse ou atteigne ce délai d’expiration. Ce paramètre est utile lorsque le moteur de base de données démarre avant que l’application de travail ne soit prête à établir des connexions.

pgactive.skip_ddl_replication

boolean

on

Contrôle la manière dont les modifications DDL sont répliquées ou gérées dans Amazon RDS lorsque pgactive est activé. Lorsqu’il est défini sur on, le nœud traite les modifications DDL comme un nœud non pgactive. Les exigences suivantes s’appliquent lors de l’utilisation de ce paramètre :

  • Les nouveaux nœuds ne peuvent pas rejoindre un groupe pgactive si la valeur de skip_ddl_replication est différente de celle du nœud en amont.

  • Les nœuds existants ne peuvent pas démarrer les applications de travail pgactive si leur valeur de paramètre ne correspond pas à celle du nœud en amont.

  • Tous les membres de pgactive doivent utiliser la même valeur de paramètre.

Vous pouvez modifier ce paramètre de deux manières avec les privilèges de super utilisateur : globalement, localement (au niveau de la session).

Note

Une modification incorrecte de ce paramètre peut corrompre les configurations de réplication.

pgactive.do_not_replicate

boolean

Ce paramètre est réservé à une utilisation interne. Lorsque vous définissez ce paramètre dans une transaction, les modifications ne sont pas répliquées sur les autres nœuds du cluster de bases de données.

Note

Une modification incorrecte de ce paramètre peut corrompre les configurations de réplication.

pgactive.discard_mismatched_row_attributes

boolean

Ce paramètre est réservé à une utilisation par des spécialistes. Nous recommandons d’utiliser ce paramètre uniquement pour résoudre des problèmes de réplication spécifiques. Utilisez ce paramètre lorsque :

  • Le flux de réplication entrant contient des lignes comportant plus de colonnes que la table locale.

  • Ces lignes distantes contiennent des valeurs non nulles.

Ce paramètre remplace le message d’erreur suivant et permet la divergence de données afin de permettre la poursuite de la réplication : cannot right-pad mismatched attributes; attno %u is missing in local table and remote row has non-null, non-dropped value for this attribute

Note

Une modification incorrecte de ce paramètre peut corrompre les configurations de réplication.

pgactive.debug_trace_replay

boolean

Lorsqu’il est défini sur on, il émet un message de journal pour chaque action à distance effectuée par les processus de travail d’application en aval. Les journaux incluent :

  • Type de modification

  • Nom de la table concernée

  • Nombre de modifications depuis le début de la transaction

  • LSN de validation de transaction

  • Horodatage de validation

  • Identifiant du nœud en amont

  • Identifiant du nœud de transfert (le cas échéant)

Les journaux capturent également les commandes DDL en file d’attente et les suppressions de tables.

para>

Par défaut, les journaux n’incluent pas le contenu des champs de ligne. Pour inclure des valeurs de ligne dans les journaux, vous devez effectuer une recompilation avec les indicateurs suivants activés :

  • VERBOSE_INSERT

  • VERBOSE_UPDATE

  • VERBOSE_DELETE

Note

L’activation de ce paramètre de journalisation peut avoir un impact sur les performances. Nous vous recommandons de l’activer uniquement lorsque c’est nécessaire pour la résolution des problèmes. Les modifications apportées à ce paramètre prennent effet lorsque vous rechargez la configuration. Vous n’avez pas besoin de redémarrer le serveur.

pgactive.extra_apply_connection_options

Vous pouvez configurer les paramètres de connexion pour toutes les connexions de nœuds pairs avec des nœuds pgactive. Ces paramètres contrôlent les paramètres tels que les modes keepalives et SSL. Par défaut, pgactive utilise les paramètres de connexion suivants :

  • connect_timeout=30

  • keepalives=1

  • keepalives_idle=20

  • keepalives_interval=20

  • keepalives_count=5

Pour remplacer les paramètres par défaut, utilisez la commande similaire suivante :

pgactive.extra_apply_connection_options = 'keepalives=0'

Les chaînes de connexion des nœuds individuels ont la priorité sur ces paramètres et sur les options de connexion intégrées de pgactive. Pour plus d’informations sur les formats de chaînes de connexion, consultez la rubrique relative aux chaînes de connexion libpq.

Nous vous recommandons de conserver les paramètres keepalive par défaut activés. Désactivez les paramètres keepalive uniquement si vous rencontrez des problèmes lors de transactions importantes effectuées sur des réseaux peu fiables.

Note

Nous vous recommandons de conserver les paramètres keepalive par défaut activés. Désactivez les paramètres keepalive uniquement si vous rencontrez des problèmes lors de transactions importantes effectuées sur des réseaux peu fiables. Les modifications apportées à ce paramètre prennent effet lorsque vous rechargez la configuration. Vous n’avez pas besoin de redémarrer le serveur.

pgactive.init_node_parallel_jobs (int)

Spécifie le nombre de tâches parallèles que pg_dump et pg_restore peuvent utiliser lors des jointures de nœuds logiques avec la fonction pgactive.pgactive_join_group.

Les modifications apportées à ce paramètre prennent effet lorsque vous rechargez la configuration. Vous n’avez pas besoin de redémarrer le serveur.

pgactive.max_nodes

int

4

Spécifie le nombre maximal de nœuds autorisés dans un groupe d’extensions pgactive. La valeur par défaut est de 4 nœuds. Vous devez prendre en considération ce qui suit lors de la définition de la valeur de ce paramètre :

  • Tous les nœuds d’un groupe d’extensions pgactive doivent utiliser la même valeur de paramètre.

  • Il est impossible de joindre un nouveau nœud si sa valeur de paramètre est différente de celle du nœud en amont.

  • Les nœuds existants ne peuvent pas démarrer d’applications de travail d’extension pgactive si leur valeur de paramètre est différente de celle du nœud en amont.

  • Les groupes plus importants nécessitent des efforts de surveillance et de maintenance supplémentaires, donc évaluez judicieusement la valeur de ce paramètre.

Vous pouvez définir ce paramètre de deux manières : dans le fichier de configuration, à l’aide de la commande ALTER SYSTEM SET

La valeur par défaut de ce paramètre est 4, ce qui signifie qu’il peut y avoir un maximum de 4 nœuds autorisés dans le groupe d’extensions pgactive à tout moment.

Note

La modification prend effet après le redémarrage du serveur.

pgactive.permit_node_identifier_getter_function_creation

boolean

Ce paramètre est réservé à une utilisation interne. Lorsqu’il est activé, l’extension pgactive permet de créer la fonction getter d’identifiant de nœud pgactive.