無料スクリプト配布のPHP.TO   PHPの実用的なtips PHPマニュアル MySQLマニュアル Apacheマニュアル PostgreSQLマニュアル マニュアル検索    

pg_ctl

名前

pg_ctl --  PostgreSQL サーバの初期化、起動、停止、制御

概要

pg_ctl init[db] [ -s ] [ -D datadir ] [ -o initdb-options ]

pg_ctl start [ -w ] [ -t seconds ] [ -s ] [ -D datadir ] [ -l filename ] [ -o options ] [ -p path ] [ -c ]

pg_ctl stop [ -W ] [ -t seconds ] [ -s ] [ -D datadir ] [ -m s[mart] | f[ast] | i[mmediate] ]

pg_ctl restart [ -w ] [ -t seconds ] [ -s ] [ -D datadir ] [ -c ] [ -m s[mart] | f[ast] | i[mmediate] ] [ -o options ]

pg_ctl reload [ -s ] [ -D datadir ]

pg_ctl status [ -D datadir ]

pg_ctl promote [ -s ] [ -D datadir ]

pg_ctl kill signal_name process_id

pg_ctl register [ -N servicename ] [ -U username ] [ -P password ] [ -D datadir ] [ -S a[uto] | d[emand] ] [ -w ] [ -t seconds ] [ -s ] [ -o options ]

pg_ctl unregister [ -N servicename ]

説明

pg_ctl PostgreSQL データベースクラスタの初期化、 PostgreSQL のデータベースサーバ( postgres )を起動、停止、再起動する、あるいは稼働中のサーバの状態を表示するためのユーティリティです。 サーバは手動で起動することも可能ですが、 pg_ctl は、ログ出力のリダイレクトや、ターミナルとプロセスグループの適切な分離などの作業をカプセル化してくれます。 さらにシャットダウン制御のための便利なオプションも提供します。

init または initdb モードは新しい PostgreSQL データベースクラスタを作成します。 データベースクラスタとは、単一のサーバインスタンスで管理されるデータベースの集合です。 このモードは initdb コマンドを呼び出します。 initdb を参照して下さい。

start モードでは、新しいサーバが立ち上がります。 サーバはバックグラウンドで起動され、その標準入力は /dev/null (Windowsの場合は nul )に接続されます。 Unix互換のシステムではデフォルトで、サーバの標準出力と標準エラーは pg_ctl の標準出力に転送されます。 pg_ctl の標準出力はファイルにリダイレクトするか、例えば rotatelogs などのログ回転プログラムのような別プロセスにパイプで渡すべきです。 こうしないと、 postgres はその出力を(バックグランドから)制御端末に書き出しますので、シェルのプロセスグループから切り離すことができません。 Windowsではデフォルトで、サーバの標準出力と標準エラーは端末に送信されます。 こうしたデフォルトの動作は -l を用いてサーバの出力をログファイルに追加するように変更することができます。 -l または出力のリダイレクトのどちらかを使用することを勧めます。

stop モードは、指定されたデータディレクトリで稼働しているサーバを停止(シャットダウン)します。 -m オプションでは、3つの異なる停止方式を選択できます。 "Smart" モード(デフォルト)は、全てのクライアントが切断し、オンラインバックアップがあればそれが終了するまで待ちます。 サーバがホットスタンバイ状態の場合、すべてのクライアント接続が切断された後にリカバリとストリーミングレプリケーションは終了します。 "Fast" モードはクライアントが切断するまで待たず、かつ、実行中のオンラインバックアップを終了させます。 全ての実行中のトランザクションをロールバックし、クライアントとの接続を強制的に切断した後、サーバを停止します。 "Immediate" モードは、クリーンアップ処理なしで、全てのサーバプロセスを即座に中断します。 これを指定すると、再起動時にクラッシュリカバリ処理が実行されます。

restart モードは、効果的にサーバを停止して、その後、再起動します。 この時、 postgres コマンドラインオプションを変更することができます。 指定された相対パスがサーバ起動時にコマンドラインから指定されていた場合に restart が失敗する可能性があります。

reload モードは、単に postmaster SIGHUP シグナルを送り、( postgresql.conf pg_hba.conf などの)設定ファイルを再読み込みを実行させます。 これにより、完全な再起動をすることなく、設定ファイルのオプションの変更を反映させることができます。

status モードは指定したデータディレクトリでサーバが起動しているかどうかを確認します。 起動している場合は PID と、サーバを起動する時に使われたコマンドラインオプションを表示します。 サーバが稼働していない場合、このプロセスは終了ステータス3を返します。

promote モードでは、指定したデータディレクトリで稼動中のスタンバイサーバにリカバリを終了し読み書き操作を始めるようコマンドを送ります。

kill モードでは指定したプロセスにシグナルを送信することができます。 これは特に、 kill コマンドを持たない Microsoft Windows で有用です。 サポートするシグナル名の一覧は --help を使用して確認してください。

register モードにより、 Microsoft Windows 上でシステムサービスを登録することができます。 -S オプションによりサービスの起動種類を "auto" (システム起動時に自動的にサービスを起動)か "demand" (要望が合った時にサービスを起動)から選択することができます。

unregister により Microsoft Windows 上のシステムサービスを登録解除することができます。 これは過去に register コマンドによりなされた変更を元に戻します。

オプション

-c
--core-file

