teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

追記

2019/10/18 10:34

投稿

sazi
sazi

スコア25430

answer CHANGED
@@ -1,5 +1,9 @@
1
1
  空き容量が不足しているのかもしれません。
2
2
  ※手動だと上手くいくというので当てはまらないかもしれませんが。
3
+ インデックスを削除し、vaccum fullを実行してみて下さい。
3
4
  [PostgreSQL Vacuum について](https://kasacchiful.github.io/blog/2014/01/11/postgres_vacuum/)
4
5
 
5
- インデックスを削除し、vaccum fullを実行してみて下さい。
6
+ [23.1. 定常的なバキューム作業](https://www.postgresql.jp/document/9.2/html/routine-vacuuming.html)
7
+ > 23.1.2. ディスク容量の復旧
8
+ > ティップ: 大規模な更新や削除作業の結果としてテーブルが不要な行バージョンを大量に含む場合、通常のVACUUMでは満足のゆくものではないかもしれません。 もしそのようなテーブルを所有し、それが占有する余分なディスク空間の回収が必要であれば、VACUUM FULL、またはその代わりにCLUSTERやテーブルを書き換えるALTER TABLE構文の1つを使用しなければなりません。 これらのコマンドはテーブル全体を新しいコピーに書き換え、それに対する新規インデックスを作成します。 これらの選択肢はすべて排他ロックを必要とします。
9
+ 新しいものが完成するまで、テーブルの旧コピーとインデックスは解放されませんので、**元のテーブルと同程度の容量の余計なディスク領域も一時的に使用することに注意してください。**