Documentation PostgreSQL 7.4.29 | ||||
---|---|---|---|---|
Précédent | Arrière rapide | Avance rapide | Suivant |
postmaster [-A 0 | 1 ] [-B nombre_de_tampons] [-c nom=valeur] [-d niveau_de_débogage] [-D répertoire_données] [-F] [-h nom_hôte] [-i] [-k répertoire] [-l] [-N nombre_max_connexions] [-o options_supplémentaires] [-p port] [-S] [--nom=valeur] [-n | -s]
postmaster est le serveur de bases de données multi-utilisateurs PostgreSQL. Pour qu'une application cliente accède à une base de données, il se connecte (via le réseau ou localement) à un postmaster en cours d'exécution. Ensuite, le postmaster lance un processus serveur séparé (<< postgres >>) pour gérer la connexion. Le postmaster gère aussi la communication parmi les processus du serveur.
Par défaut, le postmaster lance dans l'entrée et affiche les messages des traces dans le flux standard des erreurs. Dans les applications pratiques, le postmaster devrait être lancé comme processus d'arrière-plan, peut-être au démarrage.
Un postmaster gère toujours les données à partir d'exactement un groupe de bases de données. Ce groupe est une collection de bases de données qui est stockée sur un emplacement commun du système de fichiers. Quand le postmaster se lance, il a besoin de connaître l'emplacement des fichiers du groupe de données (<< data area >>). Ceci se fait avec l'option -D ou la variable d'environnement ; il n'y a pas de valeur par défaut. Plus d'un processus postmaster peut se lancer sur un système à la fois, s'ils utilisent des aires de données et des ports différents (voir ci-dessous). Une aire de données est créée avec initdb.
postmaster accepte les arguments suivants en ligne de commande. Pour une discussion détaillée des options, consultez Section 16.4. Vous pouvez aussi sauvegarder une saisie de la plupart des options en initialisant un fichier de configuration.
Active les vérifications d'assertion en exécution, qui est une aide de débogage pour détecter les erreurs de programmation. Ceci est seulement disponible s'il était activé lors de la compilation. Dans ce cas, la valeur par défaut est << on >>.
Initialise le nombre des tampons partagés utilisés par les processus serveur. La valeur par défaut est de 64 tampons de 8 Ko chacun.
Configure un paramètre nommé en exécution. Consultez Section 16.4 pour une liste et des descriptions. La plupart des autres options en ligne de commande sont en fait des formes courtes de ces affectations de paramètres. -c peut apparaître plusieurs fois pour initialiser plusieurs paramètres.
Initialise le niveau de débogage. Plus cette valeur est haute, plus la sortie de débogage est importante. Les valeurs vont de 1 to 5.
Spécifie l'emplacement du système de fichiers du répertoire de données. Voir la discussion ci-dessus.
Désactive les appels à fsync
pour les améliorations
de performance au risque d'une corruption de données dans le cas d'un
arrêt brutal du système. Cette option correspond à initialiser
fsync=false dans postgresql.conf. Lire la
documentation détaillée avant d'utiliser ceci !
--fsync=true a l'effet contraire de cette option.
Spécifie le nom d'hôte ou l'adresse IP sur lequel le postmaster est en écoute pour les connexions provenant des applications clientes. Par défaut, le serveur écoute sur toutes les adresses configurées (incluant localhost).
Autorise la connexion TCP/IP (Internet domain) des clients. Sans cette option, seules les connexions de socket local du domaine Unix sont acceptées. Cette option correspond pour initialiser tcpip_socket=true dans postgresql.conf.
--tcpip-socket=false a l'effet opposé de cette option.
Spécifie le répertoire du socket de domaine Unix sur lequel le postmaster écoute les connexions des applications clientes. La valeur par défaut est normalement /tmp mais peut être modifié au moment de la construction.
Active les connexions sécurisées utilisant SSL. L'option -i est aussi requise. Vous devez avoir compilé le support de SSL pour utiliser cette option.
Initialise le nombre maximum de connexions clientes que ce postmaster acceptera. Par défaut, cette valeur est 32 mais il peut être initialisé aussi haut que ce que votre système supportera. (Notez que -B est requis pour être au moins deux fois la valeur de -N. Voir Section 16.5 pour une discussion des besoins de ressources système pour un grand nombre de connexions clientes.)
Les options spécifiées en ligne de commande dans options_supplémentaires sont passées à tous les processus serveur lancés par ce postmaster. Voir postgres pour les possibilités. Si la chaîne d'option contient des espaces, la chaîne entière doit être entre guillemets.
Spécifie le port TCP/IP ou l'extension du fichier socket de domaine Unix local sur lequel écoute le postmaster pour les connexions des applications clientes. A pour défaut la valeur de la variable d'environnement PGPORT ou, si PGPORT n'est pas configurée, alors il a pour valeur par défaut la valeur établie lors de la compilation (normalement 5432). Si vous spécifiez un port autre que celui par défaut, alors toutes les applications clientes doivent spécifier le même port en utilisant soit les options en ligne de commande soit PGPORT.
Spécifie que le processus postmaster devrait se lancer en mode silencieux. C'est-à-dire qu'il sera dissocié du terminal (de contrôle) de l'utilisateur, lancé dans son propre groupe de processus et redirige sa propre sortie standard et sa propre sortie standard des erreurs vers /dev/NULL.
Utiliser cette option désactive tous les messages de traces, ce qui n'est probablement pas ce que vous souhaitez car cela rend le débogage très difficile. Voir ci-dessous pour un meilleur moyen de lancer postmaster en tâche de fond.
--silent-mode=false a l'effet opposé de cette option.
Initialise un paramètre nommé en exécution ; une forme courte de -c.
Deux options supplémentaires en ligne de commande sont disponibles pour les problèmes de débogage causant l'arrêt anormal d'un processus de serveur. La stratégie ordinaire dans cette situation est de notifier tous les autres processus serveur qu'ils doivent se terminer et réinitialiser ensuite la mémoire partagée et les sémaphores. Ceci est dû au fait qu'un processus serveur errant peut avoir corrompu quelques états partagés avant de se terminer. Ces options sélectionnent des comportements alternatifs de postmaster dans cette situation. Aucune de ces options a pour but d'utiliser une opération ordinaire.
Ces options de cas spéciaux sont :
postmaster réinitialisera les structures de données partagées. Un développeur de système de connaissances peut alors utiliser un débogueur pour examiner l'état des mémoires partagées et des sémaphores.
postmaster stoppera tous les autres processus serveur en envoyant le signal SIGSTOP mais ne les empêchera pas de terminer. Ceci permet aux développeurs système de récupérer les << core dump >> à partir de tous les processus serveur manuellement.
Codage des caractères par défaut utilisé par les clients. (Les clients pourraient surcharger ceci individuellement.) Cette valeur peut aussi être dans le fichier de configuration.
Emplacement par défaut du répertoire de direction
Valeur par défaut du paramètre DATESTYLE en exécution (L'utilisation de cette variable d'environnement est obsolète.)
Port par défaut (de préférence, initialisé dans le fichier de configuration)
Fuseau horaire du serveur
Les autres variables d'environnement pourraient être utilisées pour désigner les autres emplacements du répertoire de stockage. Voir Section 18.5 pour plus d'informations.
Un message d'échec mentionnant semget ou shmget indique probablement que vous avez besoin de configurer votre noyau pour fournir les mémoires partagées et sémaphores adéquats. Pour plus de discussion, voir Section 16.5.
Astuce : Vous devriez être capable de reconfigurer votre noyau en décrémentant shared_buffers pour réduire la consommation de mémoire partagée de PostgreSQL et/ou en réduisant max_connections pour réduire la consommation de sémaphores.
Un message d'échec suggérant qu'un autre postmaster est en cours d'exécution devrait être vérifié avec attention, par exemple en utilisant la commande
$ ps ax | grep postmaster
ou
$ ps -ef | grep postmaster
suivant votre système. Si vous êtes certain qu'aucun postmaster en conflit n'est en cours d'exécution, vous pourriez supprimer le fichier verrou mentionné dans le message et tenter de nouveau.
Un message d'échec indiquant l'incapacité à lier un port pourrait indiquer que ce port est déjà utilisé par un processus autre que le serveur PostgreSQL. Vous pourriez obtenir cette erreur si vous terminez le postmaster et si vous le relanciez immédiatement en utilisant le même port ; dans ce cas, vous devez simplement attendre quelques secondes jusqu'à ce que le système d'exploitation ferme le port avant de réessayer. Finalement, vous pourriez obtenir cette erreur si vous spécifiez un numéro de port que votre système d'exploitation considère comme réservé. Par exemple, un grand nombre de versions d'Unix considère les numéros de port sous le numéro 1024 pour être en << confiance >> et permet seulement l'accès par le superutilisateur Unix.
Si c'est possible, ne pas utiliser SIGKILL pour tuer le processus postmaster. Le faire ainsi empêchera postmaster de libérer les ressources du système (c'est-à-dire les mémoires partagées et les sémaphores) qu'il détient avant de terminer. Ceci pourrait causer des problèmes de lancement d'un processus postmaster réel.
Pour terminer normalement postmaster, les signaux SIGTERM, SIGINT ou SIGQUIT peuvent être utilisés. Le premier attendra l'arrêt de tous les clients avant de quitter, le second déconnectera en force tous les clients et le troisième quittera immédiatement sans arrêt propre résultant dans le lancement d'une récupération lors du redémarrage. Le signal SIGHUP rechargera les fichiers de configuration du serveur.
La commande outil pg_ctl peut être utilisée pour démarrer et arrêter le postmaster en toute sûreté et confortablement.
Les options -- ne fonctionneront pas sur FreeBSD ou OpenBSD. Utilisez -c à la place. Ceci est un bogue dans les systèmes d'exploitation affectés ; une prochaine version de PostgreSQL fournira un contournement si ceci n'est pas corrigé.
Pour lancer postmaster en tâche de fond en utilisant les valeurs par défaut, saisissez :
$ nohup postmaster >logfile 2>&1 </dev/NULL &
Pour lancer postmaster sur un port spécifique :
$ postmaster -p 1234
Cette commande lancera un postmaster communiquant via le port 1234. Pour se connecter à ce postmaster en utilisant psql, vous aurez besoin de lancer par exemple
$ psql -p 1234
ou d'initialiser la variable d'environnement PGPORT :
$ export PGPORT=1234 $ psql
Les paramètres nommés en exécution peuvent être configurés avec un des styles suivants :
$ postmaster -c sort_mem=1234 $ postmaster --sort-mem=1234
Chaque forme surcharge le paramétrage pouvant exister pour SORT_MEM dans postgresql.conf. Notez que les tirets bas dans les noms de paramètre peuvent être écrits soit avec un tiret bas soit avec un tiret sur la ligne de commande.
Astuce : Sauf dans le cas d'expérimentations à court terme, une meilleure pratique est d'éditer le paramétrage dans postgresql.conf plutôt que de se fier à l'option en ligne de commande plutôt qu'à un paramètre.
Précédent | Sommaire | Suivant |
postgres | Niveau supérieur | Internes |