Rich Shepard <rshepard@appl-ecosys.com> writes:
> On Thu, 19 Jan 2006, Doug McNaught wrote:
>
>> Did you tell pg_restore to read from a file? Otherwise it will try to read
>> from your terminal, which probably isn't what you want.
>
> Doug,
>
> No, I didn't. I've no idea where the file was dumped, so I've no idea of
> the name or location. Reading in Douglas*2 PostgreSQL book (pages 872-873),
> they write nothing about giving pg_dumpall a file name/location nor that
> pg_restore needs that information. They do write that pg_restore wants a dump
> produced with -format=c or -format=t, without further explanation.
pg_dumpall writes to standard output, so you should have seen an
enormous spew of data at your terminal. I'm surprised you didn't.
The manpages in the official Postgres documentation are quite clear
about the behavior of these utilities; your book doesn't seem to be.
The recommended way to do an upgrade (if you compile from source) is:
1) Compile the new version of PG and install it to a different place.
2) Use the new pg_dump to connect to the old server and dump all the
databases.
3) Make sure your PATH points to the new binaries (or run them by
hand), and
4) Run initdb to create a new data directory in a different place fom
the old one.
5) Stop the old server and start the new one.
5) If you've used pg_dumpall, your backup will be in SQL test format,
so you feed it to 'psql'
6) If you've done pg_dump --format=c for each database, then you need
to use pg_restore. pg_restore is only for the binary format
dumps.
This preserves the old data and binaries so you can back out if you
need to. Naturally you need enough disk space for three copies of the
data.
Now, since you're using a distribution's packages and upgrade
procedure, it's not clear what happened to your data. You might want
to look at the server logfiles (if any) and ask on the Slackware
mailing lists to see if anyone else has had this problem.
-Doug