私はccaを持っていたいくつかのテーブルを持つ9.1データベースのローカルインストールを持っています。300のmioレコードとデータベースは約20 GBに成長しました。その後、delete from
すべてのレコードを削除するコマンドを発行しました(使用する必要がありましたがtruncate
、それを知りませんでした)。だから、ディスク領域を再利用するためにdbを完全に空にしましたが、それはまったく役に立ちません。私の問題はこれと同じように見えますが、解決策は提供されていません。私はすでにこのスレッドと「ディスク領域の回復」に関するドキュメントをチェックしましたが、それでも解決策が見つかりません。このコードを使用して、すべてのテーブルのサイズを取得します
SELECT nspname || '.' || relname AS "relation",
pg_size_pretty(pg_total_relation_size(C.oid)) AS "total_size"
FROM pg_class C
LEFT JOIN pg_namespace N ON (N.oid = C.relnamespace)
WHERE nspname NOT IN ('pg_catalog', 'information_schema')
AND C.relkind <> 'i'
AND nspname !~ '^pg_toast'
ORDER BY pg_total_relation_size(C.oid) DESC
LIMIT 15;
ただし、合計で1GB未満
SELECT pg_database.datname, pg_size_pretty(pg_database_size(pg_database.datname)) AS size FROM pg_database
それでも約20 GBが表示されます。アドバイスをいただければ幸いです。
pg_catalog
、およびテーブルinformation_schema
。そのため、WHERE
句の制限を削除して、それらのいずれかであるかどうかを確認してください。正確なPostgreSQLバージョン(SELECT version()
)と「データベース全体をバキュームする」ために正確に何をしているか、つまり正確なコマンドを表示してください。可能であれば、VACUUM FULL VERBOSE;
(引数なしで)実行し、出力をどこかに貼り付けてから、ここにリンクします。