<!--
$Header: /usr/prj/pg/cvsroot/doc/doc/src/sgml/ref/pg_dump.sgml,v 1.5 2001/06/27 08:00:34 natsuyo Exp $
Postgres documentation
-->

<refentry id="APP-PGDUMP">
 <docinfo>
  <date>2001-03-06</date>
 </docinfo>

 <refmeta>
  <refentrytitle>
   pg_dump
  </refentrytitle>
  <manvolnum>1</manvolnum>
  <refmiscinfo><!-- Application -->アプリケーション</refmiscinfo>
 </refmeta>

 <refnamediv>
  <refname>pg_dump</refname>

  <refpurpose>
   <!-- 
   Extract a <productname>Postgres</productname> database into a script 
   file or other archive file -->

   <productname>Postgres</productname>データベースをスクリプトファイルや他のアーカイブファイルに抽出します。<indexterm><primary>pg_dump</primary></indexterm><indexterm><primary>PostgreSQL</primary><secondary>pg_dump</secondary></indexterm><indexterm><primary sortas="でーたべーす">データベース</primary><secondary sortas="だんぷ">ダンプ</secondary></indexterm><indexterm><primary sortas="でーたべーす">データベース</primary><secondary sortas="ばっくあっぷ">バックアップ</secondary></indexterm><indexterm><primary sortas="ばっくあっぷ">バックアップ</primary></indexterm>
  </refpurpose>
 </refnamediv>

 <refsynopsisdiv>
  <cmdsynopsis>
   <command>pg_dump</command>
   <group> <arg>-a</arg> <arg>-s</arg> </group>
   <arg>-b</arg>
   <arg>-c</arg>
   <arg>-C</arg>
   <group> <arg>-d</arg> <arg>-D</arg> </group>
   <arg>-f <replaceable>file</replaceable></arg> 
   <arg>-F <replaceable>format</replaceable></arg>
   <arg>-i</arg>
   <group> <arg>-n</arg> <arg>-N</arg> </group>
   <arg>-o</arg>
   <arg>-O</arg>
   <arg>-R</arg>
   <arg>-S</arg>
   <arg>-t <replaceable>table</replaceable></arg>
   <arg>-v</arg>
   <arg>-x</arg>
   <arg>-Z <replaceable>0...9</replaceable></arg>
   <arg>-h <replaceable>host</replaceable></arg>
   <arg>-p <replaceable>port</replaceable></arg>
   <arg>-u</arg>
   <arg choice="plain"><replaceable>dbname</replaceable></arg>
  </cmdsynopsis>
 </refsynopsisdiv>


 <refsect1 id="pg-dump-description">
  <title>
   <!-- Description -->説明
  </title>

  <para>
   <!-- <command>pg_dump</command> is a utility for dumping out a 
   <productname>Postgres</productname> database into a script or archive 
   file containing query commands. The script files are in text format 
   and can be used to reconstruct the database, even on other machines 
   and other architectures.
   The archive files, new with version 7.1, contain enough information for 
   <xref linkend="app-pgrestore"> to rebuild the database, but also
   allow <command>pg_restore</command> to be selective about what is restored, 
   or even to reorder the items prior to being restored. The archive files are
   also designed to be portable across architectures. -->

   <command>pg_dump</command>は、<productname>Postgres</productname>データベースを、問い合わせコマンドを含むスクリプトかアーカイブファイルにダンプするためのものです。スクリプトファイルはテキストフォーマットで、他のマシンや他のアーキテクチャ上でさえも、データベースを再構築するのに使うことができます。バージョン7.1で新しくできたアーカイブファイルは<xref linkend="app-pgrestore">がデータベースを再構築するために十分な情報を持っていますが、<command>pg_restore</command>は何をリストアするか、さらに格納する前のアイテムを並べ替えることも可能です。アーカイブファイルはアーキテクチャを越えて移植できるように設計されています。
  </para>

  <para>
   <!-- <command>pg_dump</command> 
   will produce the queries necessary to re-generate all
   user-defined types, functions, tables, indices, aggregates, and
   operators.  In addition, all the data is copied out in text format so
   that it can be readily copied in again, as well as imported into tools
   for editing. -->

   <command>pg_dump</command>はすべてのユーザー定義型、関数、テーブル、インデックス、集約、演算子を再生成させるために必要な問い合わせを作ります。さらに、すべてのデータはテキストフォーマットでコピーされるので、編集用ツールに読み込むだけでなく、またいつでもデータベースに読み込むことができます。

  </para>

  <para>
   <!-- <command>pg_dump</command> 
   is useful for dumping out the contents of a database to move from one
   <productname>Postgres</productname> installation to another.  After running 
   <command>pg_dump</command>,
   one should examine the output for any warnings, especially
   in light of the limitations listed below. -->

   <command>pg_dump</command>は、データベースの中身を、ある<productname>Postgres</productname>から別のものへ移動するのに便利です。<command>pg_dump</command>を実行したら、特に下記に示す制限に関する警告が出力されていないか確かめてください。
 
  </para>

  <para>
   <!-- 
   When used with one of the alternate file formats and combined with 
   <command>pg_restore</command>, it provides a flexible archival 
   and transfer mechanism. <command>pg_dump</command> can be used 
   to backup an entire database, then <command>pg_restore</command> 
   can be used to examine the archive and/or select which parts of the 
   database are to be restored.
   See the <xref linkend="app-pgrestore"> documentation for details.
   -->
   代替ファイルフォーマットの1つと一緒に<command>pg_restore</command>と組み合わせて使われる場合、柔軟なアーカイブとトランスファーのメカニズムを提供します。<command>pg_dump</command>はデータベース全体をバックアップするために使うことができ、<command>pg_restore</command>はアーカイブを検査、あるいはデータベースのどの部分がリストアされるかを選択するために使われます。詳細は<xref linkend="app-pgrestore">を参照してください。

  </para>

  <refsect2 id="pg-dump-options">
   <title><!-- Options -->オプション</title>

   <para>
    <!-- <command>pg_dump</command> accepts the following command
    line arguments.  (Long option forms are only available on some platforms.)
    -->

    <command>pg_dump</command>は、下記のコマンドライン引数を受け付けます（長いオプションフォームは限られたプラットフォームでしか使うことができません）。