実現可能なプラットフォームにおいて、サーバクラッシュ時にcoreファイルを生成できるように関連するソフトリソース制限を上げます。 障害が起きたサーバプロセスから得られたスタックトレースを行うことができますので、問題のデバッグや診断の際に有用です。

-D datadir
--pgdata datadir

データベース設定ファイルのファイルシステム上の場所を指定します。 これが省略された場合、 PGDATA 環境変数が使われます。

-l filename
--log filename

サーバログ出力を filename に追加します。 そのファイルが存在しない場合は作成されます。 umask は077に設定されますので、他のユーザからのログファイルへのアクセスはデフォルトでは許可されません。

-m mode
--mode mode

停止(シャットダウン)モードを指定します。 mode smart fast immediate 、もしくはこの3つのモード名の最初の1文字をとることができます。 省略時は smart が使用されます。

-o options

直接 postgres に渡されるオプションを指定します。

このオプションは、通常、1グループとして渡されることを保証するために、単一引用符または二重引用符で囲まなければなりません。

-o initdb-options

initdb コマンドに直接渡すオプションを指定します。

このオプションは通常、ひとまとめとして渡すために確実に、単一引用符または二重引用符で囲まなければなりません。

-p path

postgres の実行プログラムの位置を指定します。 デフォルトでは postgres の実行プログラムは pg_ctl と同じディレクトリにあるものと仮定されます。また、このディレクトリに存在しなければ、構築時に指定したインストールディレクトリが使われます。 このオプションは、何か異例なことをしていて postgres が見つからないというようなエラーが出ない限り、使う必要はありません。

init モードでは、このオプションは同様に initdb 実行プログラムの場所を指定します。

-s
--silent

エラーメッセージのみを表示し、その他の情報を表示しません。

-t
--timeout

起動または停止の待機が完了するまでの最大の秒数。 デフォルトは60秒です。

-V
--version

pg_ctl のバージョンを表示し、終了します。

-w

起動もしくは停止処理が完了するのを待ちます。 待機は停止処理ではデフォルトのオプションですが、起動処理ではデフォルトではありません。 起動処理を待機している場合、 pg_ctl は繰り返しサーバへの接続を試行します。 停止処理を待機している場合、 pg_ctl はサーバが PID ファイルを削除するまで待機します。 このオプションにより起動時に SSL パスフレーズを入力することができます。 pg_ctl は、起動もしくは停止が成功したかどうかに基づいて正しい終了コードを返します。

-W

起動処理もしくは停止処理が完了するのを待ちません。 起動と再起動モードのデフォルトです。

-?
--help

pg_ctl コマンドライン引数の説明を表示し、終了します。

Windows用オプション

-N servicename

登録するシステムサービスの名前です。 この名前は、システム名としても表示名としても使用されます。

-P password

サービスを開始するユーザ用のパスワードです。

-S start-type

登録するシステムサービスの起動種類です。 気同種類は auto demand 、またはこれら2単語の先頭の文字のいずれかです。 省略時は auto が使用されます。

-U username

サービスを起動するユーザのユーザ名です。 ドメインユーザの場合は DOMAIN\username 書式を使用してください。

環境

PGDATA

デフォルトのデータ保存場所です。

また、 pg_ctl は、他のほとんどの PostgreSQL ユーティリティと同様、 libpq でサポートされる環境変数を使用します( 項31.14 を参照してください)。 この他のサーバ変数については postgres を参照してください。

ファイル

postmaster.pid

データディレクトリにこのファイルがあるかどうかによって、 pg_ctl はサーバが現在稼働中かどうかを決定します。

postmaster.opts

このファイルがデータディレクトリにあれば、 pg_ctl (の restart モード)は、 -o で上書きされるものを除き、このファイルの内容をオプションとして postgres に渡します。 また、このファイルの内容が status モードで表示されます。

サーバの起動

サーバを起動します。


$
 
pg_ctl start

以下はサーバが接続を植え付けられるようになるまで待機する起動例です。


$
 
pg_ctl -w start

ポート5433を使い fsync なしでサーバを起動します。


$
 
pg_ctl -o "-F -p 5433" start

サーバの停止

サーバを停止するためには以下を使用します。


$
 
pg_ctl stop

-m オプションにより どのように バックエンドを停止させるかを制御できます。


$
 
pg_ctl stop -m fast

サーバの再起動

サーバの再起動は、サーバを停止してもう一度起動するのとほぼ同じですが、違うのは、 pg_ctl が以前起動していたインスタンスに渡されていたコマンドラインオプションを保存し再利用することです。 下記はサーバを再起動する最も簡単な方法です。


$
 
pg_ctl restart

再起動の際にサーバのシャットダウンを待ってから起動を行う方法です。


$
 
pg_ctl -w restart

以下はポート5433を使って再起動し、再起動後に fsync を無効にする方法です。


$
 
pg_ctl -o "-F -p 5433" restart

サーバの状態表示

下記は pg_ctl からの状態の出力の例です。


$
 
pg_ctl status


pg_ctl: server is running (PID: 13718)
/usr/local/pgsql/bin/postgres "-D" "/usr/local/pgsql/data" "-p" "5433" "-B" "128"

これは再起動(restart)モードで呼び出されるコマンドラインです。

関連項目

initdb , postgres

powered by SEO.CUG.NET