他のバージョンの文書11 | 10 | 9.6 | 9.5 | 9.4 | 9.3 | 9.2 | 9.1 | 9.0 | 8.4 | 8.3 | 8.2 | 8.1 | 8.0 | 7.4 | 7.3 | 7.2

postgres

Name

postgres -- シングルユーザモードの PostgreSQL サーバの実行

Synopsis

postgres [-A 0 | 1 ] [-B nbuffers] [-c name=value] [-d debug-level] [-D datadir] [-e] [-E] [-f s | i | t | n | m | h ] [-F] [-i] [-N] [-o filename] [-O] [-P] [-s | -t pa | pl | ex ] [-S sort-mem] [-W seconds] [--name=value] database

postgres [-A 0 | 1 ] [-B nbuffers] [-c name=value] [-d debug-level] [-D datadir] [-e] [-f s | i | t | n | m | h ] [-F] [-i] [-o filename] [-O] [-p database] [-P] [-s | -t pa | pl | ex ] [-S sort-mem] [-v protocol-version] [-W seconds] [--name=value]

説明

postgres 実行プログラムは、問い合わせを処理する実際の PostgreSQL サーバプロセスです。通常は直接呼び出されません。代わりに postmaster マルチユーザサーバが起動されます。

上から二番目は、postgres がどのように postmaster から呼び出されるかです。(概念的にのみです。なぜなら postmasterpostgres は実際には同じプログラムだからです。)このプログラムはこのような方法で直接的に呼び出されるべきではありません。最初の形式はサーバを対話的のシングルユーザモードで直接呼び出します。このモードの主な使い道は、initdb によるブートストラッピングです。デバッグのためや災害からの復旧のために使用されることもあります。

shell から対話的モードで呼び出された場合、ユーザは問い合わせを入力し結果はスクリーン上に表示されますが、エンドユーザよりも開発者にとってより便利な形式が使われます。しかし、単一ユーザバックエンドはサーバのデバッグにはふさわしくありません。なぜなら現実的なプロセス間の通信とロックは起こらないからです。

スタンドアロンバックエンドを起動する際、セッションユーザはユーザ ID 1 のユーザに設定されます。このユーザは実際に存在しません。ですので、スタンドアロンバックエンドは、システムカタログの偶発的な損傷などからの復旧作業に使用することができます。スタンドアロンモードでは、ユーザ ID 1 のユーザは、暗黙的なスーパーユーザ権限が与えられます。

オプション

postgrespostmaster から起動された場合、後者が設定した全てのオプションを引き継ぎます。更に、postgres 固有のオプションは postmaster から -o オプションで渡されることができます。

設定ファイルを設定することによって、これらのオプションを入力する手間を省くことができます。詳細は 管理者ガイド を参照してください。いくつかの(安全な)オプションは接続しているクライアントからアプリケーションに依存する方法で設定することができます。例えば、もし環境変数 PGOPTIONS が設定されると、libpq に基づくクライアントはその文字列をサーバに渡し、サーバはそれを postgres コマンドラインオプションとして解釈します。

一般的な目的

オプション -A, -B, -c, -d, -D, -F, および --namepostmaster と同じ意味を持ちます。

-e

デフォルト日付データ形式を "ヨーロッパ式"にします。これは"日が月の前" (月が日の前ではなく)というルールが不明瞭な日付の入力を解釈する際に使われ、特定の日付出力フォーマットでは日が月の前に表示されるということです。詳細は PostgreSQL ユーザガイド を参照して下さい。

-o filename

全てのデバッグとエラー表示を filename に送ります。もしバックエンドが postmaster の下で動いている場合、このオプションは無視され、その標準エラー出力は postmaster が使用する標準エラー出力に引き継がれます。

-P

システムタプルのスキャン/更新の際にシステムインデックスを無視します。システムテーブル/インデックスに対する REINDEX コマンドはこのオプションを使うことを要求します。

-s

時間情報と他の統計をそれぞれの問い合わせの最後に表示します。これはベンチマーク、もしくはバッファ数の調整に便利です。

-S sort-mem

一時ディスクファイルを再ソートする前に内部ソートとハッシュに使われるメモリ量を、指定します。その値はキロバイトで指定され、デフォルトでは 512 キロバイトです。複雑な問い合わせではいくつかのソートもしくはハッシュが並行して実行されている可能性があり、データを一時ファイルに挿入し始める前に、それぞれが sort-mem キロバイト分だけ使うことができます。

スタンドアロンモードのオプション

database

アクセスされるデータベースの名前を指定します。もしそれが省略されると、デフォルトはユーザ名になります。

-E

すべての問い合わせを Echo します。

-N

改行を問い合わせ区切り文字として使うことを無効にします。

内部的オプション

その他にも、主にデバッグ用に使われる、いくつかのオプションを指定することができます。これらは PostgreSQL システム開発者の使用のためだけにここにリストされています。 これらのオプションの使用はお勧めできません。 更に、これらのオプションのいずれも将来のリリースでは警告なしになくなるか変更される可能性があります。

-f { s | i | m | n | h }

特定のスキャンと結合メソッドの使用を禁止します。 si は順スキャンとインデックススキャンをそれぞれ不可能にし、 n, m そして h は、ネストループ、マージ、そしてハッシュ結合をそれぞれ不可能にします。

Note: 順スキャンとネストループのどちらも完全に不可能にすることはできません。-fs-fn オプションは単に、もし他の選択がある場合はオプティマイザがこれらのプラン型を使わないようにするというだけです。

-i

問い合わせは実行しませんが、プランツリーは表示します。

-O

システムテーブルの構造を変更することを可能にします。これは initdb によって使われます。

-p database

このサーバが postmaster によって起動されたことを表し、バッファプール管理、ファイル記述子、などについて別の想定により設定をします。

-t pa[rser] | pl[anner] | e[xecutor]

それぞれの主要なシステムモジュールと関連するそれぞれの問い合わせのタイミング統計を表示します。このオプションは -s オプションと一緒に使うことはできません。

-v protocol

このセッションで使われるフロントエンド/バックエンドプロトコルのバージョン番号を指定します。

-W seconds

このオプションが入力されると、プロセスは指定された秒のあいだスリープに入ります。これは、開発者にバックエンドプロセスにデバッガを付ける時間を与えます。

使用方法

下記のコマンドによりスタンドアロンバックエンドを起動します。

postgres -D $PGDATA other-options my_database

-D によってデータベース領域のパスを正確に渡して下さい。もしくは、 PGDATA 環境変数が設定されているか確認して下さい。また、作業対象とする特定のデータベースの名前を指定して下さい。

通常、スタンドアロンバックエンドでは、改行をコマンド入力の終りとみなします。 psql におけるセミコロンのような高度な機能はありません。複数行に渡ってコマンドを入力する場合は、最終行を除いて、改行の直前にバックスラッシュを入力しなければなりません。

しかし、-N コマンドラインスイッチを使用する場合、改行はコマンド入力の終りではなくなります。バックエンドは標準入力をファイル終端 (EOF) マークまで読み取り、それまでの入力を1つの問い合わせ文字列として処理します。この場合は、バックスラッシュと改行の組み合わせは特別扱いされません。

セッションを終了させるには、EOF(通常Control+D)を入力して下さい。-N を使用している場合の終了には、連続した2つの EOF が必要です。

スタンドアロンバックエンドには、高度な行編集機能が用意されていないことに注意して下さい。(例えばコマンド履歴はありません。)

関連項目

initdb, ipcclean, postmaster