pgpoolⅡ(2.3.2.2)使い方
参考ページ
http://pgpool.projects.postgresql.org/pgpool-II/doc/pgpool-ja.html
http://pgpool.projects.postgresql.org/pgpool-II/doc/tutorial-ja.html#config
インストール
yum install gcc -y
以下からソースを落とす。
http://pgfoundry.org/frs/?group_id=1000055
ソースを解凍し、ソースフォルダ内に移動する。
./configure
make
make install
※Postgresを先に入れておかないとエラーになります。
レプリケーション用モード用の設定をする。
/usr/local/etc/pgpool.conf(/usr/local/etc/pgpool.conf.sampleと同一ファイル)
・replication_mode→「true」に設定
レプリケーションモードで動作させる場合はtrueを指定してください。デ フォルト値はfalseです。このパラメータを変更した時には pgpool-II を再起動してください。
・load_balance_mode→「true」に設定
trueを指定するとレプリケーションモードまたはマスタースレーブモードの際に、SELECT文をロードバランスして検索性能を向上させることができます。デフォルト値はfalseです。このパラメータを変更した時には pgpool-II を再起動してください。
・replication_stop_on_mismatch→「true」に設定
trueを指定するとマスターDBと他のDBノードの間でデータの不一致があった場合 に強制的に縮退運転に入ります。このオプションがfalseの場合は、該当の 問い合わせを強制的に終了するだけに留めます。デフォルト値はfalseです。
・insert_lock→「true」に設定
SERIAL型を使っているテーブルをレプリケーションすると、SERIAL型の列 の値がDBノードの間で一致しなくなることがあります。この問題は、 該当テーブルを明示的にロックすることで回避できます(もちろんトランザ クションの並列実行性は犠牲になりますが)。この動作を自動的に行います。
ユーザのログイン設定をする。
/usr/local/etc/pcp.conf(/usr/local/etc/pcp.conf.sampleと同一ファイル)
postgresユーザで、パスワードもpostgresなら、Exampleのところに記述してある
postgres:e8a48653851e28c69d0506508fb27fc5をそのままコメント外すだけ。
それ以外のユーザを、登録する場合は、/usr/local/bin/pg_md5でユーザのハッシュパスワード部分を作成する。
ユーザ名:ハッシュパスワード
接続許可設定
/etc/pool_hba.conf
local all all trust
host all all 0.0.0.0 0.0.0.0 trust
Postgresの設定(ポートを5431、5433で2つ立ち上げる)
※5432は、pgpoolのシステムDBとして設定されているため、避けたほうが良い。
DB用フォルダ作成
mkdir -p /var/lib/postgresql/data1
mkdir -p /var/lib/postgresql/data2
初期化
initdb -D /var/lib/postgresql/data1 -Upostgres
initdb -D /var/lib/postgresql/data2 -Upostgres
ポート番号変更
/var/lib/postgresql/data1/postgresql.conf
/var/lib/postgresql/data2/postgresql.conf
上記のファイルのport項目を、5431、5433にそれぞれ設定する。
ユーザ接続用ファイルを編集
/var/lib/postgresql/data1/pg_hba.conf
/var/lib/postgresql/data2/pg_hba.conf
全ての設定をコメントアウトし、以下の設定だけにする。
local all all trust
host all all 0.0.0.0 0.0.0.0 trust
Postgres起動
su - postgres
pg_ctl -D /var/lib/postgresql/data1 start
pg_ctl -D /var/lib/postgresql/data2 start
終了する場合
pg_ctl -D /var/lib/postgresql/data1 stop
pg_ctl -D /var/lib/postgresql/data2 stop
起動確認
postgresを2つ立ち上げておくこと。
pgpool
netstat -pantuで、pgpoolが9999で待ち受けていること。
また、Postgresが5431、5433で待ち受けていること。
pgpool経由でotameshiDBを作成する。
createdb -p 9999 -Upostgres otameshi
各Postgresに、DBが作成されているか確認する。
psql -p 5431 -Upostgres otameshi
psql -p 5433 -Upostgres otameshi
終了
pgpool stop
[1回]
PR