ホームページ データベース 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

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

wps がこのオブジェクトのソース アプリケーションを開始できない場合はどうすればよいですか? wps がこのオブジェクトのソース アプリケーションを開始できない場合はどうすればよいですか? Mar 13, 2024 pm 09:13 PM

WPS は、ドキュメント、フォーム、PPT など、非常に広く使用されているオフィス ソフトウェアであり、複数端末の同期をサポートしています。 wps編集時に「このオブジェクトのソースアプリケーションを起動できません」というプロンプトが表示された場合、どうすれば解決できますか?この問題は、リンクまたはファイルを開こうとしているが、そのソース アプリケーションが存在しないか削除されているために発生することがあります。解決策は次のとおりです。 1. WPS ソフトウェアを再インストールします。WPSOffice を再インストールして問題を解決し、最新バージョンを使用していることを確認してください。 2. デフォルトのプログラムを手動で変更する: デフォルトのプログラムを WPS に変更してみてください。開きたいファイルを右クリックし、[プログラムから開く] を選択してください。

Huawei 携帯電話にデュアル WeChat ログインを実装するにはどうすればよいですか? Huawei 携帯電話にデュアル WeChat ログインを実装するにはどうすればよいですか? Mar 24, 2024 am 11:27 AM

Huawei 携帯電話にデュアル WeChat ログインを実装するにはどうすればよいですか?ソーシャルメディアの台頭により、WeChatは人々の日常生活に欠かせないコミュニケーションツールの1つになりました。ただし、多くの人は、同じ携帯電話で同時に複数の WeChat アカウントにログインするという問題に遭遇する可能性があります。 Huawei 社の携帯電話ユーザーにとって、WeChat の二重ログインを実現することは難しくありませんが、この記事では Huawei 社の携帯電話で WeChat の二重ログインを実現する方法を紹介します。まず第一に、ファーウェイの携帯電話に付属するEMUIシステムは、デュアルアプリケーションを開くという非常に便利な機能を提供します。アプリケーションのデュアルオープン機能により、ユーザーは同時に

壁紙エンジンを始めるときにどれを選ぶべきですか? 壁紙エンジンを始めるときにどれを選ぶべきですか? Mar 19, 2024 am 08:49 AM

壁紙エンジンが起動するとき、4 つの異なるオプションがあります。多くのユーザーは、壁紙エンジンを起動するときにどれを選択すればよいかわかりません。通常、壁紙エンジンが起動するときは、最初の 32 ビットを選択します。壁紙エンジンを開始するときにどれを選択しますか? 回答: 32 ビットを開始します。 1. 通常、壁紙エンジンが起動するときは、最初の「32 ビットの開始」を選択します。 2. 壁紙エンジンが開始されるとき、4 つの異なるオプションがあります: 32 ビットで開始、64 ビットで開始。 3. 32 ビットを開始: これは一般的に推奨されるオプションであり、ほとんどのユーザーに適しています。 4. 64 ビットの開始: システムが 64 ビットをサポートしている場合は、このオプションを選択できます。

Appleデュアルシステムの起動優先順位を設定する方法 Appleデュアルシステムの起動優先順位を設定する方法 Feb 19, 2024 pm 06:49 PM

テクノロジーが発展し続けるにつれて、さまざまなオペレーティング システムを使用する必要性がますます一般的になってきています。 Apple ユーザーの場合、macOS と Windows などの 2 つの異なるオペレーティング システムを 1 つのデバイスにインストールして使用する必要がある場合があります。この場合、特に二重化システムの起動シーケンスの設定が重要です。この記事では、Apple デバイスの電源を入れたときに最初にデュアル システムが起動するように設定する方法を紹介します。まず、両方のオペレーティング システムが Apple デバイスに正常にインストールされていることを確認する必要があります。この Apple では BootCamp を使用できます

Huawei携帯電話にWeChatクローン機能を実装する方法 Huawei携帯電話にWeChatクローン機能を実装する方法 Mar 24, 2024 pm 06:03 PM

Huawei 携帯電話に WeChat クローン機能を実装する方法 ソーシャル ソフトウェアの人気と人々のプライバシーとセキュリティの重視に伴い、WeChat クローン機能は徐々に人々の注目を集めるようになりました。 WeChat クローン機能を使用すると、ユーザーは同じ携帯電話で複数の WeChat アカウントに同時にログインできるため、管理と使用が容易になります。 Huawei携帯電話にWeChatクローン機能を実装するのは難しくなく、次の手順に従うだけです。ステップ 1: 携帯電話システムのバージョンと WeChat のバージョンが要件を満たしていることを確認する まず、Huawei 携帯電話システムのバージョンと WeChat アプリが最新バージョンに更新されていることを確認します。

PHP プログラミング ガイド: フィボナッチ数列を実装する方法 PHP プログラミング ガイド: フィボナッチ数列を実装する方法 Mar 20, 2024 pm 04:54 PM

プログラミング言語 PHP は、さまざまなプログラミング ロジックやアルゴリズムをサポートできる、Web 開発用の強力なツールです。その中でも、フィボナッチ数列の実装は、一般的で古典的なプログラミングの問題です。この記事では、PHP プログラミング言語を使用してフィボナッチ数列を実装する方法を、具体的なコード例を添付して紹介します。フィボナッチ数列は、次のように定義される数学的数列です。数列の最初と 2 番目の要素は 1 で、3 番目の要素以降、各要素の値は前の 2 つの要素の合計に等しくなります。シーケンスの最初のいくつかの要素

Golang がゲーム開発の可能性を可能にする方法をマスターする Golang がゲーム開発の可能性を可能にする方法をマスターする Mar 16, 2024 pm 12:57 PM

今日のソフトウェア開発分野では、効率的で簡潔かつ同時実行性の高いプログラミング言語として、Golang (Go 言語) が開発者にますます好まれています。豊富な標準ライブラリと効率的な同時実行機能により、ゲーム開発の分野で注目を集めています。この記事では、ゲーム開発に Golang を使用する方法を検討し、具体的なコード例を通じてその強力な可能性を示します。 1. ゲーム開発における Golang の利点 Golang は静的型付け言語として、大規模なゲーム システムの構築に使用されます。

PHP ゲーム要件実装ガイド PHP ゲーム要件実装ガイド Mar 11, 2024 am 08:45 AM

PHP ゲーム要件実装ガイド インターネットの普及と発展に伴い、Web ゲーム市場の人気はますます高まっています。多くの開発者は、PHP 言語を使用して独自の Web ゲームを開発することを望んでおり、ゲーム要件の実装は重要なステップです。この記事では、PHP 言語を使用して一般的なゲーム要件を実装する方法を紹介し、具体的なコード例を示します。 1. ゲームキャラクターの作成 Web ゲームにおいて、ゲームキャラクターは非常に重要な要素です。ゲームキャラクターの名前、レベル、経験値などの属性を定義し、これらを操作するメソッドを提供する必要があります。

See all articles