[pgsql-jp: 36168] Re: log用ディスク領域について
SAKATA Testuo
sakata.tetsuo @ lab.ntt.co.jp
2005年 10月 18日 (火) 08:29:59 JST
おはようございます。坂田@横須賀は雨、です。
hi ro wrote:
> hiroと申します。
>
> 初歩的な質問で申し訳ないのですが、ご存知の方ご教授ください。
あまり詳しくないのですが、ざっと知っている範囲で、お答えします。
> 【質問】
> PostgreSQLのログ(pg_log、pg_clog、pg_xlog)が使用するディスク領域につい
> て制
> 限設定をすることは可能でしょうか?また、どのように設定するのでしょうか?
>
> 【質問経緯】
> 検証環境にて、ログのディスク消費が膨大となり、下記エラーが発生。
> ERROR:could not access status of transaction 0
> could not write to file "/usr/loca/pgsql/data/pg_clog/0005" at
> offset 0:
> デバイスに空き領域がありません
>
> 何らかの設定で、ログが消費するディスク領域(サイズ)を制限したい。
上記のメッセージは、CLOGへの書き込みが出来ない旨のエラーですね。
失礼ですが、「ディスク容量不足の主原因が(各種の)ログによる」ことは、
確認済みですか?
ログの容量増大が原因と想定すると、以下のようなお答えになります。
(1) WAL(pg_xlog)の容量増加ではないか?
個々のWAL fileの容量は決まっており、その数もデフォルト値から増えることは
稀であるから、まず無視してよい。
(2) CLOGファイルの容量増加ではないか?
CLOGファイルは1つ256KBであり、ファイルを使い切ると新しいファイルを開き、
数が増えるようです[1]。
また、VACUUM実行時に(条件が合えば)CLOGファイルを切り詰める機能が
実装されているようです。
pg_clog/0005 というファイルを新規に開こうとしてエラーになっているようですから、
まずは VACUUM を試してみてはいかがでしょうか。
(ずっとVACUUMを実行せずに検証を続けていらっしゃったのではないでしょうか?)
(3) 各種のメッセージログの容量増加ではないか?
マニュアルに対処法の(ヒントの)記載があります。§21.3を参照してください。
以上、思いつく点を列挙しました。
上記の(2)あたりが、利きそうに思うのですが…
以上、ご参考になれば幸いです。
[1] 当MLの pgsql-jp:35688 以下のスレッドを参照
--
坂田 哲夫@NTT サイバースペース研究所
SAKATA, Tetsuo. Yokosuka JAPAN.
pgsql-jp メーリングリストの案内