Ubuntu: upgrading postgresql 8.4 database cluster for use with 9.2 server
Don't know about 2) and 3) (I don't use Ubuntu). 

But to migrate the data from 8.4 to 9.1 pg_dump.

Assuming that that 8.4 runs on port 5432 and 9.1 runs on port 5433 something like the following will copy all the data from 8.4 to 9.1:

/usr/lib/postgresql/9.1/bin/pg_dump -p 5432 -U -c -C postgres my_db | /usr/lib/postgresql/9.1/bin/psql -p 5433 


This assumes that your current user can log on to both databases. 

The full path to pg_dump is necessary to ensure that the dump is taken using the target version. 

Of course you can also use an intermediate file if you prefer that. More details are in the manual: PostgreSQL: Documentation: 9.1: Backup and Restore

Using the pg_dump binary from the new version is intentional.

From the manual: 17.6. Upgrading a PostgreSQL Cluster - 17.6.1. Upgrading Data via pg_dump


  It is recommended that you use the pg_dump and pg_dumpall programs from the newer version of PostgreSQL