Documentation PostgreSQL 7.4.29 | ||||
---|---|---|---|---|
Précédent | Arrière rapide | Avance rapide | Suivant |
pg_ctl start [-w] [-s] [-D répertoire_données] [-l nomfichier] [-o options] [-p chemin]
pg_ctl stop [-W] [-s] [-D répertoire_données] [-m
s[mart] | f[ast] | i[mmediate]
]
pg_ctl restart [-w] [-s] [-D répertoire_données] [-m
s[mart] | f[ast] | i[mmediate]
] [-o options]
pg_ctl reload [-s] [-D répertoire_données]
pg_ctl status [-D répertoire_données]
pg_ctl est un outil de lancement, d'arrêt et de redémarrage du serveur PostgreSQL (postmaster). Il permet aussi d'afficher le statut d'un serveur en cours d'exécution. Bien que le serveur doive être lancé manuellement, pg_ctl encapsule les tâches comme la redirection des traces ou le détachement du groupe terminal et processus. Il fournit aussi des options intéressantes pour un arrêt contrôlé.
Dans le mode start, un nouveau serveur est lancé. Le serveur est lancé en tâche de fond et l'entrée standard est attachée à /dev/NULL. La sortie standard et la sortie d'erreurs standard sont soit envoyées dans un journal de traces (si l'option -l est utilisée) soit redirigées dans la sortie standard de pg_ctl (et non pas la sortie d'erreurs standard). Si aucun journal de traces n'est donné, la sortie standard de pg_ctl devrait être redirigée dans un fichier ou envoyée via un tube à un autre processus, par exemple un programme de rotation de journaux de trace, sinon postmaster écrira sa sortie dans le terminal de contrôle (à partir de l'arrière-plan) et ne laissera pas le groupe de processus du shell.
Dans le mode stop, le serveur en cours d'exécution dans le répertoire spécifié est arrêté. Trois méthodes différentes d'arrêt peuvent être choisies avec l'option -m : le mode << Smart >> attend la déconnexion de tous les clients. C'est la valeur par défaut. Le mode << Fast >> n'attend pas la déconnexion des clients. Toutes les transactions actives sont annulées et les clients sont forcés à se déconnecter. Le serveur est ensuite arrêté. Le mode << Immediate >> annulera tous les processus serveur sans un arrêt propre. Ceci amènera une tentative de récupération au prochain lancement.
Le mode restart exécute en fait un arrêt suivi d'un lancement. Ceci permet de modifier les options en ligne de commande de postmaster.
Le mode reload envoie simplement au processus postmaster un signal SIGHUP le faisant relire ses fichiers de configuration (postgresql.conf, pg_hba.conf, etc.). Ceci permet de modifier les options du fichier de configuration sans réclamer un redémarrage complet pour que les modifications soient prises en compte.
Le mode status vérifie si un serveur est toujours en cours d'exécution sur le répertoire de données spécifié. Si c'est le cas, le PID et les options en ligne de commande utilisées lors de son lancement sont affichés.
Spécifie l'emplacement des fichiers de la base de données sur le système de fichiers. Si c'est omis, la variable d'environnement PGDATA est utilisée.
Ajoute la sortie des traces du serveur dans nomfichier. Si le fichier n'existe pas, il est créé. L'umask est configuré à 077, donc l'accès au journal des traces à partir des autres utilisateurs est désactivé par défaut.
Spécifie le mode d'arrêt. mode fait partie de smart, fast ou immediate, ou encore la première lettre d'un de ces trois-là.
Spécifie les options à passer directement à la commande postmaster.
Les options sont habituellement entourées par des guillemets simples ou doubles pour s'assurer qu'elles sont passées comme un groupe.
Spécifie l'emplacement de l'exécutable postmaster. Par défaut, l'exécutable postmaster est pris à partir du même répertoire que pg_ctl ou, si cela échoue, le répertoire d'installation codé en dur. Il n'est pas nécessaire d'utiliser cette option sauf si vous faites quelque chose d'inhabituel et obtenez des erreurs comme quoi l'exécutable postmaster serait introuvable.
Affiche seulement les erreurs, pas les messages d'information.
Attend la fin du lancement ou de l'arrêt. S'interrompt au bout de 60 secondes. Ceci est la valeur par défaut pour les arrêts. Un arrêt avec succès est indiqué par la suppression du fichier PID. Pour le lancement, un psql -l se terminant avec succès indique que tout va bien. pg_ctl tentera d'utiliser le bon port pour psql. Si la variable d'environnement PGPORT existe, elle est utilisée. Sinon, il verra si un port a été configuré dans le fichier postgresql.conf. Si aucun des deux n'est utilisé, il utilisera le port par défaut avec lequel PostgreSQL a été compilé (5432 par défaut).
Ne pas attendre le lancement ou l'arrêt pour se terminer. Ceci est la valeur par défaut pour les lancements et redémarrages.
Emplacement du répertoire des données par défaut.
Port par défaut pour psql (utilisé par l'option -w).
Pour les autres, voir postmaster.
Ce fichier dans le répertoire des données est utilisé pour aider pg_ctl à déterminer si le serveur est actuellement en cours d'exécution.
Si ce fichier existe dans le répertoire des données, pg_ctl (dans le mode start) passera le contenu du fichier comme options de la commande postmaster, sauf en cas de surcharge par l'option -o.
Si ce fichier existe dans le répertoire des données, pg_ctl (en mode restart) passera le contenu du fichier comme options de postmaster, sauf en cas de surcharge par l'option -o. Le contenu de ce fichier est aussi affiché dans le mode status.
Ce fichier, situé dans le répertoire des données, est analysé pour trouver le bon port à utiliser avec psql lorsque -w est donné en mode start.
Attendre le lancement complet n'est pas une opération bien définie et pourrait échouer si le contrôle d'accès est configuré pour qu'un client local ne puisse pas se connecter sans interaction manuelle (par exemple, une authentification par mot de passe).
Pour lancer un serveur :
$ pg_ctl start
Un exemple de lancement de serveur, bloquant tant que le serveur n'est pas complètement lancé :
$ pg_ctl -w start
Pour un serveur utilisant le port 5433 et s'exécutant sans
fsync
, utilisez :
$ pg_ctl -o "-F -p 5433" start
$ pg_ctl stop
arrête le serveur. Utiliser l'option -m vous permet de contrôler comment le serveur s'arrête.
Relancer le serveur est pratiquement équivalent à l'arrêter puis à le relancer de nouveau sauf que pg_ctl sauvegarde et réutilise les options en ligne de commande qui ont été passées lors de la précédente instance. Pour relancer le serveur de la façon la plus simple, utilisez :
$ pg_ctl restart
Pour relancer le serveur, en attendant qu'il s'arrête puis qu'il se relance :
$ pg_ctl -w restart
Pour relancer en utilisant le port 5433 et en désactivant
fsync
après redémarrage :
$ pg_ctl -o "-F -p 5433" restart
Voici un exemple de statut affiché à partir de pg_ctl :
$ pg_ctl status pg_ctl: postmaster is running (pid: 13718) Command line was: /usr/local/pgsql/bin/postmaster '-D' '/usr/local/pgsql/data' '-p' '5433' '-B' '128'
Ceci est la ligne de commande qui pourrait être appelée en mode de redémarrage.
Précédent | Sommaire | Suivant |
pg_controldata | Niveau supérieur | pg_resetxlog |