[pgsql-jp: 40794] Re: pg_statsin fo 1.2でautovacuum情報取得について

yamada kazuhiro yamadak @ linkin.co.jp
2011年 5月 20日 (金) 10:37:23 JST


佐藤様

お世話になっております。山田です。


> ログメッセージは、Syslog でファイルに保存してあるはずなので、/dev/null
> に渡してしまっていいと思います。
>
>   pg_ctl -D $PGDATA start \
>       | pg_get_logfilterinfo ---postgres-datadir=$PGDATA > /dev/null 2>&1 &
上記、了解いたしました。

迅速なご回答、ビギナーでも解りやすい説明、ありがとうございました。
御陰様で、全て解決することができました。
本件、クローズとさせていただきます。


> 佐藤です。
>
>> お世話になっております。山田です。
>>
>>> lc_messages の値を C に設定して確認してみてください。
>>
>> 上記ご回答に従い、設定を変更したところ、データ取得できておりました。
>> ありがとうございます。
>>
>> 一点、気になるのですが、突然画面に表示されるログのプロンプトを、
>> 表示しない設定は、あるのでしょうか?
>
> ログメッセージは、Syslog でファイルに保存してあるはずなので、/dev/null
> に渡してしまっていいと思います。
>
>   pg_ctl -D $PGDATA start \
>       | pg_get_logfilterinfo ---postgres-datadir=$PGDATA > /dev/null 2>&1 &
>
>>> 佐藤です。
>>>
>>>> お世話になっております。山田です。
>>>>
>>>> ご回答ありがとうございます。
>>>>
>>>>> ログフィルタは有効にしていますか?(笠原様)
>>>>> データベースサーバはどのように起動しているでしょうか。(佐藤様)
>>>>
>>>> セットした記憶はあるのですが、ログフィルターが有効になっておりませんで
>>>>>>>> た。
>>>>
>>>>> Syslog には自動バキュームとチェックポイントに関するメッセージ
>>>>> が出力されているでしょうか(佐藤様)
>>>>
>>>> こちらは出力されていることを確認しております。
>>>>
>>>> ご回答を参考に、以下のような作業を実施致しました。
>>>> しかしながら、結果はデータ取得できておりません。
>>>>
>>>> ・ログフィルターを有効に設定
>>>> -bash-3.2$ pg_ctl -D $PGDATA start | pg_get_logfilterinfo
>>>> ---postgres-datadir=$PGDATA &
>>>> [1] 3807
>>>> -bash-3.2$ サーバは起動中です。
>>>> [2011-05-19 16:50:31 JST][3811][][]LOG: ライブラリ"pg_stat_statements"
>>>> をロードしました
>>>> [2011-05-19 16:50:31 JST][3812][][]LOG: データベースシステムは
>>>> 2011-05-19 16:50:21 JSTにシャットダウンしました
>>>> [2011-05-19 16:50:31 JST][3815][][]LOG: 自動バキュームランチャプロセス
>>>> [2011-05-19 16:50:31 JST][3811][][]LOG: データベースシステムの接続受付
>>>> 準備が整いました。
>>> (snip)
>>>> 今回の作業について、何か原因などが見えましたら、ご教示お願いしたく存じ
>>>> ます。
>>>
>>> ログに出力されるメッセージが日本語だからではないですかね。
>>>
>>> pg_get_logfilterinfo では、パイプで受け取ったメッセージを以下のパター
>>> ンでマッチングして解析しているので、日本語ではうまく処理できないんだと
>>> 思います。
>>>
>>> # autovacuum log format
>>> $FORMAT_ATVCM_IN1 = q(LOG: \s\s [0-9]* [:]* \s* automatic \s vacuum \s
>>> of \s table \s \"(\w+)\.(\w+)\.(\w+)\": \s index \s scans: \s (\d+)
>>> \Z);
>>> $FORMAT_ATVCM_IN2 = q( \s+ pages: \s (\d+) \s removed, \s (\d+) \s
>>> remain \Z);
>>> $FORMAT_ATVCM_IN3 = q( \s+ tuples: \s (\d+) \s removed, \s (\d+) \s
>>> remain \Z);
>>> $FORMAT_ATVCM_IN4 = q( \s+ system\susage: \s CPU \s
>>> (\d+\.\d+)s/(\d+\.\d+)u \s sec \s elapsed \s (\d+\.\d+) \s sec \Z);
>>>
>>> # checkpoint log format
>>> $FORMAT_CHKPT_IN1 = q(LOG: \s\s [0-9]* [:]* \s* checkpoint \s
>>> starting: \s ([\w\s]+) \Z);
>>> $FORMAT_CHKPT_IN2 = q(LOG: \s\s [0-9]* [:]* \s* checkpoint \s
>>> complete: \s wrote \s (\d+) \s buffers \s \\((\d+\.\d+)\%\\); \s
>>> (\d+)\s transaction \s log \s file \\(s\\) \s added, \s (\d+) \s
>>> removed, \s (\d+) \s recycled; \s write=(\d+\.\d+) \s s, \s
>>> sync=(\d+\.\d+) \s s, \s total=(\d+\.\d+) \s s \Z);
>>>
>>> lc_messages の値を C に設定して確認してみてください。
>
>
> ----
> Tomoaki Sato <sato @ sraoss.co.jp>
> SRA OSS, Inc. Japan
>




pgsql-jp メーリングリストの案内