2008-03-21 14:23:29 +01:00
|
|
|
$PostgreSQL: pgsql/src/bin/pg_dump/README,v 1.7 2008/03/21 13:23:28 momjian Exp $
|
|
|
|
|
2000-07-04 16:25:28 +02:00
|
|
|
Notes on pg_dump
|
|
|
|
================
|
|
|
|
|
2000-07-21 13:40:08 +02:00
|
|
|
1. pg_dump, by default, still outputs text files.
|
2000-07-04 16:25:28 +02:00
|
|
|
|
2000-07-21 13:40:08 +02:00
|
|
|
2. pg_dumpall forces all pg_dump output to be text, since it also outputs text into the same output stream.
|
2000-07-04 16:25:28 +02:00
|
|
|
|
2005-06-21 22:45:44 +02:00
|
|
|
3. The plain text output format cannot be used as input into pg_restore.
|
2000-07-21 13:40:08 +02:00
|
|
|
|
2000-07-04 16:25:28 +02:00
|
|
|
|
2005-06-21 22:45:44 +02:00
|
|
|
To dump a database into the new custom format, type:
|
2000-07-04 16:25:28 +02:00
|
|
|
|
|
|
|
pg_dump <db-name> -Fc > <backup-file>
|
|
|
|
|
2005-06-21 22:45:44 +02:00
|
|
|
or, to dump in TAR format
|
2000-07-21 13:40:08 +02:00
|
|
|
|
|
|
|
pg_dump <db-name> -Ft > <backup-file>
|
|
|
|
|
2000-07-04 16:25:28 +02:00
|
|
|
To restore, try
|
|
|
|
|
|
|
|
To list contents:
|
|
|
|
|
|
|
|
pg_restore -l <backup-file> | less
|
|
|
|
|
|
|
|
or to list tables:
|
|
|
|
|
|
|
|
pg_restore <backup-file> --table | less
|
|
|
|
|
2005-06-21 22:45:44 +02:00
|
|
|
or to list in a different order
|
2000-07-04 16:25:28 +02:00
|
|
|
|
|
|
|
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
|
|
|
|
|
|
|
|
|
2000-07-21 13:40:08 +02:00
|
|
|
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
|
2005-06-21 22:45:44 +02:00
|
|
|
the benefit of humans. The script is never used by pg_restore.
|
2000-07-21 13:40:08 +02:00
|
|
|
|
|
|
|
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
|
2000-07-04 16:25:28 +02:00
|
|
|
pjw@rhyme.com.au
|