[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 メーリングリストの案内