I've only been using PostgreSQL now for about ~1 year and while mostly I'm still struggling with ANSI SQL, I'm still a bit confused about the whole upgrade process. I'm trying to understand the direct or recommended proper procedure for migrating a production database from version 8.4.8 to 9.1.2. I know I simply can't stop the PostgreSQL daemon and run my Linux package manager as for some reason this breaks existing data.

I've been told by some that from my new 9.1.2 server that replaces the 8.4.8 server; I'll have to use the pg_dumpall from the new 9.1.2 version to create the data dump file.

Is this correct?

Also what if I wasn't replacing the server and simply wanted to upgrade my existing server from 8.4.8 to 9.1.2? Then how would I proceed 1st besides the obvious of backing up all my data 1st?