postgres

Name

postgres  --  Postgres シングルユーザバックエンドの起動

Synopsis

postgres [ dbname ]
postgres [ -B nBuffers ] [ -C ] [ -D DataDir ] [ -E ] [ -F ]
   [ -O ] [ -Q ] [ -S SortSize ] [ -d [ DebugLevel ] ] [ -e ]
   [ -o ] [ OutputFile ] [ -s ] [ -v protocol ] [ dbname ]
  

入力

postgres では以下のコマンドライン引数を 認めています。

dbname

オプションの引数である dbname は、アクセスするデータベース名を指定します。 デフォルトの dbnameUSER 環境変数の値です。

-B nBuffers

バックエンドが postmaster のもとで起動していれば、 nBuffers は、立ち上がった時点にバックエンドサーバプロセスに postmaster が割り当てた共有メモリバッファの数です。 バックエンドが単独で起動していれば、これは割り当てられるバッファ の数を指定します。 デフォルトの値は 64 バッファで、一つのバッファの大きさは 8K バイト (または config.h で設定された BLCKSZ の値)です。

-C

サーバのバージョンを表示しません。

-D DataDir

データベースディレクトリのツリーのルートとして使用するディレクトリ を指定します。-D が与えられていない場合、デフォルトのデータ ディレクトリの名前は、環境変数 PGDATA の値になります。 PGDATA が設定されていなければ、使用されるディレクトリは $POSTGRESHOME/data となります。 環境変数が設定されていないで、コマンドラインオプションも特定されて いない場合は、コンパイルした時に設定されたデフォルトのディレクトリ が使用されます。

-E

全ての問合せをエコーします。

-F

それぞれのトランザクション完了毎に、自動的に fsync() 呼び出しを行わないようにします。このオプションはパフォーマンスを向上させ ますが、トランザクション実行中のオペレーティングシステムがクラッシュした 場合には、直近に入力されたデータが失われる可能性があります。 fsync() 呼び出しがないと、データはオペレーティング システムのバッファに記憶され、後のある時間内にディスクに書き込まれます。

-O

制限事項を書き換えます。したがって、システムテーブルの構成は修正 可能となります。 これらのテーブルはテーブル名の中で、典型的に、 "pg_" から始まる名前 になっています。

-Q

"沈黙"モードを指定します。

-S SortSize

暫定的なディスクファイルに再ソートする以前に、内部ソートとハッシュに よって使われるメモリの大きさを指定します。 値はキロバイト単位で指定されて、デフォルトは 512K バイトになって います。 複雑な問合せではいくつかのソート もハッシュも並行して実行されている場合があって、それぞれの ソート、ハッシュは暫定ファイルにデータを書き出す直前まで SortSize キロバイト ぎりぎりまで使える様になっています。

-d [ DebugLevel ]

オプション引数の DebugLevel はバックエンドサーバが生成するデバッグ出力の大きさを決定します。 DebugLevel が 1 の時、 postmaster は全ての接続トラフィックをトレースしてそれでお仕舞いです。 レベルが 2 以上の場合、バックエンドプロセスでデバッグ機能が有効になり postmaster はバックエンドの環境とトラフィック処理を含む、より多くの 情報を表示します。 バックエンドサーバがデバッグ結果を送るべきファイルが指定されて いない場合、この結果はそれぞれの親である postmaster の tty 制御に出現します。

-e

このオプションは日付が、データベースへの入力とデータベースからの出力 に際してどのように翻訳されるか制御します。 -e が付いた場合、フロントエンドプロセスと交換 される日付は "European" 形式の (DD-MM-YYYY) であると仮定され、そうでない場合 "American" 形式 (MM-DD-YYYY) となります。 日付データはバックエンドによって各種の形式で受け付けられます。 そして、入力された日付に対して、この変換機構はどちらとであっても 良いと判断して構わない場合に、特に影響を及ぼします。 より詳しくは データ型 を参照して 下さい。

-o OutputFile

全てのデバッグとエラーの出力を OutputFile ファイルに記録します。 バックエンドが postmaster のもとで 起動していればエラーメッセージはフロントエンドプロセスにも、 OutputFile にも出力されますが、デバッグの出力は postmaster tty 制御に送られます。(というのは、一つのファイル記述子しか 実ファイルに送ることが出来ないからです。)

-s

時刻情報とその他の統計情報を各問合せの終りに表示します。ベンチマークを 行う時やバッファの数を調整するときに便利です。

-v protocol

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

主にデバッグ目的で使用されるいくつかのその他のオプションが指定できます。 これらオプションを Postgres システム 開発者用にリストしました。 これらのオプションの使用で障害を引き起こすことがあります。 さらに、これらのオプションが、ある日突然なくなったり変更されたり することがあります。

特別のケースのオプションです:

-A n|r|b|Q\fIn\fP|X\fIn\fP

このオプションは驚くべき多くの量の出力を生成します。

-L

ロックシステムを中止します。

-N

問合せのデリミタとしての改行の使用を無効にします。

-f [ s | i | m | n | h ]

特定のスキャンとジョインメソッドの使用を禁止します: si はそれぞれ逐次スキャンとインデックススキャンを無効にし、一方 nm および h は、それぞれ入れ子のループ、マージそしてハッシュのジョインを 無効にします。

Note: 逐次スキャンまたは入れ子のループジョインを完全に無効にすることは 出来ません。-fs および -fn オプションは単にオプティマイザがほかの選択肢を持っている場合 これらのプランの型を使用しないというだけです。

-i

問合せを実行しません。但しプランのツリー構造を表示します。

-p dbname

postmaster によって起動されたことを バックエンドサーバに通知して、バッファプール管理、 ファイル記述子その他について、異なった仮定します。 -p に続くスイッチは "secure" と見なされるものに制限されます。

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

それぞれの主だったシステムモジュールに関連するひとつひとつの 問合せに対するタイミングの統計を出力します。このオプションは -s と同時に使うことが出来ません。

出力

バックエンドサーバを直接実行したとき、出食わす身近でであってなお 不特定なエラーメッセージの中で最も一般的なものは下記のようなもので しょう:

semget: No space left on device

このメッセージが出たときは、 ipcclean コマンドを実行しなければなりません。実行後、 postmaster を再起動します。引続きエラーが出るようであれば、 インストールの注意書きにしたがって、共有メモリとセマフォに ついてカーネルを構築する必要がありそうです。 特別に小さい共有メモリであったりセマフォの限界が小さかったり、 この二つともの場合のカーネルであるとすると、共有メモリと セマフォのパラメータを拡張するようにカーネルを再構築しなければ なりません。

Tip: Postgres の共有メモリ消費量 を低くするため -B を使用し、カーネルの再構築を先に延ばす 事も出来ます。

Description

Postgres バックエンドサーバはユーザシェルから直接実行することが出来ます。 この操作は DBA によるデバッグ場合のみに限定され、このデータベースセット 上の postmaster によって別の Postgres バックエンドが管理されている場合は、操作を行って はなりません。

ここで説明したいくつかのスイッチは接続要求の"データベースオプション" フィールドを通じてバックエンドに渡され、したがい面倒な postmaster の 再起動を行はなくても特定のバックエンドに対し設定が出来ます。 このことはデバッグに関連したスイッチではとくに重宝です。

オプション引数の dbname でアクセスするデータベース名を指定します。 デフォルトの dbnameUSER の環境変数の値となります。

注意事項

共有メモリ問題を扱う有用なユーティリティには、 ipcs(1)ipcrm(1) そして ipcclean(1)があります。 postmaster も参照して下さい。