postgres [ dbname ] postgres [ -B nBuffers ] [ -C ] [ -D DataDir ] [ -E ] [ -F ] [ -O ] [ -P ] [ -Q ] [ -S SortSize ] [ -d [ DebugLevel ] ] [ -e ] [ -o ] [ OutputFile ] [ -s ] [ -v protocol ] [ dbname ]
postgres では以下のコマンドライン引数 を受け付けます。
省略可能な引数である dbname は、アクセスするデータベース名を指定します。 デフォルトの dbname は USER 環境変数の値です。
バックエンドが postmaster のもとで起動していれば、 nBuffers は、バックエンドサーバプロセスの起動時に postmaster がそのプロセスに割り当てた共有メモリバッファの数です。 バックエンドが単独で起動していれば、これは割り当てられるバッファ の数を指定します。 デフォルトの値は 64 バッファで、一つのバッファの大きさは 8K バイト (または config.h で設定された BLCKSZ の値)です。
サーバのバージョンを表示しません。
データベースディレクトリのツリーのルートとして使用するディレクトリ を指定します。-D が指定されていない場合、デフォルトのデータ ディレクトリの名前は、環境変数 PGDATA の値になります。 PGDATA が設定されていなければ、使用されるディレクトリは $POSTGRESHOME/data となります。 環境変数の設定も、コマンドラインオプションの指定もなければ、 コンパイル時に設定されたデフォルトのディレクトリが使用されます。
全ての問い合わせをエコーします。
それぞれのトランザクション完了毎に、自動的に fsync() 呼び出しを行わないようにします。このオプションは性能を向上させますが、 トランザクション実行中にオペレーティングシステムがクラッシュした 場合、直近に入力されたデータが失われる可能性があります。 fsync() 呼び出しがないと、データはオペレーティング システムのバッファに記憶され、後のある時間内にディスクに書き込まれます。
制限事項を書き換えます。したがって、システムテーブルの構成は修正 可能となります。 これらのテーブルは典型的に、テーブル名が "pg_" から始まるものです。
システム用のタプルをスキャン、更新する際にシステム用インデックス を無視します。 システムテーブル及びインデックスに対して REINDEX を実行する際に、このオプションが要求 されます。 システムテーブルは典型的にテーブル名が "pg_" から始まるものです。
"沈黙"モードを指定します。
内部ソートとハッシュが、暫定的なディスクファイルを使用して再ソート をする前に使用する、メモリの大きさを指定します。 値はキロバイト単位で指定されて、デフォルトは 512K バイトになって います。 複雑な問い合わせでは複数のソートとハッシュが並行して実行される場合が あります。 この場合、それぞれのソート、ハッシュは暫定ファイルにデータを書き 出す直前まで SortSize キロバイト ぎりぎりまで使える様になっていることに注意して下さい。
省略可能な引数である DebugLevel はバックエンドサーバが生成するデバッグ出力の大きさを決定します。 DebugLevel が 1 の時、 postmaster は全ての接続トラフィックをトレースしてそれでお仕舞いです。 レベルが 2 以上の場合、バックエンドプロセスでデバッグ機能が有効になり postmaster はバックエンドの環境とトラフィック処理を含む、より多くの 情報を表示します。 バックエンドサーバがデバッグ結果を送るべきファイルが指定されて いない場合、この結果はそれぞれの親である postmaster の制御用 tty に出現します。
このオプションは日付が、データベースへの入力とデータベースからの出力 に際してどのように翻訳されるか制御します。 -e が付いた場合、フロントエンドプロセスと交換 される日付は "European" 形式の (DD-MM-YYYY) であると仮定され、そうでない場合 "American" 形式 (MM-DD-YYYY) となります。 日付データはバックエンドによって各種の形式で受け付けられます。 そして、入力された日付に対して、このスイッチはどちらとであっても 良いと判断して構わない場合に、特に影響を及ぼします。 より詳しくは Data Types を参照して 下さい。
全てのデバッグとエラーの出力を OutputFile ファイルに記録します。 バックエンドが postmaster のもとで 起動していればエラーメッセージはフロントエンドプロセスにも、 OutputFile にも出力されますが、デバッグの出力は postmaster の制御用 tty に送られます。(というのは、一つのファイル記述子しか 実ファイルに送ることができないからです。)
時刻情報とその他の統計情報を各問い合わせの終りに表示します。ベンチマークを 行う時やバッファの数を調整するときに便利です。
この特定のセッションで使用されるフロントエンド/バックエンドプロトコル 番号を指定します。
この他に、主にデバッグ目的で使用されるいくつかのオプションを指定できます。 Postgres システム開発者向けに、これらのオプ ションの一覧を示します。 これらのオプションの使用で障害を引き起こすことがあります。 さらに、これらのオプションが、ある日突然なくなったり変更されたり することがあります。
これら特別な場合用のオプションを以下に示します。
このオプションは驚くべき多くの量の出力を生成します。
ロックシステムを中止します。
問い合わせの区切り文字としての改行の使用を無効にします。
特定のスキャンと結合メソッドの使用を禁止します。 s と i はそれぞれシーケンシャルスキャンとインデックススキャンを無効にし、一方 n、m および h は、それぞれ入れ子のループ、マージそしてハッシュ結合を 無効にします。
Note: シーケンシャルスキャンまたは入れ子のループ結合を完全に無効にすることは できません。-fs および -fn オプションは単にオプティマイザがほかの選択肢を持っている場合 これらの計画の型を使用しないというだけです。
問い合わせを実行しません。ただし、計画のツリー構造を表示します。
postmaster によって起動されたことを バックエンドサーバに通知して、バッファプール管理、 ファイル記述子その他について、異なった仮定をします。 -p に続くスイッチは "secure" と見なされるものに制限されます。
それぞれの主だったシステムモジュールに関連するひとつひとつの 問い合わせに対するタイミングの統計を出力します。このオプションは -s と同時に使うことができません。
バックエンドサーバを直接実行したとき、出食わす身近でであってなお 不特定なエラーメッセージの中で最も一般的なものは下記のようなもので しょう。
このメッセージが出たときは、 ipcclean コマンドを実行しなければなりません。実行後、 postmaster を再起動します。引続きエラーが出るようであれば、 インストールの注意書きにしたがって、共有メモリとセマフォに ついてカーネルを構築する必要がありそうです。 特別に小さい共有メモリであったりセマフォの限界が小さかったり、 この二つともの場合のカーネルであるとすると、共有メモリと セマフォのパラメータを拡張するようにカーネルを再構築しなければ なりません。
Tip: Postgres の共有メモリ消費量 を低くするように -B の値を小さくすることで、カーネルの 再構築を先に延ばす事もできます。
Postgres バックエンドサーバはユーザシェルから直接実行することができます。 この操作は DBA によるデバッグの場合のみに限定され、このデータベースセット 上の postmaster によって別の Postgres バックエンドが管理されている場合は、操作を行って はなりません。
ここで説明したいくつかのスイッチは接続要求の"データベースオプション" フィールドを通じてバックエンドに渡され、したがい、面倒な postmaster の 再起動を行わなくても特定のバックエンドに対し設定ができます。 このことはデバッグに関連したスイッチではとくに重宝です。
オプションである引数 dbname はアクセスするデータベース名を指定します。 デフォルトの dbname は USER 環境変数の値となります。