postgres

Nom

postgres -- lance un serveur PostgreSQL en mode mono utilisateur

Synopsis

postgres [-A 0 | 1 ] [-B nombre_de_tampons] [-c nom=valeur] [-d niveau-débogage] [--describe-config] [-D répertoire_données] [-e] [-E] [-f s | i | t | n | m | h ] [-F] [-N] [-o nom_fichier] [-O] [-P] [-s | -t pa | pl | ex ] [-S work-mem] [-W secondes] [--nom=valeur] base_de_données
postgres [-A 0 | 1 ] [-B nombre_de_tampons] [-c nom=valeur] [-d niveau-débogage] [-D répertoire_données] [-e] [-f s | i | t | n | m | h ] [-F] [-o nom_fichier] [-O] [-p base_de_données] [-P] [-s | -t pa | pl | ex ] [-S work-mem] [-v protocole] [-W secondes] [--nom=valeur]

Description

L'exécutable postgres est le processus serveur réel de PostgreSQL, celui qui traite les requêtes. Il n'est pas normalement appelé directement ; à la place, un serveur multi-utilisateurs postmaster est lancé.

La deuxième forme ci-dessus est la façon dont postgres est appelé par postmaster (seulement conceptuellement, car postmaster et postgres sont en fait le même programme) ; il ne devrait pas être appelé directement de cette façon. La première forme appelle le serveur directement dans un mode interactif mono utilisateur. La principale utilisation pour ce mode est le démarrage de l'initialisation par initdb. Quelque fois, il est utilisé pour le débogage ou la récupération après un problème grave.

Lorsqu'il est appelé en mode interactif à partir du shell, l'utilisateur peut entrer les requêtes et les résultats sont affichés à l'écran mais dans une forme qui est plus utile pour les développeurs que pour les utilisateurs. Mais notez que lancer un serveur en simple utilisateur n'est pas vraiment convenable pour le débogage du serveur car il n'y a pas de communications interprocessus réalistes et qu'aucun verrou n'est posé.

Lors de l'utilisation d'un serveur en mono utilisateur, l'utilisateur de la session est initialisé avec l'ID 1. Cet utilisateur n'a pas besoin d'exister, de façon à ce qu'un serveur en mode mono utilisateur puisse être utilisé pour récupérer manuellement certains types de dommages accidentels pour les catalogues systèmes. Les pouvoirs implicites du super-utilisateur sont donnés à l'utilisateur d'ID 1 dans le mode mono-utilisateur.

Options

Quand postgres est lancé par un postmaster, il hérite de toutes les options initialisées par ce dernier. En plus, des options spécifiques à postgres peuvent être passées par postmaster avec l'option -o.

Vous pouvez éviter d'avoir à saisir ces options en initialisant un fichier de configuration. Voir Section 16.4 pour plus de détails. Quelques options (sûres) peuvent aussi être initialisées à partir du client se connectant d'une façon dépendante de l'application. Par exemple, si la variable d'environnement PGOPTIONS est initialisée, alors les clients basés sur libpq passent cette chaîne au serveur, qui l'interprète comme des options en ligne de commande postgres.

But général

Les options -A, -B, -c, -d, -D, -F et --name ont les mêmes significations que postmaster sauf que -d 0 empêche le niveau de traces du serveur du postmaster d'être propagé à postgres.

-e

Initialise le style de date par défaut à << European >>, c'est-à-dire que l'ordre des champs d'entrée de date est DMY et que le jour est affiché avant le mois dans certains formats de sortie des dates. Voir Section 8.5 pour plus d'informations.

-o nom_fichier

Envoie toutes les traces du serveur dans nom_fichier. Si postgres est exécuté sous postmaster, cette option est ignorée et la sortie standard des erreurs, stderr, héritée de postmaster est utilisée.

-P

Ignore les index système lors de la lecture des tables systèmes (mais met toujours à jour les index lors de la modification des tables). Ceci est utile lors de la récupération des index systèmes endommagés.

-s

Affiche l'information de l'heure et les autres statistiques à la fin de chaque commande. C'est utile pour connaître les performances ou pour configurer finement le nombre de tampons.

-S work-mem

Indique la quantité de mémoire à utiliser par les tris internes et les hachages avant le tri des fichiers temporaires du disque. Voir la description du paramètre de configuration work_mem dans Section 16.4.3.1.

Options pour le mode autonome

base_de_données

Indique le nom de la base de données à accéder. Si ce paramètre est omis, Postgres prend comme valeur par défaut le nom de l'utilisateur.

