pg_recvlogical — contrôle les flux de décodage logique de PostgreSQL
pg_recvlogical [option...]
   pg_recvlogical contrôle des slots de réplication pour le
   décodage logique et envoie les données par flux depuis ces slots de
   réplication.
  
Il crée une connexion en mode réplication, et est donc sujet aux même contraintes que pg_receivewal, en plus de celles de la réplication logique (voir Chapitre 47).
   pg_recvlogical n'a pas d'équivalent aux modes
   d'interface SQL de décodage logique peek et get. Il envoie des confirmation
   de rejeu pour les données de manière paresseuse quand il les reçoit et lors
   d'un arrêt propre.  Pour examiner les données en attente d'un slot sans les
   consommer, utilisez pg_logical_slot_peek_changes.
  
En absence d'erreurs fatales, pg_recvlogical s'exécutera jusqu'à ce qu'il soit arrêté par le signal SIGINT (Control+C) ou par le signal SIGTERM.
Au moins une des options suivantes doit être indiquée pour sélectionner une action :
--create-slot
       Crée un nouveau slot de réplication avec le nom spécifié avec
       --slot, utilisant le plugin de sortie spécifié avec
       --plugin, pour la base de données spécifiée par
       --dbname.
      
       L'option --two-phase peut être précisée avec
       --create-slot pour activer le décodage des transactions
       préparées.
      
--drop-slot
       Supprime le slot de réplication dont le nom est spécifié avec l'option
       --slot, puis quitte.
      
--start
       Commence le transfert des modifications à partir du slot de réplication
       spécifié par l'option --slot, et continue jusqu'à être
       arrêté par un signal. Si le flux de modifications côté serveur se
       termine avec un arrêt du serveur ou une déconnexion, tente de nouveau
       dans une boucle, sauf si l'option --no-loop est
       ajoutée.
      
Le format du flux est déterminé par le plugin en sortie indiqué lors de la création du slot.
La connexion doit se faire sur la même base de données que celle utilisée pour créer le slot.
   Les actions --create-slot et --start
   peuvent être utilisées ensemble. --drop-slot ne peut pas
   être combinée avec une autre action.
  
L'option de ligne de commande suivante contrôle l'emplacement et le format de sortie ainsi que les autres comportements de la réplication :
-f nom_fichier--file=nom_fichier
       Écrit les données de transactions reçues et décodées dans ce fichier.
       Utiliser - pour la sortie standard
       (stdout).
      
-F interval_secondes--fsync-interval=interval_secondes
       Précise la fréquence des appels à fsync() par
       pg_recvlogical pour s'assurer que le fichier
       en sortie est à coup sûr sur disque.
      
De temps en temps, le serveur demande au client de réaliser les écritures et de rapporter sa position au serveur. Ce paramètre permet d'aller au-delà, pour réaliser des écritures plus fréquentes.
       Indiquer un intervalle de 0 désactive tous les
       appels à fsync(). Le serveur est toujours informé
       de la progression. Dans ce cas, des données peuvent être perdues en cas
       de crash.
      
-I lsn--startpos=lsn
       Dans le mode --start, la réplication commence à la
       position LSN désignée. Pour les détails de son effet, voir la
       documentation dans Chapitre 47 et Section 53.4. Ignoré dans les autres modes.
      
-E lsn--endpos=lsn
       Dans le mode --start, l'outil arrête automatiquement
       la réplication et quitte avec un code retour normal 0 quand il atteint
       le LSN spécifié.  S'il est spécifié et que le mode
       --start n'est pas demandé, une erreur est levée.
      
       S'il y a un enregistrement avec le LSN strictement égal à
       lsn, l'enregistrement sera produit.
      
       L'option --endpos n'est pas au courant des limites
       de transaction et pourrait tronquer en partie la sortie d'une
       transaction. Toute transaction partiellement produite ne sera pas
       consommée et sera rejouée de nouveau quand le slot sera de nouveau lu.
       Les messages individuels ne sont jamais tronqués.
      
--if-not-exists
       Ne renvoie pas une erreur quand --create-slot est
       spécifié et qu'un slot de ce nom existe déjà.
      
-n--no-loopQuand la connexion au serveur est perdue, ne pas tenter de nouveau dans une boucle, mais quitte simplement.
-o nom[=valeur]--option=nom[=valeur]
       Passe l'option nom au plugin en sortie avec
       la valeur si elle est spécifiée. Des options
       existent mais leurs effets dépendent du plugin utilisé en sortie.
      
