PGCluster

インストールと設定

postgresqlのマルチマスタレプリケーション

http://pgfoundry.org/projects/pgcluster/ http://pgcluster.projects.postgresql.org/jp/index.html

日本人が開発されている!

ロードバランサー、レプリケーションサーバ、クラスタサーバの機能がある

クラスタサーバがpostgresqlのDBサーバとなる

/etc/hostsファイルがポイント!

すべてのホストについてhostsで明示的に接続可能な状況にしておく

CentOS5.xの最小構成インストールからでは以下を追加インストール

インストール

 useradd -d /usr/local/pgsql postgres
 ./configure
 gmake
 gmake install
 mkdir /usr/local/pgsql/data
 chown -R postgres /usr/local/pgsql
 su - postgres
 /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data -E EUC_JP --no-locale
 
 mkdir etc
 cp share/pgreplicate.conf.sample etc/pgreplicate.conf
 cp share/pglb.conf.sample etc/pglb.conf

設定ファイルの変更

 レプリケーションサーバとクラスタサーバはネットワーク接続されるため  ネットワーク接続を許可しておく  最終行に追加  host all all xxx.xxx.xxx.xxx netmask trust

 TCP接続を有効にし、最大接続数やポート番号を設定  tcpip_socket = true  max_connections = 100  port = 5432

 クラスターサーバーの設定

 レプリケーションサーバの設定

 ロードバランサーサーバの設定

レプリケーションはデータ復旧時、rsyncを利用するので事前に設定が必要

デフォルトではクラスタサーバはレプリケーションサーバとの接続が切れた時点で read_onlyモードで稼動する

レプリケーションサーバのカスケードは下位側のpgreplicate.confのみに設定する 設定すると、下位側が起動した際に上位側と通信を行う (1.9.0rc2では不具合があるみたい)

クラスタサーバの自動復旧モードは非常に便利!

起動と停止の順番は重要です

起動時

  1. レプリケーションサーバ
  2. クラスターサーバ
  3. ロードバランサー

停止時

  1. ロードバランサー
  2. クラスターサーバ
  3. レプリケーションサーバ