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