postgres - Postgres のバックエンドサーバです
postgres [ -B n_buffers][ -D data_directory][ -E ][ -F ]
[ -P filedes][ -Q ][ -S n_buffers ][ -e ][ -v protocol ]
[ -d debug_level][ -o output_file][ -s ][dbname]
Postgres のバックエンドサーバはユーザのシェルから直接実行することができます。これは DBA がデバッグしている時にのみ行われるべきもので、他の Postgres のバックエンドがこのデータベースの集合に対するpostmasterに管理されている時には行わないでください。
オプション引数のdbnameはアクセスするデータベースの名前を指定します。dbnameはデフォルトで、環境変数 USER の値となります。
postgresサーバは次のコマンドラインオプションを取ります:
このオプションはデータベースのシステムデータ (表やカタログなど) があるディレクトリへのパスを指定します。もしこのオプションを指定しないと、Postgres は環境変数 PGDATA の値を使います。-D オプションを指定するか PGDATA をセットするかのどちらかをしなくてはなりません。
データベースシステムのデータディレクトリへのパスは通常、データベースシステムがinitdbへの --pgdata オプションを付けてinitdbで構築された時に決定されます。
バックエンドがpostmasterの下で走っているなら、n_buffersは、postmasterがスタートするバックエンドサーバプロセスのために確保した共有メモリのバッファのサイズになります。もしバックエンドがスタンドアロンで走っているなら、これは確保するバッファのサイズを指定します。この値はデフォルトで 64 になり、各バッファは 8k バイトになります。
すべての問い合わせをエコーします。
各トランザクションの後に自動的に行われる fsync() の呼び出しを無効にします。このオプションはパフォーマンスを向上しますが、実行中のトランザクションの中でのオペレーティングシステムのクラッシュはデータの喪失を引き起こします。
filedesはフロントエンドプロセスと接続するソケット(ポート)に該当するファイル記述子を指定します。このオプションは対話的な使用には有効では ありません。
"quiet" モードを指定します。
並べ変えにディスクファイルを使う前に、内部的な並べ変えに使うメモリの量を指定します。この値は 1k バイト単位で指定します。デフォルトでは 512 になります。
-eオプションは日付がどのようにデータベースから入出力されるかを指定します。
数値レベルdebug_levelのデバッグを有効にします。デバッグを有効にすると、問い合わせや構文解析木、問い合わせプランが表示されます。
すべてのデバッグとエラーの出力をoutput_fileに送ります。もしバックエンドがpostmasterの下で走っているなら、エラーメッセージはoutput_fileと同じくフロントエンドプロセスにも送られますが、デバッグ出力はpostmasterのコントロール TTY へ送られます。(ファイル記述子は実際のファイルにはひとつだけしか送れないからです。)
時間情報と他の統計を各問い合わせの最後に表示します。これはベンチマークと取る時やバッファサイズを調整する時に有用です。
この特定のセッションで使うフロントエンド/バックエンドのプロトコルを指定します。
他にも指定できるいくつかのオプションがありますが、主にデバッグ目的に使われます。ここに Postgres のシステム開発者のの使用目的のためにリストアップしてあります。 これらのオプションを使うことは強く反対します。 さらに、これらのオプションはいつでもなくなったり変更されたりします。
ロックシステムを無効にします。
問い合わせの区切りとして改行を使うのをやめます。
ぐちゃぐちゃの問い合わせプラン木 ( 左側が深い(left-deep) 問い合わせプラン木に反して)の生成を有効にします。この問い合わせプランは実際の実行用ではありません。加えてこのフラッグは Postgres のメモリ不足を引き起こします。
特定の検索や結合メソッドを禁止します:s と iはそれぞれシーケンシャルとインデックスの検索を無効にしますが、n と m と hはそれぞれ入れ子のループ、マージとハッシュの結合を無効にします。必然的に実行できるプランを作らないもうひとつの特徴です。
はバックエンドサーバにpostmasterがスタートしたことを示して、バッファプール管理やファイル記述子に関しての違う仮定をもたらします。
主なシステムモジュールそれぞれに関連する問い合わせの時間の統計を出力します。このオプションは -s
と一緒に使うことはできません。
バックエンドサーバを直接実行すると無限に近いエラーメッセージを見るかも知れません。通常の多くはこれでしょう:
もしこのメッセージを見たら、ipccleanコマンドを走らせてください。この後でもう一度postgresをスタートさせてみてください。それでもまだ動かなければ、インストールノートに説明されているように、多分共有メモリとセマフォのためにカーネルを設定する必要があるでしょう。