PostgreSQLスキルアップノート(自己啓発のための個人サイト)
pg_statsinfo2.4.1インストール・設定編
【一覧に戻る】
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
■■■■ PostgreSQL スキルアップノート
■■■■
■◆■■ pg_statsinfo2.4.1インストール・設定編
■■■■
■■■■
■■■■ 2013/02/16
■■■■ 使用環境:PostgreSQL9.1.7 (CentOS6.2)
(C) 2013 ohdb
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
【ダウンロード】
pg_statsinfoホームページ→●[サイト]
pg_statsinfoダウンロード(pgfoundry)→●[ダウンロード]
【マニュアル】
pg_statsinfoマニュアル→●[マニュアル]
リポジトリの構成(v2.4の場合)→●[マニュアル]
【参考記事】
−
■1■ 事前に
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
必須ではないが、SQL文を収集したい場合には「pg_stat_statements」をあらかじめインストールしておく。
■2■ インストール
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
インストール→●[マニュアル]
【□】 cd /home/postgres/download/pg_statsinfo
【□】 su
【□】 rpm -ivh pg_statsinfo-2.4.1-1.pg91.rhel6.x86_64.rpm
準備中... ########################################### [100%]
1:pg_statsinfo ########################################### [100%]
■3■ 初期設定1 postgresql.conf
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
インストール→●[マニュアル]
以下のshared_preload_libraries については他のものがある場合(pg_stat_statementsなど)
はカンマで列挙すること。
【□】 cd
【□】 vi postgresql.conf
既存のパラメータ・必須
shared_preload_libraries = 'pg_statsinfo' # 事前ロードを行う
log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log'
track_counts = on
track_activities = on
logging_collector = on #(設定なくても強制的に上書き)
log_destination 'csvlog' # (設定なくても強制的に追加、stderr除去)
log_min_messages = 'log' # debug5 〜 log
# log_timezone # unknown, gmt, utcのみ ※1
※1
デフォルトのpostgresql.confは以下のようなコメントになっている。
#log_timezone = '(defaults to server environment setting)'
とりあえずコメントのままにした。
【□】 既存のパラメータ・推奨
log_checkpoints = on # チェックポイントを記録
log_autovacuum_min_duration = 0 # 自動バキュームを記録
track_functions = 'all' # ストアドプロシージャの呼び出しに関する統計情報を収集する
【□】 専用のパラメータ・推奨
custom_variable_classes = 'pg_statsinfo' # 下の専用パラメータ指定のために必要
pg_statsinfo.snapshot_interval = 30min # スナップショットの取得間隔
pg_statsinfo.enable_maintenance = 'on' # リポジトリDBの自動メンテナンス設定
pg_statsinfo.maintenance_time = '00:02:00' # リポジトリDBの自動メンテナンス実行時刻設定
pg_statsinfo.repository_keepday = 7 # スナップショットの保持期間設定
pg_statsinfo.syslog_min_messages = 'error' # syslogに出力するログレベルを指定する。
pg_statsinfo.textlog_line_prefix = '%t %p %c-%l %x %q(%u, %d, %r, %a) ' # pg_statsinfoからテキストログの書式。log_line_prefixと同じ形式にする。
pg_statsinfo.syslog_line_prefix = '%t %p %c-%l %x %q(%u, %d, %r, %a) ' # pg_statsinfoからsyslog出力時の書式。
#pg_statsinfo.long_lock_threashold = 30s # ロック競合情報に記録する対象の条件(閾値)を指定する
■4■ 初期設定2 pg_hba.confの設定
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
localのpostgresからのアクセスがパスワードなしでできるように設定する。
identを指定する。
【□】 vi $PGDATA/pg_hba.conf
# TYPE DATABASE USER CIDR-ADDRESS METHOD [for UNIX]
local all postgres ident
■5■ 確認
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
【□】 pg_ctl start
loaded library "pg_statsinfo" などが出力されることを確認。
なお、初回の起動時のみスキーマの作成などのメッセージが表示される。
(installing schema: statsinfo)
■6■ 収集の確認
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
インストール後、指定した間隔以上が経過してから自動収集がされているかをpg_statsinfo
のコマンドにより確認する。
【□】 pg_statsinfo -d postgres -l
SnapshotID InstanceID Host Port Timestamp Comment Execute Time Size
---------------------------------------------------------------------------------------------------
1 1 pg91 5432 2013-02-16 17:00:00 00:00:01 320 KiB
2 1 pg91 5432 2013-02-16 17:10:00 00:00:00 104 KiB
3 1 pg91 5432 2013-02-16 17:20:00 00:00:00 88 KiB
4 1 pg91 5432 2013-02-16 17:30:00 00:00:00 88 KiB
5 1 pg91 5432 2013-02-16 17:40:00 00:00:00 104 KiB
指定した10分間隔で取得ができていることを確認。
1回の収集にかかった時間exec_timeは1秒以下であることがわかる。
なお、元情報であるリポジトリの「statsrepo.snapshot」をselectしても同じような情報が得られる。
以上でインストール終了
以上