-P plugin--plugin=pluginLors de la création du slot, utiliser la sortie de plugin de décodage spécifiée. Voir Chapitre 47. Cette option n'a pas d'effet si le slot existe déjà.
-s intervalle_en_seconde--status-interval=intervalle_en_secondeCette option a le même effet que l'option du même nom dans pg_receivewal. Voir la description à cet endroit.
-S nom_slot--slot=nom_slot
       Dans le mode --start, utilise le slot de réplication
       logique existant nommé nom_slot. Dans le
       mode --create-slot, créer le slot de réplication avec
       ce nom. Dans le mode --drop-slot, supprime le slot de
       ce nom.
      
-t--two-phase
       Active le décodage des transactions préparées. Cette option devrait
       uniquement être indiquée avec --create-slot
      
-v--verboseActive le mode verbeux.
Les options suivantes en ligne de commande contrôlent les paramètres de connexion à la base de données.
-d nom_base--dbname=nom_baseLa base de données où se connecter. Voir la description des actions de sa signification. Ce nom de base peut être remplacé par une chaîne de connexion. Dans ce cas, les paramètres de la chaîne de connexion surchargeront toutes les options en ligne de commande conflictuelles. La valeur par défaut est le nom de l'utilisateur.
-h alias-ou-ip--host=alias-ou-ip
       Indique le nom d'hôte du serveur. Si la valeur commence avec un slash,
       elle est utilisée comme nom du répertoire pour le socket de domaine
       Unix. La valeur par défaut est récupérée de la variable d'environnement
       PGHOST. Si cette dernière n'est pas configurée, une
       connexion par socket de domaine Unix est tentée.
      
-p port--port=port
       Indique le port TCP ou l'extension du fichier de socket de domaine
       Unix, sur lequel le serveur écoute les connexions entrantes. La valeur
       par défaut correspond à la valeur de la variable d'environnement
       PGPORT. Si cette variable n'est pas configurée, une
       valeur compilée est prise en compte.
      
-U nom_utilisateur--username=nom_utilisateurLe nom d'utilisateur utilisé pour la connexion. Sa valeur par défaut est le nom de l'utilisateur du système d'exploitation.
-w--no-password
       Ne demande jamais un mot de passe. Si le serveur requiert une
       authentification par mot de passe et qu'un mot de passe n'est pas
       disponible par d'autres moyens tels que le fichier
       .pgpass, la tentative de connexion échouera. Cette
       option peut être utile dans les jobs programmés et dans les scripts où
       aucun utilisateur n'est présent pour saisir un mot de passe.
      
-W--passwordForce pg_recvlogical à demander un mot de passe avant de se connecter à une base de données.
       Cette option n'est jamais obligatoire, car
       pg_recvlogical demandera automatiquement un
       mot de passe si le serveur requiert une authentification par mot de
       passe. Néanmoins, pg_recvlogical gaspillera
       une tentative de connexion pour trouver que le serveur a besoin d'un
       mot de passe. Dans certains cas, il est préférable d'utiliser l'option
       -W pour éviter la tentative de connexion
       supplémentaire.
      
Les options supplémentaires suivantes sont disponibles :
-V--versionAffiche la version de pg_recvlogical, puis quitte.
-?--helpAffiche l'aide sur les arguments en ligne de commande de pg_recvlogical, puis quitte.
pg_recvlogical quittera avec le code 0 s'il est arrêté par les signaux SIGINT ou SIGTERM. (C'est la façon normale de l'arrêter, donc ce n'est pas une erreur.) Pour les erreurs fatales ou les autres signaux, le code de sortie sera différent de zéro.
Cet outil, comme la plupart des autres outils PostgreSQL, utilise les variables d'environnement supportées par libpq (voir Section 32.15).
   La variable d'environnement PG_COLOR indique s'il faut
   utiliser les couleurs dans les messages de diagnostic. Les valeurs
   possibles sont always, auto,
   never.
  
pg_recvlogical conservera les droits du groupe sur les fichiers WAL reçus si les droits du groupe sont activés sur l'instance source.
   Quand pg_recvlogical reçoit un signal
   SIGHUP, il ferme le fichier de sortie courant et en ouvre
   un nouveau en utilisant le nom de fichier indiqué par l'option
   --file. Ceci nous permet de changer le fichier en sortie en
   renommant tout d'abord le fichier en cours puis en envoyant un signal
   SIGHUP à pg_recvlogical.
  
Voir Section 47.1 pour un exemple.