</para>

    <variablelist>
     <varlistentry>
      <term><replaceable class="parameter">dbname</replaceable></term>
      <listitem>
       <para>
	<!-- Specifies the name of the database to be extracted. -->
        抽出されるべきデータベースの名前を指定します。

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

     <varlistentry>
      <term>-a</term>
      <term>--data-only</term>
      <listitem>
       <para>
	<!-- Dump only the data, not the schema (definitions). -->
        データのみをダンプし、スキーマ（定義）はしません。

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

     <varlistentry>
      <term>-b</term>
      <term>--blobs</term>
      <listitem>
       <para>
 	<!-- Dump data and <acronym>BLOB</acronym> data. -->
        データと<acronym>BLOB</acronym>データをダンプします。
       </para>
      </listitem>
     </varlistentry>

     <varlistentry>
      <term>-c</term>
      <term>--clean</term>
      <listitem>
       <para>
        <!-- Dump commands to clean (drop) the schema prior to (the
        commands for) creating it. -->

        スキーマを作成する前に掃除（削除）するためのダンプコマンドです。

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

     <varlistentry>
      <term>-C</term>
      <term>--create</term>
      <listitem>
       <para>
	<!-- For plain text (script) output, include commands to create 
        the database itself. -->

        プレーンテキスト（スクリプト）出力のために、データベース自身を作成するコマンドを含めます。

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

     <varlistentry>
      <term>-d</term>
      <term>--inserts</term>
      <listitem>
       <para>
	<!-- Dump data as proper <command>INSERT</command> commands (not
	<command>COPY</command>). This will make restoration very
	slow. -->

        データをふさわしい<command>INSERT</command>コマンド（<command>COPY</command>ではなく）としてダンプします。これはリストアをとても遅くします。

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

     <varlistentry>
      <term>-D</term>
      <term>--attribute-inserts</term>
      <listitem>
       <para>
        <!-- 
	Dump data as <command>INSERT</command> commands with explicit
	column names.  This will make restoration very slow. -->

        データを明示的にカラム名を付けた<command>INSERT</command>コマンドとしてダンプします。これはリストアをとても遅くします。

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

     <varlistentry>
      <term>-f <replaceable class="parameter">file</replaceable></term>
      <term>--file=<replaceable class="parameter">file</replaceable></term>
      <listitem>
       <para>
	<!-- Send output to the specified file. -->
        出力を指定されたファイルに送ります。
       </para>
      </listitem>
     </varlistentry>

     <varlistentry>
      <term>-F <replaceable class="parameter">format</replaceable></term>
      <term>--format=<replaceable class="parameter">format</replaceable></term>
      <listitem>
       <para>
	<!-- Format can be one of the following: -->
        フォーマットは以下のいずれかになります。
