昨日、PostgreSQLのVACUUMを怠り、
インデックス肥大化で接続できなくなるという事態を引き起こしてしまいました。
クライアントには大変申し訳ない限り。。。
 
そうなったときの対処法をメモ。
 
serviceとして起動していると、対処できないので、
コマンドから、サービス停止して、シングルユーザーモードでVACUUMすればOK。
 
まず、postgresユーザーになる。

su - postgres

大抵の場合rootでは操作できなくなってると思う。
で、rootからposgresユーザーになればいい(と思う)
 
次、サービス停止。

pg_ctl stop

シングルユーザーモードで起動。

postgres データベース名

 
VACUUMを実行
 

backend> VACUUM

肥大化した色んなものをゴニョゴニョしているというお知らせが続く…
↑この表示がおわったら「Ctrl+D」でシングルユーザーモードを解放。
 
念のため、これを繰り返した方がいい。
 
で、何も出なくなったら、サービス起動

pg_ctl start

こんな感じ。