mirror of
https://github.com/postgres/postgres.git
synced 2025-08-08 06:02:22 +03:00
Revert Non text modes for pg_dumpall, and pg_restore support
Recent discussions of the mechanisms used to manage global data have raised concerns about their robustness and security. Rather than try to deal with those concerns at a very late stage of the release cycle, the conclusion is to revert these features and work on them for the next release. This reverts parts or all of the following commits:1495eff7bd
Non text modes for pg_dumpall, correspondingly change pg_restore5db3bf7391
Clean up from commit1495eff7bd
289f74d0cb
Add more TAP tests for pg_dumpall2ef5790806
Fix a couple of error messages and tests for themb52a4a5f28
Clean up error messages from1495eff7bd
4170298b6e
Further cleanup for directory creation on pg_dump/pg_dumpall22cb6d2895
Fix memory leak in pg_restore.c928394b664
Improve various new-to-v18 appendStringInfo calls39729ec01d
Fix fat fingering in22cb6d2895
5822bf21d5
Add missing space in pg_restore documentation.f09088a01d
Free memory properly in pg_restore.c40b9c27014
pg_restore cleanups4aad2cb770
Portability fix: isdigit() must be passed an unsigned char.88e947136b
Fix typos and grammar in the codef60420cff6
doc: Alphabetize long options for pg_dump[all].bc35adee8d
doc: Put new options in consistent order on man pagesa876464abc
Message style improvementsdec6643487
Improve pg_dump/pg_dumpall help synopses and terminology0ebd242555
Run pgperltidy Discussion: https://postgr.es/m/20250708212819.09.nmisch@google.com Backpatch-to: 18 Reviewed-by: Noah Misch <noah@leadboat.com>
This commit is contained in:
@@ -16,10 +16,7 @@ PostgreSQL documentation
|
||||
|
||||
<refnamediv>
|
||||
<refname>pg_dumpall</refname>
|
||||
|
||||
<refpurpose>
|
||||
export a <productname>PostgreSQL</productname> database cluster as an SQL script or to other formats
|
||||
</refpurpose>
|
||||
<refpurpose>extract a <productname>PostgreSQL</productname> database cluster into a script file</refpurpose>
|
||||
</refnamediv>
|
||||
|
||||
<refsynopsisdiv>
|
||||
@@ -36,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 an SQL script file or an archive. The output contains
|
||||
of a cluster into one script file. The script file 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.
|
||||
@@ -55,16 +52,11 @@ PostgreSQL documentation
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Plain text SQL scripts will be written to the standard output. Use the
|
||||
The SQL script 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
|
||||
@@ -129,85 +121,10 @@ 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>-g</option></term>
|
||||
<term><option>--globals-only</option></term>
|
||||
|
@@ -18,9 +18,8 @@ PostgreSQL documentation
|
||||
<refname>pg_restore</refname>
|
||||
|
||||
<refpurpose>
|
||||
restore <productname>PostgreSQL</productname> databases from archives
|
||||
created by <application>pg_dump</application> or
|
||||
<application>pg_dumpall</application>
|
||||
restore a <productname>PostgreSQL</productname> database from an
|
||||
archive file created by <application>pg_dump</application>
|
||||
</refpurpose>
|
||||
</refnamediv>
|
||||
|
||||
@@ -39,14 +38,13 @@ PostgreSQL documentation
|
||||
|
||||
<para>
|
||||
<application>pg_restore</application> is a utility for restoring a
|
||||
<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
|
||||
<productname>PostgreSQL</productname> database from an archive
|
||||
created by <xref linkend="app-pgdump"/> in one of the non-plain-text
|
||||
formats. It will issue the commands necessary to reconstruct the
|
||||
database or cluster to the state it was in at the time it was saved. The
|
||||
archives also allow <application>pg_restore</application> to
|
||||
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 formats are designed to be
|
||||
prior to being restored. The archive files are designed to be
|
||||
portable across architectures.
|
||||
</para>
|
||||
|
||||
@@ -54,17 +52,10 @@ 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.
|
||||
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
|
||||
the database. Otherwise, a script containing the SQL
|
||||
commands necessary to rebuild the database 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> or
|
||||
<application>pg_dumpall</application>.
|
||||
|
||||
the plain text output format of <application>pg_dump</application>.
|
||||
Some of the options controlling the output are therefore analogous to
|
||||
<application>pg_dump</application> options.
|
||||
</para>
|
||||
@@ -149,8 +140,6 @@ 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>
|
||||
@@ -246,19 +235,6 @@ 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>
|
||||
@@ -603,28 +579,6 @@ 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>--filter=<replaceable class="parameter">filename</replaceable></option></term>
|
||||
<listitem>
|
||||
|
Reference in New Issue
Block a user