Maison base de données tutoriel mysql 循序渐进PostgreSQL:实现PostgreSQL自启动

循序渐进PostgreSQL:实现PostgreSQL自启动

Jun 07, 2016 pm 02:53 PM
pos postgresql 启动 实现

循序渐进PostgreSQL:实现PostgreSQL自启动 在手动安装(针对源码编译PG或者是解压缩版安装PG的情形)情况下,PG并不是在开机的情况下自动启动,在关机的情况下自动停止,作为DBA人员来说,显然这样的情形是无法接受的。 www.2cto.com 1. windows下的服务自启

循序渐进PostgreSQL:实现PostgreSQL自启动

 

在手动安装(针对源码编译PG或者是解压缩版安装PG的情形)情况下,PG并不是在开机的情况下自动启动,在关机的情况下自动停止,作为DBA人员来说,显然这样的情形是无法接受的。

  www.2cto.com  

1. windows下的服务自启动

 

在Windows下, 可以使用pg_ctl命令生成PostgreSQL服务,并让它自启动。实际上,安装版本也是这么做的。  我们不妨看看pg_ctl命令的详细帮助先:

D:\pg921>pg_ctl --help  

pg_ctl is a utility to initialize, start, stop, or control a PostgreSQL server.  

  

Usage:  

  pg_ctl init[db]               [-D DATADIR] [-s] [-o "OPTIONS"]  

  pg_ctl start   [-w] [-t SECS] [-D DATADIR] [-s] [-l FILENAME] [-o "OPTIONS"]  

  pg_ctl stop    [-W] [-t SECS] [-D DATADIR] [-s] [-m SHUTDOWN-MODE]  

  pg_ctl restart [-w] [-t SECS] [-D DATADIR] [-s] [-m SHUTDOWN-MODE]  

                 [-o "OPTIONS"]  

  pg_ctl reload  [-D DATADIR] [-s]  

  pg_ctl status  [-D DATADIR]  

  pg_ctl promote [-D DATADIR] [-s]  

  pg_ctl kill    SIGNALNAME PID  

 pg_ctl register   [-N SERVICENAME] [-U USERNAME] [-P PASSWORD] [-D DATADIR]  

                    [-S START-TYPE] [-w] [-t SECS] [-o "OPTIONS"]  

  pg_ctl unregister [-N SERVICENAME]  

  

Common options:  

  -D, --pgdata=DATADIR   location of the database storage area  

  -s, --silent           only print errors, no informational messages  

  -t, --timeout=SECS     seconds to wait when using -w option  

  -V, --version          output version information, then exit  

  -w                     wait until operation completes  

  -W                     do not wait until operation completes  

  -?, --help             show this help, then exit  

(The default is to wait for shutdown, but not for start or restart.)  

  

If the -D option is omitted, the environment variable PGDATA is used.  

  

Options for start or restart:  

  -c, --core-files       not applicable on this platform  

  -l, --log=FILENAME     write (or append) server log to FILENAME  

  -o OPTIONS             command line options to pass to postgres  

                         (PostgreSQL server executable) or initdb  

  -p PATH-TO-POSTGRES    normally not necessary  

  

Options for stop or restart:  

  -m, --mode=MODE        MODE can be "smart", "fast", or "immediate"  

  

Shutdown modes are:  

  smart       quit after all clients have disconnected  

  fast        quit directly, with proper shutdown  

  immediate   quit without complete shutdown; will lead to recovery on restart  

  

Allowed signal names for kill:  

  ABRT HUP INT QUIT TERM USR1 USR2  

  

Options for register and unregister:  

  -N SERVICENAME  service name with which to register PostgreSQL server  

  -P PASSWORD     password of account to register PostgreSQL server  

  -U USERNAME     user name of account to register PostgreSQL server  

  -S START-TYPE   service start type to register PostgreSQL server  

  

Start types are:  

  auto       start service automatically during system startup (default)  

  demand     start service on demand  

  

Report bugs to .  

从上边可以看出,pg_ctl register用于生成服务,而pg_ctl unregister -N 用于删除一个服务。

如:

D:\pg921>pg_ctl register -N pg921 -D d:\pg921\data -S auto -w -t 10  -l d:/pg921/log/pg921.log -o "-p 5433"

