初めに:
アップグレード
8.2、8.3、または 8.4 にアップグレードできない場合でも、少なくとも最新の 8.1 (現時点では 8.1.17 ですが、1 ~ 2 日で 8.1.18 になります) にアップグレードしてください。
2 番目: 何が問題なのかを診断します。
duツールを使用して、スペースがどこに移動したかを正確に診断します。スペースを占有しすぎているディレクトリは?
dfで合計使用容量を確認してから、PostgreSQL ディレクトリがどれくらいあるかを確認します。
最良のオプションは次のとおりです。
cd YOUR_PGDATA_DIR
du -sk *
cd base
du -sk *
cd LARGEST DIR FROM PREVIOUS COMMAND
du -sk * | sort -nr | head
これで、PGDATA 内のどのディレクトリがスペースを使用しているかがわかったので、それについて何かできることがあります。
ログまたは pg_temp の場合 - pg を再起動するか、ログを削除します (pg_clog と pg_xlog は一般的な意味でのログではありません。そこから何も削除しないでください!)。
それがベースディレクトリにある場合は、次のようになります。
ベース ディレクトリ内の数値ディレクトリは、データベースに関連しています。次の方法で確認できます。
select oid, datname from pg_database;
ほとんどのスペースを使用しているデータベースがわかっている場合は、それに接続し、どのファイルがほとんどのスペースを使用しているかを確認します。
ファイル名は、オプションの「.digits」サフィックスが付いた数値になります。このサフィックスは (今のところ) 無関係であり、次のコマンドを実行して、ファイルが正確に何を表しているかを確認できます。
select relname from pg_class where relfilenode = <NUMBER_FROM_FILE_NAME>;
どのテーブル/インデックスがスペースの大部分を使用しているかがわかったら、それを VACUUM FULL するか、(はるかに良い)それらに対してCLUSTERコマンドを発行できます。