<!--
$Header: /usr/prj/pg/cvsroot/doc/doc/src/sgml/ref/postgres-ref.sgml,v 1.8 2001/08/28 02:13:06 i-kaori Exp $
Postgres documentation
-->

<refentry id="APP-POSTGRES">
 <docinfo>
  <date>2000-11-12</date>
 </docinfo>

 <refmeta>
  <refentrytitle id="APP-POSTGRES-TITLE"><application>postgres</application></refentrytitle>
  <manvolnum>1</manvolnum>
  <refmiscinfo><!-- Application -->アプリケーション</refmiscinfo>
 </refmeta>

 <refnamediv>
  <refname>postgres</refname>
  <refpurpose><!-- Run a <productname>PostgreSQL</productname> single-user 
  backend -->
  <productname>PostgreSQL</productname>シングルユーザーバックエンドを実行します。<indexterm><primary>postgres</primary></indexterm><indexterm><primary>PostgreSQL</primary><secondary>postgres</secondary></indexterm><indexterm><primary>PostgreSQL</primary><secondary sortas="しんぐるゆーざーばっくえんどさーばー">シングルユーザーバックエンドサーバー</secondary></indexterm>
  </refpurpose>
 </refnamediv>

 <refsynopsisdiv>
  <cmdsynopsis>
   <!-- standalone call -->
   <command>postgres</command>
   <arg>-A <group choice="plain"><arg>0</arg><arg>1</arg></group></arg>
   <arg>-B <replaceable>nbuffers</replaceable></arg>
   <arg>-c <replaceable>name</replaceable>=<replaceable>value</replaceable></arg>
   <arg>-d <replaceable>debug-level</replaceable></arg>
   <arg>-D <replaceable>datadir</replaceable></arg>
   <arg>-e</arg>
   <arg>-E</arg>
   <arg>-f<group choice="plain"><arg>s</arg><arg>i</arg><arg>t</arg><arg>n</arg><arg>m</arg><arg>h</arg></group></arg>
   <arg>-F</arg>
   <arg>-i</arg>
   <arg>-L</arg>
   <arg>-N</arg>
   <arg>-o <replaceable>file-name</replaceable></arg>
   <arg>-O</arg>
   <arg>-P</arg>
   <group>
    <arg>-s</arg>
    <arg>-t<group choice="plain"><arg>pa</arg><arg>pl</arg><arg>ex</arg></group></arg>
   </group>
   <arg>-S <replaceable>sort-mem</replaceable></arg>
   <arg>-W <replaceable>seconds</replaceable></arg>
   <arg choice="plain"><replaceable>database</replaceable></arg>
   <sbr>
   <!-- postmaster fork -->
   <command>postgres</command>
   <arg>-A <group choice="plain"><arg>0</arg><arg>1</arg></group></arg>
   <arg>-B <replaceable>nbuffers</replaceable></arg>
   <arg>-c <replaceable>name</replaceable>=<replaceable>value</replaceable></arg>
   <arg>-d <replaceable>debug-level</replaceable></arg>
   <arg>-D <replaceable>datadir</replaceable></arg>
   <arg>-e</arg>
   <arg>-f<group choice="plain"><arg>s</arg><arg>i</arg><arg>t</arg><arg>n</arg><arg>m</arg><arg>h</arg></group></arg>
   <arg>-F</arg>
   <arg>-i</arg>
   <arg>-L</arg>
   <arg>-o <replaceable>file-name</replaceable></arg>
   <arg>-O</arg>
   <arg>-p <replaceable>database</replaceable></arg>
   <arg>-P</arg>
   <group>
    <arg>-s</arg>
    <arg>-t<group choice="plain"><arg>pa</arg><arg>pl</arg><arg>ex</arg></group></arg>
   </group>
   <arg>-S <replaceable>sort-mem</replaceable></arg>
   <arg>-v <replaceable>protocol-version</replaceable></arg>
   <arg>-W <replaceable>seconds</replaceable></arg>
  </cmdsynopsis>
 </refsynopsisdiv>

 <refsect1>
  <title><!-- Description -->説明</title>

  <para>
   <!-- The <filename>postgres</filename> executable is the actual
   <productname>PostgreSQL</productname> server process that processes
   queries.  It is normally not called directly; instead a <xref
   linkend="app-postmaster"> multi-user server is started. -->

   <filename>postgres</filename>実行プログラムは、問い合わせを処理する実際の<productname>PostgreSQL</productname>サーバープロセスです。直接呼び出されることは通常ははありません。代わりに<xref linkend="app-postmaster">マルチユーザーサーバーが起動されます。
  </para>

  <para>
   <!-- The second form above is how
   <application>postgres</application> is invoked by the <xref
   linkend="app-postmaster"> (only
   conceptually, since both <filename>postmaster</filename> and
   <filename>postgres</filename> are in fact the same program); it
   should not be invoked directly this way.  The first form invokes
   the server directly in interactive mode.  The primary use for this
   mode is for bootstrapping by <xref linkend="app-initdb">. -->

   上記の2つ目の構文は、<application>postgres</application>がどのように<xref linkend="app-postmaster">から呼び出されるかです（概念的にのみです。なぜなら<filename>postmaster</filename>と<filename>postgres</filename>は実際には同じプログラムだからです）。これはこのような方法で直接的に呼び出されるべきではありません。最初の形式はサーバーを対話的モードで直接呼び出します。このモードの主な使い道は、<xref linkend="app-initdb">によるブートストラッピングです。

  </para>

  <para>
   <!-- 
   When invoked in interactive mode from the shell, the user can enter
   queries and the results will be printed to the screen, but in a
   form that is more useful for developers than end users.  But note
   that running a single-user backend is not truly suitable for
   debugging the server since no realistic inter-process communication
   and locking will happen. -->

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

  </para>

  <para>
   <!-- 
   When running a stand-alone backend the session user name will
   automatically be set to the current effective Unix user name.  If
   that user does not exist the server will not start. -->

   スタンドアロンバックエンドを起動する際、セッションユーザー名は自動的に現在の実効Unixユーザー名に設定されます。そのユーザーが存在しない場合、サーバーは起動しません。

  </para>

  <refsect2>
   <title><!-- Options -->オプション</title>

   <para>
    <!-- 
    When <application>postgres</application> is started by a <xref
    linkend="app-postmaster"> then it
    inherits all options set by the latter.  Additionally,
    <application>postgres</application>-specific options can be passed
    from the <application>postmaster</application> with the
    <option>-o</option> switch. -->

    <application>postgres</application>が<xref linkend="app-postmaster">から起動された場合、postmasterが設定したすべてのオプションを引き継ぎます。さらに、<application>postgres</application>固有のオプションは<application>postmaster</application>から<option>-o</option>オプションで渡されることができます。  
 
   </para>

   <para>
    <!-- 
    You can avoid having to type these options by setting up a
    configuration file.  See the <citetitle>Administrator's
    Guide</citetitle> for details.  Some (safe) options can also be
    set from the connecting client in an application-dependent way.
    For example, if the environment variable <envar>PGOPTIONS</envar>
    is set, then libpq-based clients will pass that string to the
    server, which will interpret it as
    <application>postgres</application> command-line options. -->

    設定ファイルによって、これらのオプションを入力する手間を省くことができます。詳細は<citetitle>&admin-guide;</citetitle>を参照してください。いくつかの（安全な）オプションは、接続しているクライアントからアプリケーションに依存する方法で設定することができます。たとえば、環境変数<envar>PGOPTIONS</envar>が設定されると、libpqに基づくクライアントはその文字列をサーバーに渡し、サーバーはそれを<application>postgres</application>コマンドラインオプションとして解釈します。

   </para>

   <refsect3>
    <title><!-- General Purpose -->一般的な目的</title>

    <para>
     <!-- The options <option>-A</option>, <option>-B</option>,
     <option>-c</option>, <option>-d</option>, <option>-D</option>,
     and <option>-F</option> have the same meaning as with the <xref
     linkend="app-postmaster">. -->

     オプション<option>-A</option>、<option>-B</option>、<option>-c</option>、<option>-d</option>、<option>-D</option>、<option>-F</option>は<xref linkend="app-postmaster">と同じ意味を持ちます。

    </para>

    <variablelist>
     <varlistentry>
      <term>-e</term>
      <listitem>
       <para>
        <!-- 
        Sets the default date style to <quote>European</quote>, which
	means that the <quote>day before month</quote> (rather than
	month before day) rule is used to interpret ambiguous date
	input, and that the day is printed before the month in certain
	date output formats.  See the <citetitle>PostgreSQL User's
	Guide</citetitle> for more information. -->

        デフォルトの日付データ形式を<quote>ヨーロッパ式</quote>にします。これは<quote>日が月の前</quote>（月が日の前ではない）というルールが不明瞭な日付の入力を解釈する際に使われ、特定の日付出力フォーマットでは日が月の前に表示されるということです。詳細は<citetitle>&user-guide;</citetitle>を参照してください。

       </para>
      </listitem>
     </varlistentry>

     <varlistentry>
      <term>-o <replaceable class="parameter">file-name</replaceable></term>
      <listitem>
       <para>
	<!-- Sends all debugging and error output to 
	<replaceable class="parameter">OutputFile</replaceable>.
	If the backend is running under the 
        <application>postmaster</application>,
	error messages are still sent to the frontend process as well as to
	<replaceable class="parameter">OutputFile</replaceable>,
	but debugging output is sent to the controlling tty of the
	<application>postmaster</application>
	(since only one file descriptor can be sent to an actual file).
        -->

        すべてのデバッグとエラー表示を<replaceable class="parameter">OutputFile</replaceable>ファイルにリダイレクトします。もしバックエンドが<application>postmaster</application>の下で動いている場合、エラーメッセージはやはり<replaceable class="parameter">OutputFile</replaceable>に送られると同時にフロントエンドプロセスにも送られます。ただしデバッグ出力は<application>postmaster</application>の管理ttyに送られます（1つのファイル記述子のみを実際のファイルに送ることができるためです）。

       </para>
      </listitem>
     </varlistentry>

     <varlistentry>
      <term>-P</term>
      <listitem>
       <para>
	<!-- Ignore system indexes to scan/update system tuples. The
	<command>REINDEX</command> command for system tables/indexes
	requires this option to be used. -->

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

       </para>
      </listitem>
     </varlistentry>

     <varlistentry>
      <term>-s</term>
      <listitem>
       <para>
        <!-- 
	Print time information and other statistics at the end of each query.
	This is useful for benchmarking or for use in tuning the number of
	buffers. -->

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

       </para>
      </listitem>
     </varlistentry>

     <varlistentry>
      <term>-S <replaceable class="parameter">sort-mem</replaceable></term>
      <listitem>
       <para>
        <!-- 
	Specifies the amount of memory to be used by internal sorts and hashes
	before resorting to temporary disk files.  The value is specified in
	kilobytes, and defaults to 512 kilobytes.  Note that for a complex query,
	several sorts and/or hashes might be running in parallel, and each one
	will be allowed to use as much as
	<replaceable class="parameter">sort-mem</replaceable> kilobytes
	before it starts to put data into temporary files. -->

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

       </para>
      </listitem>
     </varlistentry>

    </variablelist>
   </refsect3>

   <refsect3>
    <title><!-- Options for stand-alone mode -->
    スタンドアロンモードのオプション</title>

    <variablelist>
     <varlistentry>
      <term><replaceable class="parameter">database</replaceable></term>
      <listitem>
       <para>
        <!-- 
 	Specifies the name of the database to be accessed.  If it is
	omitted it defaults to the user name. -->

        アクセスされるデータベースの名前を指定します。省略されると、デフォルトはユーザー名になります。
	
       </para>
      </listitem>
     </varlistentry>

     <varlistentry>
      <term>-E</term>
      <listitem>
       <para>
	<!-- Echo all queries. -->すべての問い合わせをEchoします。
       </para>
      </listitem>
     </varlistentry>

     <varlistentry>
      <term>-N</term>
      <listitem>
       <para>
	<!-- Disables use of newline as a query delimiter. -->
        改行を問い合わせ区切り文字として使うことを不可能にします。
       </para>
      </listitem>
     </varlistentry>
    </variablelist>
   </refsect3>

   <refsect3>
    <title><!-- Semi-internal Options -->内部的オプション</title>

    <para>
     <!--  
     There are several other options that may be specified, used
     mainly for debugging purposes.  These are listed here only for
     the use by <productname>PostgreSQL</productname> system
     developers.  <emphasis>Use of any of these options is highly
     discouraged.</emphasis>  Furthermore, any of these options may
     disappear or change in a future release without notice. -->

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

   </para>
    <variablelist>

     <varlistentry>
      <term>-f { s | i | m | n | h }</term>
      <listitem>
       <para>
        <!-- 
	Forbids the use of particular scan and join methods:
	<literal>s</literal> and <literal>i</literal>
	disable sequential and index scans respectively, while
	<literal>n</literal>, <literal>m</literal>, and <literal>h</literal>
	disable nested-loop, merge and hash joins respectively. -->

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

	<note>
	 <para>
          <!-- 
	  Neither sequential scans nor nested-loop joins can be disabled 
          completely;
	  the <literal>-fs</literal> and <literal>-fn</literal>
	  options simply discourage the optimizer from using those
	  plan types if it has any other alternative. -->

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

	 </para>
	</note>
      </listitem>
     </varlistentry>

     <varlistentry>
      <term>-i</term>
      <listitem>
       <para>
	<!-- Prevents query execution, but shows the plan tree. -->
        問い合わせは実行しませんが、プランツリーは表示します。
       </para>
      </listitem>
     </varlistentry>

     <varlistentry>
      <term>-L</term>
      <listitem>
       <para>
	<!-- Turns off the locking system. -->
        ロックシステムを無効にします。
       </para>
      </listitem>
     </varlistentry>

     <varlistentry>
      <term>-O</term>
      <listitem>
       <para>
        <!-- 
	Allows the structure of system tables to be modified.  This is
	used by <application>initdb</application>. -->
        システムテーブルの構造を変更することを可能にします。これは<application>initdb</application>によって使われます。

       </para>
      </listitem>
     </varlistentry>

     <varlistentry>
      <term>-p <replaceable class="parameter">database</replaceable></term>
      <listitem>
       <para>
	<!-- Indicates that this server has been started by a
	<application>postmaster</application> and makes different
	assumptions about buffer pool management, file descriptors,
	etc. -->

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

       </para>
      </listitem>
     </varlistentry>

     <varlistentry>
      <term>-t pa[rser] | pl[anner] | e[xecutor]</term>
      <listitem>
       <para>
        <!-- 
	Print timing statistics for each query relating to each of the
	major system modules.  This option cannot be used together
	with the <option>-s</option> option. -->

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

       </para>
      </listitem>
     </varlistentry>

     <varlistentry>
      <term>-v <replaceable class="parameter">protocol</replaceable></term>
      <listitem>
       <para>
        <!-- 
	Specifies the version number of the frontend/backend protocol
	to be used for this particular session. -->

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

     <varlistentry>
      <term>-W <replaceable class="parameter">seconds</replaceable></term>
      <listitem>
       <para>
        <!--  
	As soon as this option is encountered, the process sleeps for
	the specified amount of seconds.  This gives developers time
	to attach a debugger to the backend process. -->

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

       </para>
      </listitem>
     </varlistentry>

    </variablelist>
   </refsect3>
  </refsect2>
 </refsect1>

 <refsect1>
  <title><!-- See also -->参照</title>

  <para>
   <xref linkend="app-initdb">、
   <xref linkend="app-ipcclean">、
   <xref linkend="app-postmaster">
  </para>
 </refsect1>

</refentry>

<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:nil
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
sgml-parent-document:nil
sgml-default-dtd-file:"../reference.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:"/usr/lib/sgml/catalog"
sgml-local-ecat-files:nil
End:
-->
