水曜以外もどうでしょう

北海道発。食べ歩きの記録グルメ情報や北海道の見どころなどをメモ替わりに書いています。

PREV | PAGE-SELECT | NEXT

≫ EDIT

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
応援宜しくお願いします。ポチ↓↓
fC2ブログランキング にほんブログ村 グルメブログ 北海道食べ歩きへ 人気ブログランキングへ


| スポンサー広告 | --:-- | comments(-)| trackbacks(-)| TOP↑

≫ EDIT

postgresqlでログファイルの出力をカスタマイズ

postgresでうまく行かないことがあり、ログをチェックしてみることにした。
サーバを変えてから大きなトラブルもなく、ログを注視する機会がなかったので、ログの調整から。

postgres 8.1.4
CentOS 5

postgresqlのホームへ移動。
/var/lib/pgsql/data

設定ファイルは
postgresql.conf

ログの位置は
pg_log/postgres-XXX.log


ログを出力する位置、ファイル名のルールはpostgresql.confで決めているようだ。

早速ログを見てみるとエラーが連続している。
------
ERROR:  syntax error at or near "and" at character 100
------

このエラー自体は、今回のトラブルとは無関係だが、解決するに越したことはない。
でも、このエラーだけでは、timestampも出てないし、SQL文も出てないし、なんの事やら。

それで、ログの出方を調整して解析することにした。


参考資料から、postgresql.confをいじってみる。

参考にしたページ
http://lets.postgresql.jp/documents/technical/log_setting


調整してみたのは以下

★SQL文を出すエラーレベルを指定する。
log_min_error_statement = panic # 実質出さない。
 ↓
log_min_error_statement = error # エラー時は出す。


★実行に時間がかかる場合の、SQL文の出力。msでレベル指定。
log_min_duration_statement = -1   # -1は無効、0は全て
 ↓
log_min_duration_statement = 500   # ms で


★エラー出力時のprefixフォーマット
log_line_prefix = '' 

log_line_prefix = '[%t][%p][%u][%d] ' 
時刻、プロセスID、dbユーザ名、db名を出す


★どのSQL文をログに記録するかを制御
log_statement = 'none'         # none, mod, ddl, all
 ↓
log_statement = 'mod'           # none, mod, ddl, all

ddlはCREATE, ALTER, DROP
modはddlに加えて、insert, update, delete,truncate等

log_statementは、問題が解決したら、noneに戻したほうがいいかな。


でリスタート
/etc/rc.d/init.d/postgresql restart


これで、エラーメッセージが装飾され、かつその時のSQL文が出てくるので解析しやすい。

[2011-05-12 13:13:59 JST][プロセスID][ユーザ名][db名] ERROR:  syntax error at or near "and" at character 100
[2011-05-12 13:13:59 JST][プロセスID][ユーザ名][db名] STATEMENT:  select db_field from db_name
where id= and mode=1


スポンサーサイト
応援宜しくお願いします。ポチ↓↓
fC2ブログランキング にほんブログ村 グルメブログ 北海道食べ歩きへ 人気ブログランキングへ


| データベース | 13:29 | comments:0| trackbacks:0| TOP↑

COMMENT















非公開コメント

TRACKBACK URL

http://vmemo.blog36.fc2.com/tb.php/420-d41dd835

TRACKBACK

PREV | PAGE-SELECT | NEXT

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。