geek.conf.2

あるインフラエンジニアの備忘録

postgreSQLをインストールしようっか、まあ設定も☆

postgreSQLをインストールして設定します。

*OSはRHEL 5っす

・ユーザ作成
#groupadd postgres
#useradd -g postgres -c "postgres Administrator" postgres
# su - postgres
$ vi .bashrc
→ 以下の設定を追記
POSTGRES_HOME="/usr/local/postgres"
export PATH=$POSTGRES_HOME/bin:"$PATH"
export MANPATH=$POSTGRES_HOME/man
export PGLIB=$POSTGRES_HOME/lib
export PGDATA=$POSTGRES_HOME/data

・インストール
ソースからコンパイルします。
configure optionはprefix=インストールディレクトリのみです。

# tar zxvf postgresql-8.4.x.tar.gz
# cd postgresql-8.4.x
# ./configure --prefix=/usr/local/postgres
# make
# make install
# chown –R postgres:postgres /usr/local/postgres

・共有ライブラリの設定
共有ライブラリにpostgresのライブラリのパスを登録
検索パスに登録してやるんですな。
# cd /etc/ld.so.conf.d
# vi postgres.conf
→ 以下の設定を追記
/usr/local/postgres/lib
# ldconfig

自動起動の設定
サンプルスクリプトから・・・コ・ピー・・
# cp –p /usr/local/src/postgresql-8.4.4/contrib./start-scripts/linux /etc/init.d/postgres
# vi /etc/init.d/postgres
→ [PGUSER]のパラメータを「postgres」に変更
# chmod +x /etc/init.d/postgres
# chown root:root /etc/init.d/postgres
# chkconfig --add postgres
# chkconfig postgres on

・データベースシステムの初期化
initdbでデータベースシステムを初期化作成する。オプションの意味は

  • W → パスワード入力のプロンプトを表示

# su - postgres
$ initdb --auth=password --pgdata=/usr/local/postgres/data --encoding=UTF8 --locale C -W

・認証の設定
# vi /usr/local/pgsql/data/pg_hba.conf
→ [IPv4 local connections]のパラメータを「host all all 192.168.0.0/16 password」に変更てか何でも良いからアクセス制限かける。

・パラメータファイルの変更
# vi /usr/local/pgsql/data/postgresql.conf

→ 以下に変更パラメータを纏める

-------------------------postgresql.conf編集始まり-----------------------------
#LISTENするインターフェース
listen_addresses ‘*’

#最大コネクション数
max_connections 512

#postmasterプロセスに確保する使用メモリ量
#/proc/sys/kernel/shmmax以下にすること努々忘れることなかれ
shared_buffers 512MB

#データのソート処理に確保する使用メモリ量
work_mem 4MB

#バキュームにかかったコストがvacuum_cost_limitで指定した制限値に達したときに
#バキュームを休止する期間(ms)
vacuum_cost_delay 10

#WALデータ用に共有メモリ内に割り当てられたディスクページバッファ量
wal_buffers 512kB

#コミットレコードをWALバッファに書き込む時と、バッファをディスクに吐き出す時の
#ミリ秒単位の時間差遅延(ms)
commit_delay 10

#ランダムアクセスで取得したディスクページのコスト
random_page_cost 3.0

#ディスクキャッシュとして利用可能なメモリ量
effective_cache_size 512MB

#エンコード
client_encoding UTF-8

#デッドロックの検出を行う間隔
deadlock_timeout 60s

#deadlock_timeoutを超えて待っているトランザクションをログに出力
log_lock_waits on

#ログの出力先
log_destination ‘syslog’

#syslogファシリティ
syslog_facility ‘LOCAL3’

#syslogの識別子
syslog_ident ‘postgres’

#標準出力・標準エラー出力にログメッセージを出力しない
silent_mode on

#アーカイブモードオン(まま)
archive_mode on

#アーカイブコマンド
#WALファイルをアーカイブディレクトリにコピーする
archive_command 'cp "%p" /usr/local/postgres/archive/"%f"'

-------------------------postgresql.conf編集終わり-----------------------------

・アーカイブ用ディレクトリ作成
アーカイブログファイルの格納ディレクトリ設定
# su - postgres
$ mkdir /usr/local/pgsql/archive/
$ exit


オシマイ

次回よりpostgreSQL8.4.x、pgpool-II 3.0.x、slony-I 1.2.xによるレプリケーション構成を構築する。
お見逃しなく!!