まず:
UPGRADE
あなたは8.2、8.3または8.4にすることができない場合であっても - 少なくとも、最新の8.1にアップグレードする(現時点では8.1.17ですが、8.1になります1〜2日で0.18)。
2番目:問題が何かを診断します。
duツールを使用して、正確にどこに行ったのかを診断します。あまりにも多くのスペースを占めているディレクトリは何ですか?
dfで確認してください、そして、PostgreSQLディレクトリの容量を確認してください。あなたはそれについて何かを行うことができますスペースを使用しているPGDATA内のどのディレクトリ知っていることを、今
cd YOUR_PGDATA_DIR
du -sk *
cd base
du -sk *
cd LARGEST DIR FROM PREVIOUS COMMAND
du -sk * | sort -nr | head
:
最良のオプションは、にあります。
ログまたは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コマンドを(もっとうまくいって)発行してください。
返信いただきありがとうございます!私の問題は、ディスクが100%いっぱいであることです。バキュームとクラスタリングには、実行するための空きディスク領域が必要です。 vacuum/clusterを実行しないでDBからデータを完全に削除することは可能ですか? – jorgen
あなたが犠牲にすることができるテーブルを見つけ出し、それをTRUNCATEします。すぐにスペースを解放します。 –
ありがとうございました! – jorgen