-E

Affiche toutes les commandes.

-N

Désactive l'utilisation des retours chariot comme délimiteur d'une instruction.

Options semi-internes

Il existe plusieurs autres options qui pourraient être spécifiées, utilisées principalement dans des buts de débogage. Elles sont listées ici pour être utilisées par les développeurs du système PostgreSQL. Utiliser une de ces options est hautement découragé. De plus, ces options sont susceptibles de changer ou de disparaitre sans préavis dans une version future.

-f { s | i | m | n | h }

Interdit l'utilisation de méthodes de parcours et de jointure particulières : s et i désactivent respectivement les parcours séquentiels et d'index alors que n, m et h désactivent respectivement les jointures à boucles imbriquées, les jointures par fusion et par hachage.

Note : Ni les parcours séquentiels ni les jointures de boucles imbriquées ne peuvent être complètement désactivés ; les options -fs et -fn découragent simplement l'optimiseur d'utiliser ces types de plan s'il y a d'autres alternatives.

-O

Permet la modification de la structure des tables système. Ceci est utilisé par initdb.

-p base_de_données

Indique que ce processus a été lancé par un postmaster et indique la base de données à utiliser, etc.

-t pa[rser] | pl[anner] | e[xecutor]

Affiche les statistiques de durée de chaque requête pour chacun des modules système majeurs. Cette option ne peut pas être utilisée avec l'option -s.

-v protocole

Spécifie le numéro de version du protocole client/serveur à utiliser pour cette session particulière.

-W secondes

Dès que cette option est rencontrée, le processus dort pendant le temps spécifié ici en secondes. Ceci donne aux développeurs le temps d'attacher un débogueur sur le processus serveur.

--describe-config

Cette option affiche les variables internes de configuration du serveur ainsi que les descriptions et les valeurs par défaut au format COPY délimité par des tabulations. Elle est conçue principalement pour être utilisée par des outils d'administration.

Environnement

PGDATA

Emplacement du répertoire de données par défaut.

Pour les autres, qui ont peu d'influence lors d'un mode mono utilisateur, voir postmaster.

Notes

Pour annuler une requête en cours d'exécution, envoyez le signal SIGINT au processus postgres exécutant cette commande.

Pour indiquer à postgres de recharger les fichiers de configuration, envoyez un signal SIGHUP. Normalement, il est mieux de lancer SIGHUP à postmaster ; le postmaster lance à son tour SIGHUP à chacun de ces enfants. Mais dans certains cas, il peut être souhaitable de ne recharger les fichiers de configuration que pour un seul processus postgres.

Le postmaster utilise SIGTERM pour indiquer qu'un processus postgres quitte normalement et SIGQUIT pour terminer sans le nettoyage normal. Ces signaux ne doivent pas être utilisés par les utilisateurs. Il est aussi déconseillé d'envoyer SIGKILL à un processus postgres — le postmaster interprète ceci comme un arrêt brutal dans postgres et force tous les processus postgres à quitter, ce qui fait partie de sa procédure standard de récupération de panne.

Usage

Lancer un serveur en mode autonome avec une commande comme

postgres -D /usr/local/pgsql/data other-options my_database

permet de fournir le chemin correct du répertoire de la base de données avec -D. On peut aussi s'assurer que la variable d'environnement PGDATA est configurée. Cette commande indique aussi le nom de la base de données avec laquelle vous souhaitez travailler.

Normalement, le serveur en mode mono utilisateur traite les retours chariot comme le terminateur d'entrée de commande ; il n'y a pas de compréhension des points virgules comme c'est le cas dans psql. Pour continuer une commande sur plusieurs lignes, vous devez tapez un antislash avant chaque nouvelle ligne sauf la dernière.

Mais si vous utilisez l'option -N en ligne de commande, alors un retour chariot ne termine pas l'entrée de la commande. Dans ce cas, le serveur lit l'entrée standard jusqu'au marqueur de fin de fichier (EOF), puis il traite l'entrée comme une seule chaîne de commande. Les retours chariots avec antislash ne sont pas traités de façon spéciale dans ce cas.

Pour quitter la session, tapez EOF (habituellement, Control+D). Si vous avez utilisé -N, deux EOF consécutifs sont nécessaires pour quitter.

Notez que le serveur en mode autonome ne fournit pas de fonctions avancées d'édition de ligne (pas d'historique de commandes, par exemple).

Voir aussi

initdb, ipcclean, postmaster