postgres

Nom

postgres -- lance un serveur PostgreSQL dans un mode simple 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 sort-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 sort-mem] [-v protocole] [-W secondes] [--nom=valeur]

Description

L'exécutable postgres est le processus serveur réel PostgreSQL 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 simple utilisateur. La principale utilisation pour ce mode est le morceau du démarrage par initdb. Quelque fois, il est utilisé pour le débogage ou la récupération du disastre.

Lorsqu'il est appelé en mode interactif à partir du shell, l'utilisateur peut entrer les requêtes et les résultats seront 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'aura lieu.

Lors de l'utilisation d'un serveur en mono utilisateur, l'utilisateur de la session sera 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 à partir de 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, alors il hérite de toutes les options initialisées par ce dernier. En plus, les options spécifiques par postgres peuvent être passées de 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 passeront cette chaîne au serveur, qui l'interprèteront 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 l'ordre DMY des champs de date d'entrée. Ceci fait aussi 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 faire une utilisation d'une configuration fine du nombre de tampons.

-S sort-mem

Spécifie les tailles mémoire à utiliser par les tris internes et les hachages avant le tri des fichiers temporaires du disque. La valeur est spécifiée en Ko et vaut par défaut 1024. Notez que, pour une requête complexe, plusieurs tris et/ou hachages pourraient être lancés en parallèle et chacune sera autorisée à utiliser au plus sort-mem Ko avant qu'il commence à placer des données dans des fichiers temporaires.

Options pour le mode autonome

base_de_données

Spécifie le nom de la base de données à accéder. S'il est omis, il 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, une de ces options pourrait disparaître ou changer dans une version future sans prévenir.

-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 d'assemblage et de découpage.

Note : Ni les parcours séquentiels ni les jointures de boucles imbriquées 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 n'y a pas 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 spécifie la base de données à utiliser, etc.

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

Affiche les statistiques temporelles pour chaque requête en relation avec 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 sauvegarde les variables internes de configuration du serveur ainsi que les descriptions et a comme valeur par défaut le 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 lancera à son tour SIGHUP à chacun de ces enfants. Mais dans certains cas, il pourrait être désirable d'avoir seulement un processus postgres pour recharger les fichiers de configuration.

Le postmaster utilise SIGTERM pour indiquer qu'un processus postgres quitte normalement et qu'un SIGQUIT termine sans le nettoyage normal. Ces signaux ne devraient pas être utilisés par les utilisateurs. Il est aussi déconseillé d'envoyer SIGKILL à un processus postgres --- le postmaster interprètera ceci comme un arrêt brutal dans postgres et forcera tous les processus postgres à quitter en faisant part de sa procédure standard de récupération de panne.

Usage

Lance un serveur en mode autonome avec une commande

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

Fournit le chemin correct au répertoire de la base de données avec -D ou en s'assurant que la variable d'environnement PGDATA est configurée. Spécifiez aussi le nom de la base de données particulière 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 lira l'entrée standard jusqu'au marqueur de fin de fichier (EOF), alors 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