pg_restore problem

Started by Lonni J Friedmanabout 23 years ago2 messagesgeneral
Jump to latest
#1Lonni J Friedman
lfriedman@vasoftware.com

Greetings,
I'm running into a wall trying to restore from a dumped database. This
database has a table with large objects, so I knew that I could not use
pg_dumpall, but rather pg_dump. The command that I used to produce the
dump was:

pg_dump -Ft -b -o sfee > /tmp/db.tar

where sfee is the name of the database. Once this completes, I move the
resulting db.tar file over to a different server with the same version of
PostgreSQL on it. I first created the user & database that were identical
to the ones on the original system, and then ran this command:

pg_restore -d sfee /tmp/db.tar

It runs for a while, spitting out its progress, and then dies with the
following error:

pg_restore: [archiver (db)] could not execute query: ERROR: Relation
"artifact_file" does not exist

My guess is that the problem is that artifact_file has not yet been
restored from the dump (its further along), however I don't understand how
to compensate for this problem.

Not sure if it matters, but this is occuring on a Redhat Linux system
running PostgreSQL-7.2.x. Any suggestions would be gratefully accepted.

thanks!

#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: Lonni J Friedman (#1)
Re: pg_restore problem

Lonni J Friedman <lfriedman@vasoftware.com> writes:

pg_restore: [archiver (db)] could not execute query: ERROR: Relation
"artifact_file" does not exist

My guess is that the problem is that artifact_file has not yet been
restored from the dump (its further along), however I don't understand how
to compensate for this problem.

You need to force pg_restore to load the database objects in a safe
order. I haven't done this recently, but basically you make a listing
of the archive's table of contents (TOC), rearrange it with a text
editor, and use that file as a control file for pg_restore. See the
pg_restore man page.

Eventually this should be automated better :-(

regards, tom lane