Postgres 8.4 VACUUM FULL performance
This particular error comes with a hint mentioned in the doc, 
in Routine vacuuming (8.4):


  ERROR:  database is not accepting commands to avoid wraparound data
  loss in database "mydb" HINT:  Stop the postmaster and use a
  standalone backend to VACUUM in "mydb".


It's a critical situation which normally should not occur if autovacuum can do its job. When you're back online, you should try to find out why this could have happened (wrong vacuum settings?).

In the meantime, what must be done is simply what the HINT tells: VACUUM without additional parameter. As mentioned in the comments , VACUUM FULL is a different command, even though it's not obvious by its name. It rewrites entirely the tables, is much slower and not desirable in this situation.

More details at https://wiki.postgresql.org/wiki/VACUUM_FULL