</para>

       <variablelist>
        <varlistentry>
         <term>p</term>
         <listitem>
          <para>
           <!-- output a plain text <acronym>SQL</acronym> script file (default)-->
           プレーンテキストの<acronym>SQL</acronym>スクリプトファイルを出力します（デフォルト）
          </para>
         </listitem>
        </varlistentry>

        <varlistentry>
         <term>t</term>
         <listitem>
          <para>
         <!-- 
         output a <filename>tar</filename> archive suitable for input into 
         <command>pg_restore</command>. Using this archive format 
         allows reordering and/or exclusion of schema elements 
         at the time the database is restored. It is also possible to limit 
         which data is reloaded at restore time. -->

         <command>pg_restore</command>への入力にふさわしい<filename>tar</filename>アーカイブを出力します。このアーカイブフォーマットの使用は、データベースがリストアされるときのスキーマ要素の削除もしくは並べ替えを可能にします。どのデータが格納時にリロードされるかを制限することも可能です。

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

        <varlistentry>
         <term>c</term>
         <listitem>
          <para>
         <!-- output a custom archive suitable for input into 
         <command>pg_restore</command>. This is the most flexible 
         format in that it allows reordering of data load as well 
         as schema elements. This format is also compressed by default.
         -->

         <command>pg_restore</command>への入力にふさわしいカスタムアーカイブを出力します。これは、スキーマ要素だけでなくデータロードの並べ替えも可能にします。このフォーマットもデフォルトで圧縮されます。

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

       </variablelist>

      </listitem>
     </varlistentry>

     <varlistentry>
      <term>-i</term>
      <term>--ignore-version</term>
      <listitem>
       <para>
        <!-- 
        Ignore version mismatch between <command>pg_dump</command>
	and the database server.  Since <command>pg_dump</command>
	knows a great deal about system catalogs, any given version of
	<command>pg_dump</command> is only intended to work with
	the corresponding release of the database server.  Use this option
	if you need to override the version check (and if
	<command>pg_dump</command> then fails, don't
	say you weren't warned). -->

        <command>pg_dump</command>とデータベースサーバーのバージョンのミスマッチを無視します。<command>pg_dump</command>はシステムカタログについて多くを知っているので、どのバージョンの<command>pg_dump</command>も対応するデータベースサーバーのリリースでのみ作動するように意図されています。もしバージョンチェックを無効にする必要がある場合にこのオプションを使います（<command>pg_dump</command>が失敗する可能性はもちろんあります）。

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

     <varlistentry>
      <term>-n</term>
      <term>--no-quotes</term>
      <listitem>
       <para>
        <!-- 
	Suppress double quotes around identifiers unless absolutely necessary.
	This may cause trouble loading this dumped data if there are reserved 
        words used for identifiers. 
	This was the default behavior for
	<command>pg_dump</command> prior to version 6.4. -->

        完全に必要でない限り、識別子を囲む二重引用符を抑えます。これは、もし識別子に予約語が使われていると、ダンプされたデータをロードするのに問題が発生するかもしれません。これはバージョン6.4以前では<command>pg_dump</command>のデフォルト動作でした。

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

     <varlistentry>
      <term>-N</term>
      <term>--quotes</term>
      <listitem>
       <para>
	<!-- Include double quotes around identifiers.
	This is the default. -->
        識別子を囲む二重引用符を含みます。これはデフォルトです。

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

     <varlistentry>
      <term>-o</term>
      <term>--oids</term>
      <listitem>
       <para>
        <!-- 
	Dump object identifiers (<acronym>OID</acronym>s) for every table.
        -->

        それぞれのテーブルのオブジェクト識別子（<acronym>OID</acronym>）をダンプします。

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

     <varlistentry>
      <term>-O</term>
      <term>--no-owner</term>
      <listitem>
       <para>
	<!-- In plain text output mode, do not set object ownership to
        match the original database. Typically,
        <command>pg_dump</command> issues
        (<command>psql</command>-specific) <command>&bsol;connect</command>
        statements to set ownership of schema elements. -->

        プレーンテキスト出力モードでは、元のデータベースに合うオブジェクト所有権を設定しないでください。典型的には、<command>pg_dump</command>はスキーマ要素に所有権を設定するために（<command>psql</command>特有の）<command>&bsol;connect</command>文を発行します。

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

     <varlistentry>
      <term>-R</term>
      <term>--no-reconnect</term>
      <listitem>
       <para>
        <!-- 
	In plain text output mode, prohibit <command>pg_dump</command> 
        from issuing any <command>&bsol;connect</command> statements. -->

        プレーンテキスト出力モードでは、<command>pg_dump</command>がどのような<command>&bsol;connect</command>文を発行することも禁止します。

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

     <varlistentry>
      <term>-s</term>
      <term>--schema-only</term>
      <listitem>
       <para>
	<!-- Dump only the schema (definitions), no data. -->
        スキーマ（定義）のみをダンプし、データはダンプしません。

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

     <varlistentry>
      <term>-S <replaceable class="parameter">username</replaceable></term>
      <term>--superuser=<replaceable class="parameter">username</replaceable></term>
      <listitem>
       <para>
        <!-- 
	Specify the superuser user name to use when disabling triggers and/or 
      setting ownership of schema elements. -->

        トリガを無効にする際、もしくはスキーマ要素の所有権を設定する際に使うために、スーパーユーザーのユーザー名を指定します。

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

     <varlistentry>
      <term>-t <replaceable class="parameter">table</replaceable></term>
      <term>--table=<replaceable class="parameter">table</replaceable></term>
      <listitem>
       <para>
        <!-- 
	Dump data for <replaceable class="parameter">table</replaceable> only.
        -->
        <replaceable class="parameter">table</replaceable>のデータのみをダンプします。

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

     <varlistentry>
      <term>-v</term>
      <term>--verbose</term>
      <listitem>
       <para>
	<!-- Specifies verbose mode. -->
        verboseモード（表示される情報量が多いモード）を指定します。
       </para>
      </listitem>
     </varlistentry>

     <varlistentry>
      <term>-x</term>
      <term>--no-acl</term>
      <listitem>
       <para>
        <!-- 
	Prevent dumping of ACLs (grant/revoke commands) and table ownership 
        information. -->

        ACL（grant/revokeコマンド）とテーブル所有権情報の格納を防ぎます。

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

     <varlistentry>
      <term>-Z <replaceable class="parameter">0..9</replaceable></term>
      <term>--compress=<replaceable class="parameter">0..9</replaceable></term>
      <listitem>
       <para>
        <!-- 
	Specify the compression level to use in archive formats that support 
      compression (currently only the custom archive format supports compression). -->
        圧縮をサポートするアーカイブフォーマットで使用するための圧縮レベルを指定します（現時点では、カスタムアーカイブフォーマットのみが圧縮をサポートしています）。

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


    </variablelist>

   <para>
    <!-- <command>pg_dump</command> also accepts 
    the following command line arguments for connection parameters: -->

    <command>pg_dump</command>はさらに、下記のコマンドライン引数を接続パラメータとして受け付けます。
</para>

    <variablelist>
     <varlistentry>
      <term>-h <replaceable class="parameter">host</replaceable></term>
      <term>--host=<replaceable class="parameter">host</replaceable></term>
      <listitem>
       <para>
	<!-- Specifies the host name of the machine on which the 
	<command>postmaster</command>
	is running.  If host begins with a slash, it is used 
	as the directory for the Unix domain socket. -->

        <command>postmaster</command>が起動しているマシンのホスト名を指定します。ホスト名がスラッシュで始まる場合、Unixドメインソケットのディレクトリとして使われます。

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

     <varlistentry>
      <term>-p <replaceable class="parameter">port</replaceable></term>
      <term>--port=<replaceable class="parameter">port</replaceable></term>
      <listitem>
       <para>
        <!-- 
	Specifies the Internet TCP/IP port or local Unix domain socket file 
	extension on which the <command>postmaster</command>
	is listening for connections.  The port number defaults to 5432,
	or the value of the <envar>PGPORT</envar>
	environment variable (if set). -->

        <command>postmaster</command>が接続を監視しているインターネットTCP/IPポート、もしくはローカルUnixドメインソケットファイル拡張を指定します。ポート番号のデフォルトは5432もしくは環境変数<envar>PGPORT</envar>の値（設定されている場合）になります。

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

     <varlistentry>
      <term>-u</term>
      <listitem>
       <para>
	<!-- Use password authentication. 
	Prompts for
	<replaceable class="parameter">username</replaceable>
	and <replaceable class="parameter">password</replaceable>.-->

        パスワード認証を使います。<!--<replaceable class="parameter">-->ユーザー名<!--</replaceable>-->と<replaceable class="parameter">パスワード</replaceable>の入力を促します。

       </para>
      </listitem>
     </varlistentry>
    </variablelist>
  </refsect2>

 </refsect1>


 <refsect1 id="app-pgdump-diagnostics">
  <title><!-- Diagnostics -->診断</title>

  <msgset>
   <msgentry>
    <msg>
     <msgmain>
      <msgtext>
<screen><computeroutput>
Connection to database 'template1' failed.
connectDBStart() -- connect() failed: No such file or directory
        Is the postmaster running locally
        and accepting connections on Unix socket '/tmp/.s.PGSQL.5432'?
</computeroutput></screen>
      </msgtext>
     </msgmain> 
    </msg>

    <msgexplan>
       <para>
	<!-- <command>pg_dump</command> could not attach to the 
	<command>postmaster</command> 
	process on the specified host and port.  If you see this message,
	ensure that the <command>postmaster</command> 
	is running on the proper host and that you have specified the proper
	port. -->

        <command>pg_dump</command>は、指定されたホストとポート上の<command>postmaster</command>プロセスに接続することができませんでした。もしこのメッセージが出たら、<command>postmaster</command>が正しいホスト上で起動していて正しいポートが指定されていることを確認してください。

       </para>
    </msgexplan>
   </msgentry>

   <msgentry>
    <msg>
     <msgmain>
      <msgtext>
<screen><computeroutput>
dumpSequence(<replaceable class="parameter">table</replaceable>): SELECT failed
</computeroutput></screen>
      </msgtext>
     </msgmain>
    </msg>

    <msgexplan>
       <para>
	<!-- You do not have permission to read the database.
	Contact your <productname>Postgres</productname> site administrator.
        -->

        データベースを読み込む権限を持っていません。<productname>Postgres</productname>サイトの管理者に連絡してください。

       </para>
    </msgexplan>
   </msgentry>
  </msgset>

   <note>
    <para>
     <!-- <command>pg_dump</command> internally executes
     <command>SELECT</command> statements. If you have problems running
     <command>pg_dump</command>,
     make sure you are able to select information from the database using, for
     example, <xref linkend="app-psql">. -->

     <command>pg_dump</command>は内部的に<command>SELECT</command>文を実行します。もし<command>pg_dump</command>の実行に問題がある場合は、<xref linkend="app-psql">などを使って、データベースから正しく情報を選択できることを確認してください。

    </para>
   </note>
 </refsect1>


 <refsect1 id="pg-dump-notes">
  <title><!-- Notes -->注釈</title>
  <para>
   <!-- <command>pg_dump</command> has a few limitations.
   The limitations mostly stem from
   difficulty in extracting certain meta-information from the system
   catalogs. -->

   <command>pg_dump</command>にはいくつかの制限があります。その制限は大体において、特定のメタ情報をシステムカタログから抽出することの難しさからくるものです。
</para>

   <itemizedlist>
    <listitem>
     <para>
      <!-- 
      When dumping a single table or as plain text, <command>pg_dump</command> 
      does not handle large objects. Large objects must be dumped in their
      entirety using one of the binary archive formats. -->

      1つのテーブルをプレーンテキストとしてダンプする場合、<command>pg_dump</command>はラージオブジェクトを扱いません。ラージオブジェクトは、バイナリアーカイブフォーマットのどれかを使って全体としてダンプされなければいけません。

     </para>
    </listitem>

    <listitem>
     <para>
      <!-- 
      When doing a data only dump, <command>pg_dump</command> emits queries
      to disable triggers on user tables before inserting the data and 
      queries to re-enable them after the data has been inserted.  If the 
      restore is stopped in the middle, the system catalogs may be left in 
      the wrong state. -->

      データのみのダンプを行う場合、<command>pg_dump</command>はデータを挿入する前にユーザーテーブルにトリガを無効とするための問い合わせを発し、そしてデータが挿入されるとそれらをまた可能にするための問い合わせを発します。もしリストアが途中で中止された場合、システムカタログは間違った状態で残されるかもしれません。

     </para>
    </listitem>

   </itemizedlist>
 </refsect1>

 <refsect1 id="pg-dump-examples">
  <title><!-- Examples -->例</title>

  <para>
   <!-- To dump a database: -->
   データベースをダンプするには以下のようにします。
</para>

<screen>
<prompt>$</prompt> <userinput>pg_dump mydb &gt; db.out</userinput>
</screen>

  <para>
   <!-- To reload this database: -->
   このデータベースをリロードするには以下のようにします。
</para>

<screen>
<prompt>$</prompt> <userinput>psql -d database -f db.out</userinput>
</screen>

  <para>
   <!-- To dump a database called mydb that contains
   <acronym>BLOB</acronym>s to a <filename>tar</filename> file: -->

   mydbという<acronym>BLOB</acronym>を含むデータベースを<filename>tar</filename>ファイルにダンプするには下記のようにします。
</para>

<screen>
<prompt>$</prompt> <userinput>pg_dump -Ft -b mydb &gt; db.tar</userinput>
</screen>

  <para>
   <!-- To reload this database (with <acronym>BLOB</acronym>s) to an
   existing database called newdb: -->

   このデータベース（<acronym>BLOB</acronym>を含むもの）を既存のnewdbと呼ばれるデータベースにリロードするには以下のようにします。
</para>

<screen>
<prompt>$</prompt> <userinput>pg_restore -d newdb db.tar</userinput>
</screen>

 </refsect1>

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

  <simplelist type="inline">
   <member><xref linkend="app-pg-dumpall"></member>
   <member><xref linkend="app-pgrestore"></member>
   <member><xref linkend="app-psql"></member>
   <member><citetitle><!-- PostgreSQL Administrator's Guide -->
   &admin-guide;</citetitle></member>
  </simplelist>
 </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:
-->