此命令,即是要生成一个服务:pg921, 启动方式: -S auto, 自启动,如果想生成手动启动,就用-S demand来指定。

-t 10,意指等待10秒钟, 实际上可以设定的长一些(在生产环境中). 

-l d:/pg921/log/pg921.log, 指定生成的日志文件的位置。

-o "-p 5433", 将服务端口号改为5433。

验证一下上述命令生成的效果:

D:\pg921>net start pg921  

The pg921 service is starting.  

The pg921 service was started successfully.  

  

  

D:\pg921>psql -p 5433 iihero  

psql (9.2.1)  

Type "help" for help.  

  

iihero=# \q  

 

2. Linux下的服务自启动

 

在Linux下,我们需要写一个自启动的脚本,至少支持两个命令选项: start 和 stop,并将这个脚本建立适当的链接。我们就以Ubuntu10为例,

先看看系统有没有chkconfig命令工具:  www.2cto.com  

xionghe@seanlinux2:~$ chkconfig

程序“chkconfig”尚未安装。  您可以使用以下命令安装:

sudo apt-get install chkconfig

xionghe@seanlinux2:~$ sudo apt-get install chkconfig

脚本内容如下: 放入目录/etc/init.d目录下边

#! /bin/sh  

  

# Installation prefix  

prefix=/home/xionghe/pgsql  

  

# Data directory  

PGDATA="/home/xionghe/pgsql/data"  

  

# Who to run the postmaster as, usually "postgres".  (NOT "root")  

PGUSER=xionghe  

  

# Where to keep a log file  

PGLOG="$PGDATA/serverlog"  

  

# It's often a good idea to protect the postmaster from being killed by the  

# OOM killer (which will tend to preferentially kill the postmaster because  

# of the way it accounts for shared memory).  Setting the OOM_ADJ value to  

# -17 will disable OOM kill altogether.  If you enable this, you probably want  

# to compile PostgreSQL with "-DLINUX_OOM_ADJ=0", so that individual backends  

# can still be killed by the OOM killer.  

#OOM_ADJ=-17  

  

## STOP EDITING HERE  

  

# The path that is to be used for the script  

PATH=/home/xionghe/pgsql/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin  

  

# What to use to start up the postmaster.  (If you want the script to wait  

# until the server has started, you could use "pg_ctl start -w" here.  

# But without -w, pg_ctl adds no value.)  

DAEMON="$prefix/bin/postmaster"  

  

# What to use to shut down the postmaster  

PGCTL="$prefix/bin/pg_ctl"  

  

set -e  

  

# Only start if we can find the postmaster.  

test -x $DAEMON ||  

{  

    echo "$DAEMON not found"  

    if [ "$1" = "stop" ]  

    then exit 0  

    else exit 5  

    fi  

}  

  

  

# Parse command line parameters.  

case $1 in  

  start)  

    echo -n "Starting PostgreSQL: "  

    test x"$OOM_ADJ" != x && echo "$OOM_ADJ" > /proc/self/oom_adj  

    su - $PGUSER -c "$DAEMON -D '$PGDATA' &" >>$PGLOG 2>&1  

    echo "ok"  

    ;;  

  stop)  

    echo -n "Stopping PostgreSQL: "  

    su - $PGUSER -c "$PGCTL stop -D '$PGDATA' -s -m fast"  

    echo "ok"  

    ;;  

  restart)  

    echo -n "Restarting PostgreSQL: "  

    su - $PGUSER -c "$PGCTL stop -D '$PGDATA' -s -m fast -w"  

    test x"$OOM_ADJ" != x && echo "$OOM_ADJ" > /proc/self/oom_adj  

    su - $PGUSER -c "$DAEMON -D '$PGDATA' &" >>$PGLOG 2>&1  

    echo "ok"  

    ;;  

  reload)  

        echo -n "Reload PostgreSQL: "  

        su - $PGUSER -c "$PGCTL reload -D '$PGDATA' -s"  

        echo "ok"  

        ;;  

  status)  

    su - $PGUSER -c "$PGCTL status -D '$PGDATA'"  

    ;;  

  *)  

    # Print help  

    echo "Usage: $0 {start|stop|restart|reload|status}" 1>&2  

    exit 1  

    ;;  

