mirror of
https://github.com/postgres/postgres.git
synced 2025-07-28 23:42:10 +03:00
Non text modes for pg_dumpall, correspondingly change pg_restore
pg_dumpall acquires a new -F/--format option, with the same meanings as pg_dump. The default is p, meaning plain text. For any other value, a directory is created containing two files, globals.data and map.dat. The first contains SQL for restoring the global data, and the second contains a map from oids to database names. It will also contain a subdirectory called databases, inside which it will create archives in the specified format, named using the database oids. In these casess the -f argument is required. If pg_restore encounters a directory containing globals.dat, and no toc.dat, it restores the global settings and then restores each database. pg_restore acquires two new options: -g/--globals-only which suppresses restoration of any databases, and --exclude-database which inhibits restoration of particualr database(s) in the same way the same option works in pg_dumpall. Author: Mahendra Singh Thalor <mahi6run@gmail.com> Co-authored-by: Andrew Dunstan <andrew@dunslane.net> Reviewed-by: jian he <jian.universality@gmail.com> Reviewed-by: Srinath Reddy <srinath2133@gmail.com> Reviewed-by: Álvaro Herrera <alvherre@alvh.no-ip.org> Discussion: https://postgr.es/m/cb103623-8ee6-4ba5-a2c9-f32e3a4933fa@dunslane.net
This commit is contained in:
@ -16,7 +16,7 @@ PostgreSQL documentation
|
||||
|
||||
<refnamediv>
|
||||
<refname>pg_dumpall</refname>
|
||||
<refpurpose>extract a <productname>PostgreSQL</productname> database cluster into a script file</refpurpose>
|
||||
<refpurpose>extract a <productname>PostgreSQL</productname> database cluster using a specified dump format</refpurpose>
|
||||
</refnamediv>
|
||||
|
||||
<refsynopsisdiv>
|
||||
@ -33,7 +33,7 @@ PostgreSQL documentation
|
||||
<para>
|
||||
<application>pg_dumpall</application> is a utility for writing out
|
||||
(<quote>dumping</quote>) all <productname>PostgreSQL</productname> databases
|
||||
of a cluster into one script file. The script file contains
|
||||
of a cluster into an archive. The archive contains
|
||||
<acronym>SQL</acronym> commands that can be used as input to <xref
|
||||
linkend="app-psql"/> to restore the databases. It does this by
|
||||
calling <xref linkend="app-pgdump"/> for each database in the cluster.
|
||||
@ -52,11 +52,16 @@ PostgreSQL documentation
|
||||
</para>
|
||||
|
||||
<para>
|
||||
The SQL script will be written to the standard output. Use the
|
||||
Plain text SQL scripts will be written to the standard output. Use the
|
||||
<option>-f</option>/<option>--file</option> option or shell operators to
|
||||
redirect it into a file.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Archives in other formats will be placed in a directory named using the
|
||||
<option>-f</option>/<option>--file</option>, which is required in this case.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
<application>pg_dumpall</application> needs to connect several
|
||||
times to the <productname>PostgreSQL</productname> server (once per
|
||||
@ -121,10 +126,85 @@ PostgreSQL documentation
|
||||
<para>
|
||||
Send output to the specified file. If this is omitted, the
|
||||
standard output is used.
|
||||
Note: This option can only be omitted when <option>--format</option> is plain
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><option>-F <replaceable class="parameter">format</replaceable></option></term>
|
||||
<term><option>--format=<replaceable class="parameter">format</replaceable></option></term>
|
||||
<listitem>
|
||||
<para>
|
||||
Specify the format of dump files. In plain format, all the dump data is
|
||||
sent in a single text stream. This is the default.
|
||||
|
||||
In all other modes, <application>pg_dumpall</application> first creates two files:
|
||||
<filename>global.dat</filename> and <filename>map.dat</filename>, in the directory
|
||||
specified by <option>--file</option>.
|
||||
The first file contains global data, such as roles and tablespaces. The second
|
||||
contains a mapping between database oids and names. These files are used by
|
||||
<application>pg_restore</application>. Data for individual databases is placed in
|
||||
<filename>databases</filename> subdirectory, named using the database's <type>oid</type>.
|
||||
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><literal>d</literal></term>
|
||||
<term><literal>directory</literal></term>
|
||||
<listitem>
|
||||
<para>
|
||||
Output directory-format archives for each database,
|
||||
suitable for input into pg_restore. The directory
|
||||
will have database <type>oid</type> as its name.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><literal>p</literal></term>
|
||||
<term><literal>plain</literal></term>
|
||||
<listitem>
|
||||
<para>
|
||||
Output a plain-text SQL script file (the default).
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><literal>c</literal></term>
|
||||
<term><literal>custom</literal></term>
|
||||
<listitem>
|
||||
<para>
|
||||
Output a custom-format archive for each database,
|
||||
suitable for input into pg_restore. The archive
|
||||
will be named <filename>dboid.dmp</filename> where <type>dboid</type> is the
|
||||
<type>oid</type> of the database.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><literal>t</literal></term>
|
||||
<term><literal>tar</literal></term>
|
||||
<listitem>
|
||||
<para>
|
||||
Output a tar-format archive for each database,
|
||||
suitable for input into pg_restore. The archive
|
||||
will be named <filename>dboid.tar</filename> where <type>dboid</type> is the
|
||||
<type>oid</type> of the database.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
</variablelist>
|
||||
|
||||
Note: see <xref linkend="app-pgdump"/> for details
|
||||
of how the various non plain text archives work.
|
||||
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><option>--filter=<replaceable class="parameter">filename</replaceable></option></term>
|
||||
<listitem>
|
||||
|
@ -18,8 +18,9 @@ PostgreSQL documentation
|
||||
<refname>pg_restore</refname>
|
||||
|
||||
<refpurpose>
|
||||
restore a <productname>PostgreSQL</productname> database from an
|
||||
archive file created by <application>pg_dump</application>
|
||||
restore a <productname>PostgreSQL</productname> database or cluster
|
||||
from an archive created by <application>pg_dump</application> or
|
||||
<application>pg_dumpall</application>
|
||||
</refpurpose>
|
||||
</refnamediv>
|
||||
|
||||
@ -38,13 +39,14 @@ PostgreSQL documentation
|
||||
|
||||
<para>
|
||||
<application>pg_restore</application> is a utility for restoring a
|
||||
<productname>PostgreSQL</productname> database from an archive
|
||||
created by <xref linkend="app-pgdump"/> in one of the non-plain-text
|
||||
<productname>PostgreSQL</productname> database or cluster from an archive
|
||||
created by <xref linkend="app-pgdump"/> or
|
||||
<xref linkend="app-pg-dumpall"/> in one of the non-plain-text
|
||||
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
|
||||
database or cluster to the state it was in at the time it was saved. The
|
||||
archives 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
|
||||
prior to being restored. The archive formats are designed to be
|
||||
portable across architectures.
|
||||
</para>
|
||||
|
||||
@ -52,10 +54,17 @@ PostgreSQL documentation
|
||||
<application>pg_restore</application> can operate in two modes.
|
||||
If a database name is specified, <application>pg_restore</application>
|
||||
connects to that database and restores archive contents directly into
|
||||
the database. Otherwise, a script containing the SQL
|
||||
commands necessary to rebuild the database is created and written
|
||||
the database.
|
||||
When restoring from a dump made by<application>pg_dumpall</application>,
|
||||
each database will be created and then the restoration will be run in that
|
||||
database.
|
||||
|
||||
Otherwise, when a database name is not specified, a script containing the SQL
|
||||
commands necessary to rebuild the database or cluster is created and written
|
||||
to a file or standard output. This script output is equivalent to
|
||||
the plain text output format of <application>pg_dump</application>.
|
||||
the plain text output format of <application>pg_dump</application> or
|
||||
<application>pg_dumpall</application>.
|
||||
|
||||
Some of the options controlling the output are therefore analogous to
|
||||
<application>pg_dump</application> options.
|
||||
</para>
|
||||
@ -140,6 +149,8 @@ PostgreSQL documentation
|
||||
commands that mention this database.
|
||||
Access privileges for the database itself are also restored,
|
||||
unless <option>--no-acl</option> is specified.
|
||||
<option>--create</option> is required when restoring multiple databases
|
||||
from an archive created by <application>pg_dumpall</application>.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
@ -166,6 +177,28 @@ PostgreSQL documentation
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><option>--exclude-database=<replaceable class="parameter">pattern</replaceable></option></term>
|
||||
<listitem>
|
||||
<para>
|
||||
Do not restore databases whose name matches
|
||||
<replaceable class="parameter">pattern</replaceable>.
|
||||
Multiple patterns can be excluded by writing multiple
|
||||
<option>--exclude-database</option> switches. The
|
||||
<replaceable class="parameter">pattern</replaceable> parameter is
|
||||
interpreted as a pattern according to the same rules used by
|
||||
<application>psql</application>'s <literal>\d</literal>
|
||||
commands (see <xref linkend="app-psql-patterns"/>),
|
||||
so multiple databases can also be excluded by writing wildcard
|
||||
characters in the pattern. When using wildcards, be careful to
|
||||
quote the pattern if needed to prevent shell wildcard expansion.
|
||||
</para>
|
||||
<para>
|
||||
This option is only relevant when restoring from an archive made using <application>pg_dumpall</application>.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><option>-e</option></term>
|
||||
<term><option>--exit-on-error</option></term>
|
||||
@ -315,6 +348,19 @@ PostgreSQL documentation
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><option>-g</option></term>
|
||||
<term><option>--globals-only</option></term>
|
||||
<listitem>
|
||||
<para>
|
||||
Restore only global objects (roles and tablespaces), no databases.
|
||||
</para>
|
||||
<para>
|
||||
This option is only relevant when restoring from an archive made using <application>pg_dumpall</application>.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><option>-I <replaceable class="parameter">index</replaceable></option></term>
|
||||
<term><option>--index=<replaceable class="parameter">index</replaceable></option></term>
|
||||
|
Reference in New Issue
Block a user