After running pg_dumpall on my database cluster like this:

 

$PGBIN/pg_dumpall -c -U ipscdb | gzip > /var/db/pgsql_bkp/pg_dump_file.gz

 

I subsequently delete the PGDATA directory for the backed up database and
initialize a new database.  Next I attempt to run the restore using
initialized database like this:

 

cat /var/db/pgsql_bkp/pg_dump_file.gz | gunzip | $PGBIN/psql postgres >
/dev/null

 

This results in a couple of error messages:

 

ERROR:  current user cannot be dropped

ERROR:  role "ipscdb" already exists

 

Since I ran initdb to initialize my database after the pg_dumpall as
"ipscdb" user, and subsequently am running the restore as "ipscdb" user, it
does make sense that I see these errors.  The first one is caused by the -c
switch on pg_dumpall which generates the script to drop all database objects
before restore is done.  The second is a consequence of the first one -
script is attempting to create a role, which already exists.

 

My questions are:

1)       What would be the right way to do this?  (other than pg_restore
with the create option)

2)       Does the restore go forward despite the two errors shown above -
meaning that I can pretty much ignore these errors?

 

Thanks in advance,

~george

Reply via email to