2003-06-11 18:29:42 +02:00
|
|
|
<!-- $Header: /cvsroot/pgsql/doc/src/sgml/ref/pg_restore.sgml,v 1.39 2003/06/11 16:29:42 tgl Exp $ -->
|
2001-03-06 19:55:57 +01:00
|
|
|
|
2000-10-12 16:09:37 +02:00
|
|
|
<refentry id="APP-PGRESTORE">
|
|
|
|
<refmeta>
|
2002-04-21 21:02:39 +02:00
|
|
|
<refentrytitle>pg_restore</refentrytitle>
|
2000-12-26 00:15:27 +01:00
|
|
|
<manvolnum>1</manvolnum>
|
2000-10-12 16:09:37 +02:00
|
|
|
<refmiscinfo>Application</refmiscinfo>
|
|
|
|
</refmeta>
|
2001-03-06 19:55:57 +01:00
|
|
|
|
2000-10-12 16:09:37 +02:00
|
|
|
<refnamediv>
|
2001-03-06 19:55:57 +01:00
|
|
|
<refname>pg_restore</refname>
|
|
|
|
|
2000-10-12 16:09:37 +02:00
|
|
|
<refpurpose>
|
2001-09-03 14:57:50 +02:00
|
|
|
restore a <productname>PostgreSQL</productname> database from an archive file created by pg_dump
|
2000-10-12 16:09:37 +02:00
|
|
|
</refpurpose>
|
|
|
|
</refnamediv>
|
2001-03-06 19:55:57 +01:00
|
|
|
|
2000-10-12 16:09:37 +02:00
|
|
|
<refsynopsisdiv>
|
2001-03-06 19:55:57 +01:00
|
|
|
<cmdsynopsis>
|
|
|
|
<command>pg_restore</command>
|
2003-03-24 15:32:51 +01:00
|
|
|
<arg rep="repeat"><replaceable>option</replaceable></arg>
|
|
|
|
<arg><replaceable>filename</replaceable></arg>
|
2001-03-06 19:55:57 +01:00
|
|
|
</cmdsynopsis>
|
|
|
|
</refsynopsisdiv>
|
|
|
|
|
|
|
|
|
|
|
|
<refsect1 id="app-pgrestore-description">
|
2002-10-12 01:03:48 +02:00
|
|
|
<title>Description</title>
|
2001-03-06 19:55:57 +01:00
|
|
|
|
|
|
|
<para>
|
2002-10-12 01:03:48 +02:00
|
|
|
<application>pg_restore</application> is a utility for restoring a
|
2001-11-28 21:49:10 +01:00
|
|
|
<productname>PostgreSQL</productname> database from an archive
|
2001-08-22 22:23:24 +02:00
|
|
|
created by <xref linkend="app-pgdump"> in one of the non-plain-text
|
2003-03-24 15:32:51 +01:00
|
|
|
formats. It will issue the commands necessary to reconstruct the
|
|
|
|
database to the state it was in at the time it was saved. The
|
|
|
|
archive files also allow <application>pg_restore</application> to
|
|
|
|
be selective about what is restored, or even to reorder the items
|
|
|
|
prior to being restored. The archive files are designed to be
|
|
|
|
portable across architectures.
|
2001-03-06 19:55:57 +01:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2003-03-24 15:32:51 +01:00
|
|
|
<application>pg_restore</application> can operate in two modes: If
|
|
|
|
a database name is specified, the archive is restored directly into
|
|
|
|
the database. Large objects can only be restored by using a direct
|
|
|
|
database connection. Otherwise, a script containing the SQL
|
|
|
|
commands necessary to rebuild the database is created (and written
|
|
|
|
to a file or standard output), similar to the ones created by the
|
|
|
|
<application>pg_dump</application> plain text format. Some of the
|
|
|
|
options controlling the script output are therefore analogous to
|
2002-10-12 01:03:48 +02:00
|
|
|
<application>pg_dump</application> options.
|
2001-03-06 19:55:57 +01:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2002-10-12 01:03:48 +02:00
|
|
|
Obviously, <application>pg_restore</application> cannot restore information
|
2003-03-24 15:32:51 +01:00
|
|
|
that is not present in the archive file. For instance, if the
|
2001-08-22 22:23:24 +02:00
|
|
|
archive was made using the <quote>dump data as
|
2003-03-24 15:32:51 +01:00
|
|
|
<command>INSERT</command> commands</quote> option,
|
2002-10-12 01:03:48 +02:00
|
|
|
<application>pg_restore</application> will not be able to load the data
|
2001-08-22 22:23:24 +02:00
|
|
|
using <command>COPY</command> statements.
|
2001-03-06 19:55:57 +01:00
|
|
|
</para>
|
2002-10-12 01:03:48 +02:00
|
|
|
</refsect1>
|
2001-03-06 19:55:57 +01:00
|
|
|
|
2002-10-12 01:03:48 +02:00
|
|
|
<refsect1 id="app-pgrestore-options">
|
|
|
|
<title>Options</title>
|
2001-03-06 19:55:57 +01:00
|
|
|
|
2000-10-12 16:09:37 +02:00
|
|
|
<para>
|
2003-03-24 15:32:51 +01:00
|
|
|
<application>pg_restore</application> accepts the following command
|
2003-01-06 19:53:25 +01:00
|
|
|
line arguments.
|
2000-10-12 16:09:37 +02:00
|
|
|
|
|
|
|
<variablelist>
|
|
|
|
<varlistentry>
|
2003-03-24 15:32:51 +01:00
|
|
|
<term><replaceable class="parameter">filename</replaceable></term>
|
2000-10-12 16:09:37 +02:00
|
|
|
<listitem>
|
|
|
|
<para>
|
2000-10-20 15:44:39 +02:00
|
|
|
Specifies the location of the archive file to be restored.
|
2001-11-27 00:09:21 +01:00
|
|
|
If not specified, the standard input is used.
|
2000-10-12 16:09:37 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
</varlistentry>
|
|
|
|
|
|
|
|
<varlistentry>
|
2002-03-22 20:20:45 +01:00
|
|
|
<term><option>-a</option></term>
|
|
|
|
<term><option>--data-only</option></term>
|
2000-10-12 16:09:37 +02:00
|
|
|
<listitem>
|
|
|
|
<para>
|
2003-03-24 15:32:51 +01:00
|
|
|
Restore only the data, not the schema (data definitions).
|
2000-10-12 16:09:37 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
</varlistentry>
|
|
|
|
|
2000-10-20 15:44:39 +02:00
|
|
|
<varlistentry>
|
2002-03-22 20:20:45 +01:00
|
|
|
<term><option>-c</option></term>
|
|
|
|
<term><option>--clean</option></term>
|
2000-10-20 15:44:39 +02:00
|
|
|
<listitem>
|
|
|
|
<para>
|
2001-10-24 00:11:22 +02:00
|
|
|
Clean (drop) database objects before recreating them.
|
2000-10-20 15:44:39 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
</varlistentry>
|
|
|
|
|
|
|
|
<varlistentry>
|
2002-03-22 20:20:45 +01:00
|
|
|
<term><option>-C</option></term>
|
|
|
|
<term><option>--create</option></term>
|
2000-10-20 15:44:39 +02:00
|
|
|
<listitem>
|
|
|
|
<para>
|
2002-10-12 01:03:48 +02:00
|
|
|
Create the database before restoring into it. (When this
|
2003-03-24 15:32:51 +01:00
|
|
|
option is used, the database named with <option>-d</option> is
|
2002-10-12 01:03:48 +02:00
|
|
|
used only to issue the initial <literal>CREATE DATABASE</>
|
|
|
|
command. All data is restored into the database name that
|
|
|
|
appears in the archive.)
|
2000-10-20 15:44:39 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
</varlistentry>
|
|
|
|
|
2000-10-12 16:09:37 +02:00
|
|
|
<varlistentry>
|
2002-03-22 20:20:45 +01:00
|
|
|
<term><option>-d <replaceable class="parameter">dbname</replaceable></option></term>
|
|
|
|
<term><option>--dbname=<replaceable class="parameter">dbname</replaceable></option></term>
|
2000-10-12 16:09:37 +02:00
|
|
|
<listitem>
|
|
|
|
<para>
|
2002-10-12 01:03:48 +02:00
|
|
|
Connect to database <replaceable
|
|
|
|
class="parameter">dbname</replaceable> and restore directly
|
2003-03-24 15:32:51 +01:00
|
|
|
into the database.
|
2000-10-20 15:44:39 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
</varlistentry>
|
|
|
|
|
|
|
|
<varlistentry>
|
2002-03-22 20:20:45 +01:00
|
|
|
<term><option>-f <replaceable>filename</replaceable></option></term>
|
|
|
|
<term><option>--file=<replaceable>filename</replaceable></option></term>
|
2000-10-20 15:44:39 +02:00
|
|
|
<listitem>
|
|
|
|
<para>
|
2001-10-24 00:11:22 +02:00
|
|
|
Specify output file for generated script, or for the listing
|
2002-10-12 01:03:48 +02:00
|
|
|
when used with <option>-l</option>. Default is the standard
|
|
|
|
output.
|
2000-10-20 15:44:39 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
</varlistentry>
|
|
|
|
|
|
|
|
<varlistentry>
|
2002-03-22 20:20:45 +01:00
|
|
|
<term><option>-F <replaceable class="parameter">format</replaceable></option></term>
|
|
|
|
<term><option>--format=<replaceable class="parameter">format</replaceable></option></term>
|
2000-10-20 15:44:39 +02:00
|
|
|
<listitem>
|
|
|
|
<para>
|
2002-10-12 01:03:48 +02:00
|
|
|
Specify format of the archive. It is not necessary to specify
|
|
|
|
the format, since <application>pg_restore</application> will
|
|
|
|
determine the format automatically. If specified, it can be
|
|
|
|
one of the following:
|
2000-10-20 15:44:39 +02:00
|
|
|
|
|
|
|
<variablelist>
|
|
|
|
<varlistentry>
|
2003-03-24 15:32:51 +01:00
|
|
|
<term><literal>t</></term>
|
2000-10-20 15:44:39 +02:00
|
|
|
<listitem>
|
|
|
|
<para>
|
2003-03-24 15:32:51 +01:00
|
|
|
The archive is a <command>tar</command> archive. Using this
|
2002-10-12 01:03:48 +02:00
|
|
|
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.
|
2000-10-20 15:44:39 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
</varlistentry>
|
|
|
|
|
|
|
|
<varlistentry>
|
2003-03-24 15:32:51 +01:00
|
|
|
<term><literal>c</></term>
|
2000-10-20 15:44:39 +02:00
|
|
|
<listitem>
|
|
|
|
<para>
|
2003-03-24 15:32:51 +01:00
|
|
|
The archive is in the custom format of
|
2002-10-12 01:03:48 +02:00
|
|
|
<application>pg_dump</application>. 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.
|
2000-10-20 15:44:39 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
</varlistentry>
|
|
|
|
</variablelist>
|
2003-03-24 15:32:51 +01:00
|
|
|
</para>
|
2000-10-20 15:44:39 +02:00
|
|
|
</listitem>
|
|
|
|
</varlistentry>
|
|
|
|
|
|
|
|
<varlistentry>
|
2002-07-13 02:55:53 +02:00
|
|
|
<term><option>-i</option></term>
|
|
|
|
<term><option>--ignore-version</option></term>
|
2000-10-20 15:44:39 +02:00
|
|
|
<listitem>
|
|
|
|
<para>
|
2002-07-10 04:57:31 +02:00
|
|
|
Ignore database version checks.
|
2000-10-20 15:44:39 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
</varlistentry>
|
|
|
|
|
2002-07-13 02:55:53 +02:00
|
|
|
<varlistentry>
|
|
|
|
<term><option>-I <replaceable class="parameter">index</replaceable></option></term>
|
|
|
|
<term><option>--index=<replaceable class="parameter">index</replaceable></option></term>
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2003-03-24 15:32:51 +01:00
|
|
|
Restore definition of named index only.
|
2002-07-13 02:55:53 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
</varlistentry>
|
|
|
|
|
2000-10-20 15:44:39 +02:00
|
|
|
<varlistentry>
|
2002-03-22 20:20:45 +01:00
|
|
|
<term><option>-l</option></term>
|
|
|
|
<term><option>--list</option></term>
|
2000-10-20 15:44:39 +02:00
|
|
|
<listitem>
|
|
|
|
<para>
|
2003-03-24 15:32:51 +01:00
|
|
|
List the contents of the archive. The output of this operation
|
2002-10-12 01:03:48 +02:00
|
|
|
can be used with the <option>-L</option> option to restrict
|
|
|
|
and reorder the items that are restored.
|
2000-10-12 16:09:37 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
</varlistentry>
|
|
|
|
|
2001-03-06 06:22:50 +01:00
|
|
|
<varlistentry>
|
2002-03-22 20:20:45 +01:00
|
|
|
<term><option>-L <replaceable class="parameter">list-file</replaceable></option></term>
|
|
|
|
<term><option>--use-list=<replaceable class="parameter">list-file</replaceable></option></term>
|
2001-03-06 06:22:50 +01:00
|
|
|
<listitem>
|
|
|
|
<para>
|
2002-10-12 01:03:48 +02:00
|
|
|
Restore elements in <REPLACEABLE
|
|
|
|
CLASS="PARAMETER">list-file</REPLACEABLE> only, and in the
|
|
|
|
order they appear in the file. Lines can be moved and may also
|
|
|
|
be commented out by placing a <literal>;</literal> at the
|
2003-03-24 15:32:51 +01:00
|
|
|
start of the line. (See below for examples.)
|
2001-03-06 06:22:50 +01:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
</varlistentry>
|
|
|
|
|
2000-10-12 16:09:37 +02:00
|
|
|
<varlistentry>
|
2002-03-22 20:20:45 +01:00
|
|
|
<term><option>-N</option></term>
|
|
|
|
<term><option>--orig-order</option></term>
|
2000-10-12 16:09:37 +02:00
|
|
|
<listitem>
|
2000-10-20 15:44:39 +02:00
|
|
|
<para>
|
2002-10-12 01:03:48 +02:00
|
|
|
Restore items in the original dump order. By default
|
|
|
|
<application>pg_dump</application> will dump items in an order
|
|
|
|
convenient to <application>pg_dump</application>, then save the
|
|
|
|
archive in a modified OID order. This option overrides the OID
|
|
|
|
ordering.
|
2000-10-12 16:09:37 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
</varlistentry>
|
|
|
|
|
|
|
|
<varlistentry>
|
2002-03-22 20:20:45 +01:00
|
|
|
<term><option>-o</option></term>
|
|
|
|
<term><option>--oid-order</option></term>
|
2000-10-12 16:09:37 +02:00
|
|
|
<listitem>
|
|
|
|
<para>
|
2002-10-12 01:03:48 +02:00
|
|
|
Restore items in the OID order. By default
|
|
|
|
<application>pg_dump</application> will dump items in an order
|
|
|
|
convenient to <application>pg_dump</application>, then save the
|
|
|
|
archive in a modified OID order. This option enforces strict
|
|
|
|
OID ordering.
|
2000-10-12 16:09:37 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
</varlistentry>
|
|
|
|
|
|
|
|
<varlistentry>
|
2002-03-22 20:20:45 +01:00
|
|
|
<term><option>-O</option></term>
|
|
|
|
<term><option>--no-owner</option></term>
|
2000-10-12 16:09:37 +02:00
|
|
|
<listitem>
|
|
|
|
<para>
|
2002-10-12 01:03:48 +02:00
|
|
|
Prevent any attempt to restore original object
|
|
|
|
ownership. Objects will be owned by the user name used to
|
2003-03-24 15:32:51 +01:00
|
|
|
attach to the database. See also under <option>-R</option> and
|
|
|
|
<option>-X use-set-session-authorization</option>.
|
2000-10-20 15:44:39 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
</varlistentry>
|
|
|
|
|
|
|
|
<varlistentry>
|
2002-07-04 05:04:55 +02:00
|
|
|
<term><option>-P <replaceable class="parameter">function-name(argtype [, ...])</replaceable></option></term>
|
|
|
|
<term><option>--function=<replaceable class="parameter">function-name(argtype [, ...])</replaceable></option></term>
|
2000-10-20 15:44:39 +02:00
|
|
|
<listitem>
|
|
|
|
<para>
|
2003-06-11 18:29:42 +02:00
|
|
|
Restore the named function only. Be careful to spell the function
|
|
|
|
name and arguments exactly as they appear in the dump file's table
|
|
|
|
of contents.
|
2000-10-20 15:44:39 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
</varlistentry>
|
|
|
|
|
|
|
|
<varlistentry>
|
2002-03-22 20:20:45 +01:00
|
|
|
<term><option>-r</option></term>
|
|
|
|
<term><option>--rearrange</option></term>
|
2000-10-20 15:44:39 +02:00
|
|
|
<listitem>
|
|
|
|
<para>
|
2002-10-12 01:03:48 +02:00
|
|
|
Restore items in modified OID order. By default
|
|
|
|
<application>pg_dump</application> will dump items in an order
|
|
|
|
convenient to <application>pg_dump</application>, then save the
|
|
|
|
archive in a modified OID order. Most objects will be restored
|
|
|
|
in OID order, but some things (e.g., rules and indexes) will
|
|
|
|
be restored at the end of the process irrespective of their
|
|
|
|
OIDs. This option is the default.
|
2000-10-20 15:44:39 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
</varlistentry>
|
|
|
|
|
|
|
|
<varlistentry>
|
2002-03-22 20:20:45 +01:00
|
|
|
<term><option>-R</option></term>
|
|
|
|
<term><option>--no-reconnect</option></term>
|
2000-10-20 15:44:39 +02:00
|
|
|
<listitem>
|
|
|
|
<para>
|
2002-10-12 01:03:48 +02:00
|
|
|
While restoring an archive, <application>pg_restore</application>
|
2001-08-22 22:23:24 +02:00
|
|
|
typically has to reconnect to the database several times with
|
|
|
|
different user names to set the correct ownership of the
|
2001-10-24 00:11:22 +02:00
|
|
|
created objects. If this is undesirable (e.g., because manual
|
2001-08-22 22:23:24 +02:00
|
|
|
interaction (passwords) would be necessary for each
|
|
|
|
reconnection), this option prevents
|
2002-10-12 01:03:48 +02:00
|
|
|
<application>pg_restore</application> from issuing any reconnection
|
2001-08-22 22:23:24 +02:00
|
|
|
requests. (A connection request while in plain text mode, not
|
|
|
|
connected to a database, is made by putting out a <xref
|
|
|
|
linkend="app-psql"> <command>\connect</command> command.)
|
|
|
|
However, this option is a rather blunt instrument because it
|
2002-10-12 01:03:48 +02:00
|
|
|
makes <application>pg_restore</application> lose all object ownership
|
2001-08-22 22:23:24 +02:00
|
|
|
information, <emphasis>unless</emphasis> you use the
|
|
|
|
<option>-X use-set-session-authorization</option> option.
|
2000-10-20 15:44:39 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
</varlistentry>
|
|
|
|
|
|
|
|
<varlistentry>
|
2002-03-22 20:20:45 +01:00
|
|
|
<term><option>-s</option></term>
|
|
|
|
<term><option>--schema-only</option></term>
|
2000-10-20 15:44:39 +02:00
|
|
|
<listitem>
|
|
|
|
<para>
|
2003-06-11 18:29:42 +02:00
|
|
|
Restore only the schema (data definitions), not the data.
|
2003-03-24 15:32:51 +01:00
|
|
|
Sequence values will be reset.
|
2000-10-12 16:09:37 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
</varlistentry>
|
2000-10-20 15:44:39 +02:00
|
|
|
|
|
|
|
<varlistentry>
|
2002-03-22 20:20:45 +01:00
|
|
|
<term><option>-S <replaceable class="parameter">username</replaceable></option></term>
|
|
|
|
<term><option>--superuser=<replaceable class="parameter">username</replaceable></option></term>
|
2000-10-20 15:44:39 +02:00
|
|
|
<listitem>
|
|
|
|
<para>
|
2002-05-11 00:36:27 +02:00
|
|
|
Specify the superuser user name to use when disabling triggers.
|
|
|
|
This is only relevant if <option>--disable-triggers</> is used.
|
2000-10-20 15:44:39 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
</varlistentry>
|
|
|
|
|
|
|
|
<varlistentry>
|
2002-03-22 20:20:45 +01:00
|
|
|
<term><option>-t <replaceable class="parameter">table</replaceable></option></term>
|
|
|
|
<term><option>--table=<replaceable class="parameter">table</replaceable></option></term>
|
2000-10-20 15:44:39 +02:00
|
|
|
<listitem>
|
|
|
|
<para>
|
2003-03-24 15:32:51 +01:00
|
|
|
Restore definition and/or data of named table only.
|
2000-10-20 15:44:39 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
</varlistentry>
|
|
|
|
|
|
|
|
<varlistentry>
|
2002-03-22 20:20:45 +01:00
|
|
|
<term><option>-T <replaceable class="parameter">trigger</replaceable></option></term>
|
|
|
|
<term><option>--trigger=<replaceable class="parameter">trigger</replaceable></option></term>
|
2000-10-20 15:44:39 +02:00
|
|
|
<listitem>
|
|
|
|
<para>
|
2003-03-24 15:32:51 +01:00
|
|
|
Restore named trigger only.
|
2000-10-20 15:44:39 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
</varlistentry>
|
|
|
|
|
2000-10-12 16:09:37 +02:00
|
|
|
<varlistentry>
|
2002-03-22 20:20:45 +01:00
|
|
|
<term><option>-v</option></term>
|
|
|
|
<term><option>--verbose</option></term>
|
2000-10-12 16:09:37 +02:00
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Specifies verbose mode.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
</varlistentry>
|
|
|
|
|
|
|
|
<varlistentry>
|
2002-03-22 20:20:45 +01:00
|
|
|
<term><option>-x</option></term>
|
|
|
|
<term><option>--no-privileges</option></term>
|
|
|
|
<term><option>--no-acl</option></term>
|
2000-10-12 16:09:37 +02:00
|
|
|
<listitem>
|
|
|
|
<para>
|
2001-08-12 21:02:39 +02:00
|
|
|
Prevent restoration of access privileges (grant/revoke commands).
|
2000-10-12 16:09:37 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
</varlistentry>
|
|
|
|
|
2001-08-22 22:23:24 +02:00
|
|
|
<varlistentry>
|
2002-03-22 20:20:45 +01:00
|
|
|
<term><option>-X use-set-session-authorization</option></term>
|
|
|
|
<term><option>--use-set-session-authorization</option></term>
|
2001-08-22 22:23:24 +02:00
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Normally, if restoring an archive requires altering the
|
|
|
|
current database user (e.g., to set correct object
|
2001-10-24 00:11:22 +02:00
|
|
|
ownerships), a new connection to the database must be opened,
|
2001-08-22 22:23:24 +02:00
|
|
|
which might require manual interaction (e.g., passwords). If
|
2001-11-28 21:49:10 +01:00
|
|
|
you use the <option>-X use-set-session-authorization</option> option,
|
2002-10-12 01:03:48 +02:00
|
|
|
then <application>pg_restore</application> will instead use the <xref
|
2002-11-22 00:34:43 +01:00
|
|
|
linkend="sql-set-session-authorization" endterm="sql-set-session-authorization-title"> command. This has
|
2001-08-22 22:23:24 +02:00
|
|
|
the same effect, but it requires that the user restoring the
|
|
|
|
archive is a database superuser. This option effectively
|
|
|
|
overrides the <option>-R</option> option.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
</varlistentry>
|
|
|
|
|
2002-05-11 00:36:27 +02:00
|
|
|
<varlistentry>
|
|
|
|
<term><option>-X disable-triggers</></term>
|
|
|
|
<term><option>--disable-triggers</></term>
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
This option is only relevant when performing a data-only restore.
|
2002-10-12 01:03:48 +02:00
|
|
|
It instructs <application>pg_restore</application> to execute commands
|
2002-05-11 00:36:27 +02:00
|
|
|
to temporarily disable triggers on the target tables while
|
|
|
|
the data is reloaded. Use this if you have referential
|
|
|
|
integrity checks or other triggers on the tables that you
|
|
|
|
do not want to invoke during data reload.
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2002-11-15 04:11:18 +01:00
|
|
|
Presently, the commands emitted for
|
|
|
|
<option>--disable-triggers</> must be done as superuser. So, you
|
|
|
|
should also specify a superuser name with <option>-S</>, or
|
|
|
|
preferably specify <option>--use-set-session-authorization</> and
|
|
|
|
run <application>pg_restore</application> as a
|
|
|
|
<productname>PostgreSQL</> superuser.
|
2002-05-11 00:36:27 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
</varlistentry>
|
|
|
|
|
2000-10-12 16:09:37 +02:00
|
|
|
</variablelist>
|
|
|
|
</para>
|
2001-03-06 19:55:57 +01:00
|
|
|
|
2000-10-12 16:09:37 +02:00
|
|
|
<para>
|
2003-03-24 15:32:51 +01:00
|
|
|
<application>pg_restore</application> also accepts
|
2000-10-12 16:09:37 +02:00
|
|
|
the following command line arguments for connection parameters:
|
|
|
|
|
|
|
|
<variablelist>
|
|
|
|
<varlistentry>
|
2002-03-22 20:20:45 +01:00
|
|
|
<term><option>-h <replaceable class="parameter">host</replaceable></option></term>
|
|
|
|
<term><option>--host=<replaceable class="parameter">host</replaceable></option></term>
|
2000-10-12 16:09:37 +02:00
|
|
|
<listitem>
|
|
|
|
<para>
|
2002-10-12 01:03:48 +02:00
|
|
|
Specifies the host name of the machine on which the server is
|
2003-03-24 15:32:51 +01:00
|
|
|
running. If the value begins with a slash, it is used as the
|
|
|
|
directory for the Unix domain socket. The default is taken
|
|
|
|
from the <envar>PGHOST</envar> environment variable, if set,
|
|
|
|
else a Unix domain socket connection is attempted.
|
2000-10-12 16:09:37 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
</varlistentry>
|
|
|
|
|
|
|
|
<varlistentry>
|
2002-03-22 20:20:45 +01:00
|
|
|
<term><option>-p <replaceable class="parameter">port</replaceable></option></term>
|
|
|
|
<term><option>--port=<replaceable class="parameter">port</replaceable></option></term>
|
2000-10-12 16:09:37 +02:00
|
|
|
<listitem>
|
|
|
|
<para>
|
2003-03-24 15:32:51 +01:00
|
|
|
Specifies the TCP port or local Unix domain socket file
|
|
|
|
extension on which the server is listening for connections.
|
|
|
|
Defaults to the <envar>PGPORT</envar> environment variable, if
|
|
|
|
set, or a compiled-in default.
|
|
|
|
</para>
|
2000-10-12 16:09:37 +02:00
|
|
|
</listitem>
|
|
|
|
</varlistentry>
|
|
|
|
|
2001-03-06 19:55:57 +01:00
|
|
|
<varlistentry>
|
2002-03-22 20:20:45 +01:00
|
|
|
<term><option>-U <replaceable>username</replaceable></option></term>
|
2001-03-06 19:55:57 +01:00
|
|
|
<listitem>
|
|
|
|
<para>
|
2002-08-10 18:57:32 +02:00
|
|
|
Connect as the given user
|
2001-05-17 23:12:49 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
</varlistentry>
|
|
|
|
|
|
|
|
<varlistentry>
|
2002-03-22 20:20:45 +01:00
|
|
|
<term><option>-W</option></term>
|
2001-05-17 23:12:49 +02:00
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Force a password prompt. This should happen automatically if
|
|
|
|
the server requires password authentication.
|
2001-03-06 19:55:57 +01:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
</varlistentry>
|
2000-10-12 16:09:37 +02:00
|
|
|
</variablelist>
|
|
|
|
</para>
|
2001-03-06 19:55:57 +01:00
|
|
|
</refsect1>
|
2000-10-12 16:09:37 +02:00
|
|
|
|
2001-03-06 19:55:57 +01:00
|
|
|
|
2002-07-28 17:22:21 +02:00
|
|
|
<refsect1>
|
|
|
|
<title>Environment</title>
|
|
|
|
|
|
|
|
<variablelist>
|
|
|
|
<varlistentry>
|
|
|
|
<term><envar>PGHOST</envar></term>
|
|
|
|
<term><envar>PGPORT</envar></term>
|
|
|
|
<term><envar>PGUSER</envar></term>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2003-03-24 15:32:51 +01:00
|
|
|
Default connection parameters
|
2002-07-28 17:22:21 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
</varlistentry>
|
|
|
|
</variablelist>
|
|
|
|
</refsect1>
|
|
|
|
|
|
|
|
|
2001-03-06 19:55:57 +01:00
|
|
|
<refsect1 id="app-pgrestore-diagnostics">
|
|
|
|
<title>Diagnostics</title>
|
|
|
|
|
2003-03-24 15:32:51 +01:00
|
|
|
<para>
|
|
|
|
When a direct database connection is specified using the
|
|
|
|
<option>-d</option> option, <application>pg_restore</application>
|
|
|
|
internally executes <acronym>SQL</acronym> statements. If you have
|
|
|
|
problems running <application>pg_restore</application>, make sure
|
|
|
|
you are able to select information from the database using, for
|
|
|
|
example, <application>psql</application>.
|
|
|
|
</para>
|
2000-10-12 16:09:37 +02:00
|
|
|
</refsect1>
|
|
|
|
|
2001-03-06 19:55:57 +01:00
|
|
|
|
|
|
|
<refsect1 id="app-pgrestore-notes">
|
2002-10-12 01:03:48 +02:00
|
|
|
<title>Notes</title>
|
2001-03-06 19:55:57 +01:00
|
|
|
|
2002-02-11 01:14:10 +01:00
|
|
|
<para>
|
2002-10-12 01:03:48 +02:00
|
|
|
If your installation has any local additions to the
|
|
|
|
<literal>template1</> database, be careful to load the output of
|
|
|
|
<application>pg_restore</application> into a truly empty database;
|
|
|
|
otherwise you are likely to get errors due to duplicate definitions
|
|
|
|
of the added objects. To make an empty database without any local
|
2003-03-24 15:32:51 +01:00
|
|
|
additions, copy from <literal>template0</> not <literal>template1</>, for example:
|
2002-02-11 01:14:10 +01:00
|
|
|
<programlisting>
|
2003-03-24 15:32:51 +01:00
|
|
|
CREATE DATABASE foo WITH TEMPLATE template0;
|
2002-02-11 01:14:10 +01:00
|
|
|
</programlisting>
|
|
|
|
</para>
|
|
|
|
|
2000-10-12 16:09:37 +02:00
|
|
|
<para>
|
2002-10-12 01:03:48 +02:00
|
|
|
The limitations of <application>pg_restore</application> are detailed below.
|
2000-10-12 16:09:37 +02:00
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2003-03-24 15:32:51 +01:00
|
|
|
When restoring data to a pre-existing table and the option
|
|
|
|
<option>--disable-triggers</> is used,
|
|
|
|
<application>pg_restore</application> emits commands
|
|
|
|
to disable triggers on user tables before inserting the data then emits commands to
|
2000-10-20 15:44:39 +02:00
|
|
|
re-enable them after the data has been inserted. If the restore is stopped in the
|
2000-10-12 16:09:37 +02:00
|
|
|
middle, the system catalogs may be left in the wrong state.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2002-10-12 01:03:48 +02:00
|
|
|
<application>pg_restore</application> will not restore large objects for a single table. If
|
2001-09-21 23:58:30 +02:00
|
|
|
an archive contains large objects, then all large objects will be restored.
|
2000-10-12 16:09:37 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
</para>
|
2001-03-06 19:55:57 +01:00
|
|
|
|
|
|
|
<para>
|
2002-10-12 01:03:48 +02:00
|
|
|
See also the <xref linkend="app-pgdump"> documentation for details on
|
|
|
|
limitations of <application>pg_dump</application>.
|
2001-03-06 19:55:57 +01:00
|
|
|
</para>
|
2003-03-18 01:02:11 +01:00
|
|
|
|
|
|
|
<para>
|
|
|
|
Once restored, it is wise to run <command>ANALYZE</> on each
|
2003-06-11 18:29:42 +02:00
|
|
|
restored table so the optimizer has useful statistics.
|
2003-03-18 01:02:11 +01:00
|
|
|
</para>
|
|
|
|
|
2000-10-12 16:09:37 +02:00
|
|
|
</refsect1>
|
|
|
|
|
2001-03-06 19:55:57 +01:00
|
|
|
|
|
|
|
<refsect1 id="app-pgrestore-examples">
|
2002-10-12 01:03:48 +02:00
|
|
|
<title>Examples</title>
|
2000-10-12 16:09:37 +02:00
|
|
|
|
2000-10-20 15:44:39 +02:00
|
|
|
<para>
|
2001-09-21 23:58:30 +02:00
|
|
|
To dump a database called <literal>mydb</> that contains
|
|
|
|
large objects to a <filename>tar</filename> file:
|
2000-10-20 15:44:39 +02:00
|
|
|
|
2001-03-06 19:55:57 +01:00
|
|
|
<screen>
|
|
|
|
<prompt>$</prompt> <userinput>pg_dump -Ft -b mydb > db.tar</userinput>
|
|
|
|
</screen>
|
2000-10-20 15:44:39 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2001-09-21 23:58:30 +02:00
|
|
|
To reload this database (with large objects) to an
|
|
|
|
existing database called <literal>newdb</>:
|
2000-10-20 15:44:39 +02:00
|
|
|
|
2001-03-06 19:55:57 +01:00
|
|
|
<screen>
|
|
|
|
<prompt>$</prompt> <userinput>pg_restore -d newdb db.tar</userinput>
|
2001-10-24 00:11:22 +02:00
|
|
|
</screen>
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
To reorder database items, it is first necessary to dump the table of
|
|
|
|
contents of the archive:
|
|
|
|
<screen>
|
2001-11-19 04:58:25 +01:00
|
|
|
<prompt>$</prompt> <userinput>pg_restore -l archive.file > archive.list</userinput>
|
2001-10-24 00:11:22 +02:00
|
|
|
</screen>
|
|
|
|
The listing file consists of a header and one line for each item, e.g.,
|
|
|
|
<programlisting>
|
|
|
|
;
|
|
|
|
; Archive created at Fri Jul 28 22:28:36 2000
|
|
|
|
; dbname: birds
|
|
|
|
; TOC Entries: 74
|
|
|
|
; Compression: 0
|
|
|
|
; Dump Version: 1.4-0
|
|
|
|
; Format: CUSTOM
|
|
|
|
;
|
|
|
|
;
|
|
|
|
; Selected TOC Entries:
|
|
|
|
;
|
|
|
|
2; 145344 TABLE species postgres
|
|
|
|
3; 145344 ACL species
|
|
|
|
4; 145359 TABLE nt_header postgres
|
|
|
|
5; 145359 ACL nt_header
|
|
|
|
6; 145402 TABLE species_records postgres
|
|
|
|
7; 145402 ACL species_records
|
|
|
|
8; 145416 TABLE ss_old postgres
|
|
|
|
9; 145416 ACL ss_old
|
|
|
|
10; 145433 TABLE map_resolutions postgres
|
|
|
|
11; 145433 ACL map_resolutions
|
|
|
|
12; 145443 TABLE hs_old postgres
|
|
|
|
13; 145443 ACL hs_old
|
|
|
|
</programlisting>
|
2003-03-24 15:32:51 +01:00
|
|
|
Semicolons start a comment, and the numbers at the start of lines refer to the
|
2001-10-24 00:11:22 +02:00
|
|
|
internal archive ID assigned to each item.
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
Lines in the file can be commented out, deleted, and reordered. For example,
|
|
|
|
<programlisting>
|
|
|
|
10; 145433 TABLE map_resolutions postgres
|
|
|
|
;2; 145344 TABLE species postgres
|
|
|
|
;4; 145359 TABLE nt_header postgres
|
|
|
|
6; 145402 TABLE species_records postgres
|
|
|
|
;8; 145416 TABLE ss_old postgres
|
|
|
|
</programlisting>
|
2003-03-24 15:32:51 +01:00
|
|
|
could be used as input to <application>pg_restore</application> and would only restore
|
|
|
|
items 10 and 6, in that order:
|
2001-10-24 00:11:22 +02:00
|
|
|
<screen>
|
2001-11-19 04:58:25 +01:00
|
|
|
<prompt>$</prompt> <userinput>pg_restore -L archive.list archive.file</userinput>
|
2001-03-06 19:55:57 +01:00
|
|
|
</screen>
|
2000-10-20 15:44:39 +02:00
|
|
|
</para>
|
|
|
|
|
2001-03-06 19:55:57 +01:00
|
|
|
</refsect1>
|
|
|
|
|
2001-08-22 22:23:24 +02:00
|
|
|
<refsect1>
|
|
|
|
<title>History</title>
|
|
|
|
|
|
|
|
<para>
|
2002-10-12 01:03:48 +02:00
|
|
|
The <application>pg_restore</application> utility first appeared in
|
2001-08-22 22:23:24 +02:00
|
|
|
PostgreSQL 7.1.
|
|
|
|
</para>
|
|
|
|
</refsect1>
|
2001-03-06 19:55:57 +01:00
|
|
|
|
|
|
|
<refsect1>
|
|
|
|
<title>See Also</title>
|
2000-10-20 15:44:39 +02:00
|
|
|
|
2001-03-06 19:55:57 +01:00
|
|
|
<simplelist type="inline">
|
|
|
|
<member><xref linkend="app-pgdump"></member>
|
|
|
|
<member><xref linkend="app-pg-dumpall"></member>
|
|
|
|
<member><xref linkend="app-psql"></member>
|
|
|
|
</simplelist>
|
2000-10-12 16:09:37 +02:00
|
|
|
</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:
|
|
|
|
-->
|