If making a backup, make sure that your database is not being updated.
This does not affect the integrity of the backup, but the changed
data would of course not be included. If necessary, edit the
permissions in the file /usr/local/pgsql/data/pg_hba.conf
(or equivalent) to disallow access from everyone except you.
To back up your database installation, type:
pg_dumpall > outputfile
If you need to preserve OIDs (such as when using them as
foreign keys), then use the -o option when running
pg_dumpall.
To make the backup, you can use the pg_dumpall
command from the version you are currently running. For best
results, however, try to use the pg_dumpall
command from PostgreSQL 8.3.5,
since this version contains bug fixes and improvements over older
versions. While this advice might seem idiosyncratic since you
haven't installed the new version yet, it is advisable to follow
it if you plan to install the new version in parallel with the
old version. In that case you can complete the installation
normally and transfer the data later. This will also decrease
the downtime.
Shut down the old server:
pg_ctl stop
On systems that have PostgreSQL started at boot time,
there is probably a start-up file that will accomplish the same thing. For
example, on a Red Hat Linux system one
might find that
/etc/rc.d/init.d/postgresql stop
works.
If restoring from backup, rename or delete the old installation
directory. It is a good idea to rename the directory, rather than
delete it, in case you have trouble and need to revert to it. Keep
in mind the directory might consume significant disk space. To rename
the directory, use a command like this:
mv /usr/local/pgsql /usr/local/pgsql.old
Install the new version of PostgreSQL as
outlined in
Section 15.5.
Create a new database cluster if needed. Remember that you must
execute these commands while logged in to the special database user
account (which you already have if you are upgrading).
/usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data
Restore your previous pg_hba.conf and any
postgresql.conf modifications.
Start the database server, again from the special database user
account:
/usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data
Finally, restore your data from backup with
/usr/local/pgsql/bin/psql -d postgres -f outputfile
using the new psql.