[pgsql-jp: 39245] pg_dump -Ft の一時ファイル
yoko00068
yoko00068 @ gmail.com
2008年 2月 22日 (金) 15:18:41 JST
星野と申します
こんにちは
pg_dumpにて下記のメッセージが表示されてバックアップできませんでした
>$ pg_dump -U postgres -Ft test > test
>pg_dump: [tar archiver] could not write to output file: No space left on device
pg_dump に -Ft を指定してtar形式のダンプファイルを作成する場合、
/tmp に一時ファイルを作成するようです。
このファイルはlsしても表示されませんが、lsofでファイル(inode?)を
掴んでいることを見つけました。
># lsof | grep pg_dump | grep tmp
>pg_dump 18608 postgres 4u REG 8,8
293953536 96102 /tmp/tmpf73kay7 (deleted)
/tmp の空き容量はDBの中の一番大きなテーブルのバックアップファイル
と同程度です(1.5GB)
おそらくテーブルごとの一時ファイルを作成していると思いますが、
巨大なテーブルがある場合、巨大な /tmp を作らなければならなくなります。
これはあまり美しく無いです。
一時ファイルの作成場所を変更することは可能でしょうか
環境
PostgreSQL 8.2.5(src コンパイル)
CentOS5
インストール先 /usr/local/pgsql
pgsql-jp メーリングリストの案内