>
> I run VACUUM.
>
> 21 hours later, I'm still waiting for it to finish.
>
For what it's worth, I sorted this out. Here's the recipe for anyone
stuck in a similar situation. (I'm not sure if it's orthodox or safe, but
it worked today)
1. Stop the postmaster with pg_ctl
2. Send a TERM signal to the nasty postgres process which has been eating
95-99% of one of your CPUs for all the past day.
3. Send TERM signals to any others which suddenly start processing because
they were waiting on locks.
4. Start up as normal with pg_ctl.
5. DROP all teh indices on the table in question
6. VACUUM again - it just takes a couple of minutes.
Am currently busy rebuilding the indices.
Hal