mirror of
https://git.postgresql.org/git/postgresql.git
synced 2024-10-05 09:46:55 +02:00
e8f69be054
- Support for direct DB connection in pg_restore - Fixes in support for --insert flag - pg_dump now outputs in modified OID order - various other bug fixes
97 lines
2.3 KiB
Plaintext
97 lines
2.3 KiB
Plaintext
Notes on pg_dump
|
|
================
|
|
|
|
1. pg_dump, by default, still outputs text files.
|
|
|
|
2. pg_dumpall forces all pg_dump output to be text, since it also outputs text into the same output stream.
|
|
|
|
3. The plain text output format can not be used as input into pg_restore.
|
|
|
|
4. pg_dump now dumps the items in a modified OID order to try to improve relaibility of default restores.
|
|
|
|
|
|
To dump a database into the next custom format, type:
|
|
|
|
pg_dump <db-name> -Fc > <backup-file>
|
|
|
|
or, in TAR format
|
|
|
|
pg_dump <db-name> -Ft > <backup-file>
|
|
|
|
To restore, try
|
|
|
|
To list contents:
|
|
|
|
pg_restore -l <backup-file> | less
|
|
|
|
or to list tables:
|
|
|
|
pg_restore <backup-file> --table | less
|
|
|
|
or to list in a differnet orderL
|
|
|
|
pg_restore <backup-file> -l --oid --rearrange | less
|
|
|
|
Once you are happy with the list, just remove the '-l', and an SQL script will be output.
|
|
|
|
|
|
You can also dump a listing:
|
|
|
|
pg_restore -l <backup-file> > toc.lis
|
|
or
|
|
pg_restore -l <backup-file> -f toc.lis
|
|
|
|
edit it, and rearrange the lines (or delete some):
|
|
|
|
vi toc.lis
|
|
|
|
then use it to restore selected items:
|
|
|
|
pg_restore <backup-file> --use=toc.lis -l | less
|
|
|
|
When you like the list, type
|
|
|
|
pg_restore backup.bck --use=toc.lis > script.sql
|
|
|
|
or, simply:
|
|
|
|
createdb newdbname
|
|
pg_restore backup.bck --use=toc.lis | psql newdbname
|
|
|
|
|
|
BLOBs
|
|
=====
|
|
|
|
To dump blobs you must use the custom archive format (-Fc) or TAR format (-Ft), and specify the
|
|
--blobs qualifier to the pg_dump command.
|
|
|
|
To restore blobs you must use a direct database connection (--db=db-to-restore-to).
|
|
|
|
eg.
|
|
|
|
pg_dump --blob -Fc db-to-backup -f backup.bck
|
|
|
|
pg_restore backup.bck --db=db-to-restore-into
|
|
|
|
|
|
TAR
|
|
===
|
|
|
|
The TAR archive that pg_dump creates currently has a blank username & group for the files,
|
|
but should be otherwise valid. It also includes a 'restore.sql' script which is there for
|
|
the benefit of humans. It is never used by pg_restore.
|
|
|
|
Note: the TAR format archive can only be used as input into pg_restore if it is in TAR form.
|
|
(ie. you should not extract the files then expect pg_restore to work).
|
|
|
|
You can extract, edit, and tar the files again, and it should work, but the 'toc'
|
|
file should go at the start, the data files be in the order they are used, and
|
|
the BLOB files at the end.
|
|
|
|
|
|
Philip Warner, 16-Jul-2000
|
|
pjw@rhyme.com.au
|
|
|
|
|
|
|