esac  

  

exit 0  

 

建立相应链接:

 

root@seanlinux2:/etc# ln -s /etc/init.d/postgresql /etc/rc0.d/K02postgresql

root@seanlinux2:/etc# ln -s /etc/init.d/postgresql /etc/rc1.d/K02postgresql

root@seanlinux2:/etc# ln -s /etc/init.d/postgresql /etc/rc2.d/K02postgresql

root@seanlinux2:/etc# ln -s /etc/init.d/postgresql /etc/rc3.d/K98postgresql

root@seanlinux2:/etc# ln -s /etc/init.d/postgresql /etc/rc4.d/K98postgresql

root@seanlinux2:/etc# ln -s /etc/init.d/postgresql /etc/rc5.d/K98postgresql

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. Vous avez un jeu croisé?
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Que dois-je faire si wps ne peut pas démarrer l'application source de cet objet ? Que dois-je faire si wps ne peut pas démarrer l'application source de cet objet ? Mar 13, 2024 pm 09:13 PM

WPS est un logiciel bureautique très largement utilisé, notamment pour les documents, les formulaires et les PPT, et prend en charge la synchronisation multi-terminaux. Si l'invite « L'application source de cet objet ne peut pas être lancée » apparaît lors de la modification de wps, comment le résoudre ? Ce problème peut survenir lorsque vous essayez d'ouvrir un lien ou un fichier, mais que son application source n'existe plus ou a été supprimée. Voici quelques correctifs : 1. Réinstallez le logiciel WPS : Essayez de réinstaller WPSOffice pour résoudre le problème et assurez-vous que vous utilisez la dernière version. 2. Modifiez manuellement le programme par défaut : essayez de modifier le programme par défaut en WPS. Vous pouvez cliquer avec le bouton droit sur le fichier que vous souhaitez ouvrir, sélectionner "Ouvrir avec", puis.

Comment mettre en œuvre la double connexion WeChat sur les téléphones mobiles Huawei ? Comment mettre en œuvre la double connexion WeChat sur les téléphones mobiles Huawei ? Mar 24, 2024 am 11:27 AM

Comment mettre en œuvre la double connexion WeChat sur les téléphones mobiles Huawei ? Avec l’essor des réseaux sociaux, WeChat est devenu l’un des outils de communication indispensables dans la vie quotidienne des gens. Cependant, de nombreuses personnes peuvent rencontrer un problème : se connecter à plusieurs comptes WeChat en même temps sur le même téléphone mobile. Pour les utilisateurs de téléphones mobiles Huawei, il n'est pas difficile d'obtenir une double connexion WeChat. Cet article explique comment obtenir une double connexion WeChat sur les téléphones mobiles Huawei. Tout d'abord, le système EMUI fourni avec les téléphones mobiles Huawei offre une fonction très pratique : l'ouverture d'une double application. Grâce à la fonction de double ouverture de l'application, les utilisateurs peuvent simultanément

Lequel choisir au démarrage de WallpaperEngine ? Lequel choisir au démarrage de WallpaperEngine ? Mar 19, 2024 am 08:49 AM

Lorsque WallpaperEngine démarre, il existe 4 options différentes. De nombreux utilisateurs ne savent pas laquelle choisir au démarrage de WallpaperEngine. Généralement, lorsque WallpaperEngine démarre, choisissez la première : démarrer 32 bits. Lequel choisir lors du démarrage de WallpaperEngine ? Réponse : Démarrez 32 bits. 1. Généralement, lorsque WallpaperEngine démarre, sélectionnez le premier : démarrer 32 bits. 2. Lorsque WallpaperEngine démarre, il existe 4 options différentes : démarrer en 32 bits ; démarrer en 64 bits. 3. Démarrer 32 bits : il s'agit d'une option généralement recommandée et adaptée à la plupart des utilisateurs. 4. Démarrer 64 bits : Si le système prend en charge 64 bits, vous pouvez choisir cette option

Comment définir la priorité de démarrage du double système Apple Comment définir la priorité de démarrage du double système Apple Feb 19, 2024 pm 06:49 PM

