Postgres 9.4を使用しています。 \l+
は164 GBだと教えてくれます。データベースでVACUUM FULLを実行しようとすると、次のエラーが発生します(数時間後)。
ERROR: could not extend file "base/18222/20547.2": wrote only 4096
of 8192 bytes at block 279347
HINT: Check free disk space.
サーバーに320 GBのSSDがあり、そのうち89 GBが利用可能です。
$ df -h
Filesystem Size Used Avail Use% Mounted on
rootfs 315G 211G 89G 71% /
udev 10M 0 10M 0% /dev
tmpfs 6.4G 192K 6.4G 1% /run
/dev/disk/by-label/DOROOT 315G 211G 89G 71% /
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 13G 4.0K 13G 1% /run/shm
サーバーにディスク容量を簡単に追加することはできません。他に何かできることはありますか?
この質問 を見つけたので、必要に応じて試すことができます。しかし、より少ないメモリで動作するようにVACUUM FULLに指示できるかどうか疑問に思っていました。
Postgresqlのドキュメントによると:
VACUUM FULLは、デッドスペースのない完全な新しいバージョンのテーブルファイルを書き込むことにより、テーブルをアクティブに圧縮します。これにより、テーブルのサイズが最小化されますが、時間がかかる場合があります。また、操作が完了するまで、テーブルの新しいコピー用に追加のディスク容量が必要です。
したがって、大きなテーブルが1つある場合、真空がフルになると、簡単にすべてのディスク領域が消費されます。多分最良のことは完全なバックアップ/復元を行うことでしょう-結果はあなたが掃除機を完全にやった場合と同じになります。