<REFENTRY ID="APP-PG-DUMPALL">
<REFMETA>
<REFENTRYTITLE>
<application>pg_dumpall</application>
</REFENTRYTITLE>
<REFMISCINFO>Application</REFMISCINFO>
</REFMETA>
<REFNAMEDIV>
<REFNAME>
<application>pg_dumpall</application>
</REFNAME>
<REFPURPOSE>
Extract all <productname>Postgres</productname> databases into a script file
</REFPURPOSE>
<REFSYNOPSISDIV>
<REFSYNOPSISDIVINFO>
<DATE>1998-10-04</DATE>
</REFSYNOPSISDIVINFO>
<SYNOPSIS>
pg_dumpall
pg_dumpall [ -h <replaceable class="parameter">host</replaceable> ] [ -p <replaceable class="parameter">port</replaceable> ]
    [ -a ] [ -d ] [ -D ] [ -o ] [ -s ] [ -u ] [ -v ] [ -z ]
</SYNOPSIS>

<REFSECT2 ID="R2-APP-PG-DUMPALL-1">
<REFSECT2INFO>
<DATE>1998-10-04</DATE>
</REFSECT2INFO>
<TITLE>
Inputs
</TITLE>
<PARA>
<application>pg_dumpall</application> accepts the following command line arguments:

<variablelist>
<varlistentry>
<term>
-a
</term>
<listitem>
<para>
Dump out only the data, no schema (definitions).

<varlistentry>
<term>
-d
</term>
<listitem>
<para>
Dump data as proper insert strings.

<varlistentry>
<term>
-D
</term>
<listitem>
<para>
Dump data as inserts with attribute names

<varlistentry>
<term>
-n
</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.

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

<varlistentry>
<term>
-s
</term>
<listitem>
<para>
Dump out only the schema (definitions), no data.

<varlistentry>
<term>
-u
</term>
<listitem>
<para>
Use password authentication. Prompts for username and password.

<varlistentry>
<term>
-v
</term>
<listitem>
<para>
Specifies verbose mode

<varlistentry>
<term>
-z
</term>
<listitem>
<para>
Include ACLs (grant/revoke commands) and table ownership information.

</variablelist>

<para>
<application>pg_dumpall</application> also accepts 
the following command line arguments for connection parameters:

<variablelist>
<varlistentry>
<term>
-h <replaceable class="parameter">host</replaceable>
</term>
<listitem>
<para>
Specifies the hostname of the machine on which the 
<application>postmaster</application>
is running.  Defaults to using a local Unix domain socket
 rather than an IP connection..

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

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

</variablelist>

<REFSECT2 ID="R2-APP-PG-DUMPALL-2">
<REFSECT2INFO>
<DATE>1998-10-04</DATE>
</REFSECT2INFO>
<TITLE>
Outputs
</TITLE>
<PARA>
<application>pg_dumpall</application> will create a file or
 write to <filename>stdout</filename>.

<variablelist>
<varlistentry>
<term>
Connection to database 'template1' failed.
connectDB() failed: Is the postmaster running and accepting connections
 at 'UNIX Socket' on port '<replaceable class="parameter">port</replaceable>'?
<listitem>
<para>
<application>pg_dumpall</application> could not attach to the 
<application>postmaster</application> 
process on the specified host and port.  If you see this message,
ensure that the <application>postmaster</application> 
is running on the proper host and that you have specified the proper
port.  If your site uses an authentication system, ensure that you
have obtained the required authentication credentials.

<varlistentry>
<term>
Connection to database '<replaceable class="parameter">dbname</replaceable>' failed.
FATAL 1:  SetUserId: user '<replaceable class="parameter">username</replaceable>' is not in 'pg_shadow'
<listitem>
<para>
You do not have a valid entry in the relation <literal>pg_shadow</literal>
and and will not be allowed to access <productname>Postgres</productname>. 
Contact your <productname>Postgres</productname> administrator.

<varlistentry>
<term>
dumpSequence(<replaceable class="parameter">table</replaceable>): SELECT failed
<listitem>
<para>
You do not have permission to read the database.
Contact your <productname>Postgres</productname> site administrator.

</variablelist>

<note>
<para>
<application>pg_dumpall</application> internally executes
<command>SELECT</command> statements. If you have problems running
<application>pg_dumpall</application>,
make sure you are able to select information from the database using, for
example, <application>psql</application>.
</note>

<REFSECT1 ID="R1-APP-PG-DUMPALL-1">
<REFSECT1INFO>
<DATE>1998-10-04</DATE>
</REFSECT1INFO>
<TITLE>
Description
</TITLE>
<PARA>
<application>pg_dumpall</application>
is a utility for dumping out all Postgres databases into one file.
It also dumps the pg_shadow table, which is global to all databases.
<application>pg_dumpall</application> includes in this file the proper commands
to automatically create each dumped database before loading.

<para>
<application>pg_dumpall</application> takes all <application>pg_dump</application>
 options, but <option>-f</option>, <option>-t</option> and 
<replaceable class="parameter">dbname</replaceable>
should be omitted.

<para>
Refer to 
<xref linkend="app-pg-dump" endterm="pg-dump">
 for more information on this capability.

<REFSECT1 ID="R1-APP-PG-DUMPALL-2">
<REFSECT1INFO>
<DATE>1998-10-04</DATE>
</REFSECT1INFO>
<TITLE>
Usage
</TITLE>
<PARA>
To dump all databases:

<programlisting>
% pg_dumpall -o > db.out
</programlisting>

<tip>
<para>
You can use most <application>pg_dump</application> options
for <application>pg_dumpall</application>.
</tip>

<para>
To reload this database:

<programlisting>
psql -e template1 < db.out
</programlisting>

<tip>
<para>
You can use most <application>psql</application> options
when reloading.
</tip>

</REFENTRY>