À mesure que la technologie continue de se développer, la nécessité d’utiliser différents systèmes d’exploitation devient de plus en plus courante. Pour les utilisateurs Apple, vous devrez parfois installer et utiliser deux systèmes d'exploitation différents sur un seul appareil, comme macOS et Windows. Dans ce cas, il est particulièrement important de définir la séquence de démarrage du système double. Cet article explique comment configurer les appareils Apple pour démarrer le système double en premier lors de la mise sous tension de l'appareil. Tout d’abord, nous devons nous assurer que les deux systèmes d’exploitation ont été installés avec succès sur l’appareil Apple. Vous pouvez utiliser BootCamp sur Apple

Guide de programmation PHP : méthodes pour implémenter la séquence de Fibonacci Guide de programmation PHP : méthodes pour implémenter la séquence de Fibonacci Mar 20, 2024 pm 04:54 PM

Le langage de programmation PHP est un outil puissant pour le développement Web, capable de prendre en charge une variété de logiques et d'algorithmes de programmation différents. Parmi eux, l’implémentation de la séquence de Fibonacci est un problème de programmation courant et classique. Dans cet article, nous présenterons comment utiliser le langage de programmation PHP pour implémenter la séquence de Fibonacci et joindrons des exemples de code spécifiques. La suite de Fibonacci est une suite mathématique définie comme suit : le premier et le deuxième élément de la suite valent 1, et à partir du troisième élément, la valeur de chaque élément est égale à la somme des deux éléments précédents. Les premiers éléments de la séquence

Comment implémenter la fonction de clonage WeChat sur les téléphones mobiles Huawei Comment implémenter la fonction de clonage WeChat sur les téléphones mobiles Huawei Mar 24, 2024 pm 06:03 PM

Comment mettre en œuvre la fonction de clonage WeChat sur les téléphones mobiles Huawei Avec la popularité des logiciels sociaux et l'importance croissante accordée à la confidentialité et à la sécurité, la fonction de clonage WeChat est progressivement devenue le centre d'attention. La fonction de clonage WeChat peut aider les utilisateurs à se connecter simultanément à plusieurs comptes WeChat sur le même téléphone mobile, ce qui facilite la gestion et l'utilisation. Il n'est pas difficile de mettre en œuvre la fonction de clonage WeChat sur les téléphones mobiles Huawei. Il vous suffit de suivre les étapes suivantes. Étape 1 : Assurez-vous que la version du système de téléphonie mobile et la version de WeChat répondent aux exigences. Tout d'abord, assurez-vous que la version de votre système de téléphonie mobile Huawei a été mise à jour vers la dernière version, ainsi que l'application WeChat.

Découvrez comment Golang offre des possibilités de développement de jeux Découvrez comment Golang offre des possibilités de développement de jeux Mar 16, 2024 pm 12:57 PM

Dans le domaine actuel du développement logiciel, Golang (langage Go), en tant que langage de programmation efficace, concis et hautement simultané, est de plus en plus favorisé par les développeurs. Sa riche bibliothèque de normes et ses fonctionnalités de concurrence efficaces en font un choix de premier plan dans le domaine du développement de jeux. Cet article explorera comment utiliser Golang pour le développement de jeux et démontrera ses puissantes possibilités à travers des exemples de code spécifiques. 1. Avantages de Golang dans le développement de jeux. En tant que langage typé statiquement, Golang est utilisé dans la construction de systèmes de jeux à grande échelle.

Comment mettre en œuvre une opération de division exacte dans Golang Comment mettre en œuvre une opération de division exacte dans Golang Feb 20, 2024 pm 10:51 PM

La mise en œuvre d'opérations de division exactes dans Golang est un besoin courant, en particulier dans les scénarios impliquant des calculs financiers ou d'autres scénarios nécessitant des calculs de haute précision. L'opérateur de division intégré "/" de Golang est calculé pour les nombres à virgule flottante, et il y a parfois un problème de perte de précision. Afin de résoudre ce problème, nous pouvons utiliser des bibliothèques tierces ou des fonctions personnalisées pour implémenter des opérations de division exactes. Une approche courante consiste à utiliser le type Rat du package math/big, qui fournit une représentation des fractions et peut être utilisé pour implémenter des opérations de division exactes.

See all articles