[pgcluster: 1005] レプリケーションサーバの冗長化について

Hiroshi Goto gotohiro @ fsi.co.jp
2007年 8月 31日 (金) 23:27:35 JST


お世話になっております。後藤と申します。
 
現在、PGCluster-1.7.0rc7を評価していますが
レプリケーションサーバの冗長化ができない状態でいます。

事象としてはマスタレプリケーションサーバが止まってしまうと
移行ロードバランサ経由で更新処理を行おうとすると
ERROR:  This query is not permitted when all replication servers fell down
とのエラーメッセージが出力されます。

PGCluster1.3.1rc7では動作することが確認できたのですが
PGCluster-1.7.0rc7ではうまくカスケードされない状態です。

以下に環境、設定を記載します。
OS:Slackware 11
DB:pgcluster-1.7.0rc7
pc1:クラスタDB1、レプリケーションサーバ1(マスタ)
pc2:クラスタDB2、レプリケーションサーバ2
pc3:クラスタDB3、レプリケーションサーバ3
pc4:ロードバランサ

ご返信いただければ幸いです。
よろしくお願い致します。

【pc1】cluster.conf
<Replicate_Server_Info>
 <Host_Name>   motionx5.denkai-k3.gr.jp </Host_Name>
 <Port>    8001    </Port>
 <Recovery_Port>  8101    </Recovery_Port>
</Replicate_Server_Info>
<Replicate_Server_Info>
 <Host_Name>  motionx6.denkai-k3.gr.jp </Host_Name>
 <Port>   8001    </Port>
 <Recovery_Port>  8101    </Recovery_Port>
</Replicate_Server_Info>
<Replicate_Server_Info>
 <Host_Name>  hpsv4.denkai-k3.gr.jp </Host_Name>
 <Port>   8001    </Port>
 <Recovery_Port>  8101    </Recovery_Port>
</Replicate_Server_Info>
<Host_Name>   motionx5.denkai-k3.gr.jp  </Host_Name>
<Recovery_Port>  7001    </Recovery_Port>
<Rsync_Path>   /usr/bin/rsync   </Rsync_Path>
<Rsync_Option>   ssh -2    </Rsync_Option>
<Rsync_Compress>  yes    </Rsync_Compress>
<Pg_Dump_Path>   /usr/local/pgsql/bin/pg_dump </Pg_Dump_Path>
<When_Stand_Alone>  read_only   </When_Stand_Alone>
<Replication_Timeout>  1 min    </Replication_Timeout>
<LifeCheck_Timeout>  3s    </LifeCheck_Timeout>
<LifeCheck_Interval>  11s    </LifeCheck_Interval>

【pc1】pgreplicate.conf
<Cluster_Server_Info>
    <Host_Name>  motionx5.denkai-k3.gr.jp  </Host_Name>
    <Port>   5431    </Port>
    <Recovery_Port>  7001    </Recovery_Port>
</Cluster_Server_Info>
<Cluster_Server_Info>
    <Host_Name>   motionx6.denkai-k3.gr.jp </Host_Name>
    <Port>   5431    </Port>
    <Recovery_Port>  7001    </Recovery_Port>
</Cluster_Server_Info>
<Cluster_Server_Info>
    <Host_Name>  hpsv4.denkai-k3.gr.jp  </Host_Name>
    <Port>   5431    </Port>
    <Recovery_Port>  7001    </Recovery_Port>
</Cluster_Server_Info>
<LoadBalance_Server_Info>
 <Host_Name>  hpsv5.denkai-k3.gr.jp </Host_Name>
 <Recovery_Port>  6001    </Recovery_Port>
</LoadBalance_Server_Info>
<Host_Name>   motionx5.denkai-k3.gr.jp  </Host_Name>
<Replication_Port>  8001    </Replication_Port>
<Recovery_Port>  8101    </Recovery_Port>
<RLOG_Port>   8301    </RLOG_Port>
<Response_Mode>  normal    </Response_Mode>
<Use_Replication_Log> yes    </Use_Replication_Log>
<Replication_Timeout>  1min    </Replication_Timeout>
<LifeCheck_Timeout>  3s    </LifeCheck_Timeout>
<LifeCheck_Interval>  15s    </LifeCheck_Interval>

【pc2】cluster.conf
<Replicate_Server_Info>
 <Host_Name>   motionx5.denkai-k3.gr.jp </Host_Name>
 <Port>    8001    </Port>
 <Recovery_Port>  8101    </Recovery_Port>
</Replicate_Server_Info>
<Replicate_Server_Info>
 <Host_Name>  motionx6.denkai-k3.gr.jp </Host_Name>
 <Port>   8001    </Port>
 <Recovery_Port>  8101    </Recovery_Port>
</Replicate_Server_Info>
<Replicate_Server_Info>
 <Host_Name>  hpsv4.denkai-k3.gr.jp </Host_Name>
 <Port>   8001    </Port>
 <Recovery_Port>  8101    </Recovery_Port>
</Replicate_Server_Info>

【pc2】pgreplicate.conf
<Cluster_Server_Info>
    <Host_Name>  motionx5.denkai-k3.gr.jp  </Host_Name>
    <Port>   5431    </Port>
    <Recovery_Port>  7001    </Recovery_Port>
</Cluster_Server_Info>
<Cluster_Server_Info>
    <Host_Name>   motionx6.denkai-k3.gr.jp </Host_Name>
    <Port>   5431    </Port>
    <Recovery_Port>  7001    </Recovery_Port>
</Cluster_Server_Info>
<Cluster_Server_Info>
    <Host_Name>  hpsv4.denkai-k3.gr.jp  </Host_Name>
    <Port>   5431    </Port>
    <Recovery_Port>  7001    </Recovery_Port>
</Cluster_Server_Info>
<LoadBalance_Server_Info>
 <Host_Name>  hpsv5.denkai-k3.gr.jp </Host_Name>
 <Recovery_Port>  6001    </Recovery_Port>
</LoadBalance_Server_Info>
<Replicate_Server_Info>
 <Host_Name>  motionx5.denkai-k3.gr.jp </Host_Name>
 <Port>   8001     </Port>
 <Recovery_Port>  8101    </Recovery_Port>
</Replicate_Server_Info>
<Host_Name>   motionx6.denkai-k3.gr.jp  </Host_Name>
<Replication_Port>  8001    </Replication_Port>
<Recovery_Port>  8101    </Recovery_Port>
<RLOG_Port>   8301    </RLOG_Port>
<Response_Mode>  normal    </Response_Mode>
<Use_Replication_Log> yes     </Use_Replication_Log>
<Replication_Timeout>  1min    </Replication_Timeout>
<LifeCheck_Timeout>  3s    </LifeCheck_Timeout>
<LifeCheck_Interval>  15s    </LifeCheck_Interval>

【pc3】cluster.conf
<Replicate_Server_Info>
 <Host_Name>   motionx5.denkai-k3.gr.jp </Host_Name>
 <Port>    8001    </Port>
 <Recovery_Port>  8101    </Recovery_Port>
</Replicate_Server_Info>
<Replicate_Server_Info>
 <Host_Name>  motionx6.denkai-k3.gr.jp </Host_Name>
 <Port>   8001    </Port>
 <Recovery_Port>  8101    </Recovery_Port>
</Replicate_Server_Info>
<Replicate_Server_Info>
 <Host_Name>  hpsv4.denkai-k3.gr.jp </Host_Name>
 <Port>   8001    </Port>
 <Recovery_Port>  8101    </Recovery_Port>
</Replicate_Server_Info>
<Host_Name>   hpsv4.denkai-k3.gr.jp  </Host_Name>
<Recovery_Port>  7001    </Recovery_Port>
<Rsync_Path>   /usr/bin/rsync   </Rsync_Path>
<Rsync_Option>   ssh -2    </Rsync_Option>
<Rsync_Compress>  yes    </Rsync_Compress>
<Pg_Dump_Path>   /usr/local/pgsql/bin/pg_dump </Pg_Dump_Path>
<When_Stand_Alone>  read_only   </When_Stand_Alone>
<Replication_Timeout>  1 min    </Replication_Timeout>
<LifeCheck_Timeout>  3s    </LifeCheck_Timeout>
<LifeCheck_Interval>  11s    </LifeCheck_Interval>

【pc3】pgreplicate.conf
<Cluster_Server_Info>
    <Host_Name>  motionx5.denkai-k3.gr.jp  </Host_Name>
    <Port>   5431    </Port>
    <Recovery_Port>  7001    </Recovery_Port>
</Cluster_Server_Info>
<Cluster_Server_Info>
    <Host_Name>   motionx6.denkai-k3.gr.jp </Host_Name>
    <Port>   5431    </Port>
    <Recovery_Port>  7001    </Recovery_Port>
</Cluster_Server_Info>
<Cluster_Server_Info>
    <Host_Name>  hpsv4.denkai-k3.gr.jp  </Host_Name>
    <Port>   5431    </Port>
    <Recovery_Port>  7001    </Recovery_Port>
</Cluster_Server_Info>
<LoadBalance_Server_Info>
 <Host_Name>  hpsv5.denkai-k3.gr.jp </Host_Name>
 <Recovery_Port>  6001    </Recovery_Port>
</LoadBalance_Server_Info>
<Replicate_Server_Info>
 <Host_Name>  motionx6.denkai-k3.gr.jp </Host_Name>
 <Port>   8001     </Port>
 <Recovery_Port>  8101    </Recovery_Port>
</Replicate_Server_Info>
<Host_Name>   hpsv4.denkai-k3.gr.jp  </Host_Name>
<Replication_Port>  8001    </Replication_Port>
<Recovery_Port>  8101    </Recovery_Port>
<RLOG_Port>   8301    </RLOG_Port>
<Response_Mode>  normal    </Response_Mode>
<Use_Replication_Log> yes     </Use_Replication_Log>
<Replication_Timeout>  1min    </Replication_Timeout>
<LifeCheck_Timeout>  3s    </LifeCheck_Timeout>
<LifeCheck_Interval>  15s    </LifeCheck_Interval>

【pc3】pglb.conf
<Cluster_Server_Info>
    <Host_Name>  motionx5.denkai-k3.gr.jp </Host_Name>
    <Port>   5431   </Port>
    <Max_Connect>  50   </Max_Connect>
</Cluster_Server_Info>
<Cluster_Server_Info>
    <Host_Name>   motionx6.denkai-k3.gr.jp </Host_Name>
    <Port>   5431   </Port>
    <Max_Connect>  50   </Max_Connect>
</Cluster_Server_Info>
<Cluster_Server_Info>
    <Host_Name>  hpsv4.denkai-k3.gr.jp </Host_Name>
    <Port>   5431   </Port>
    <Max_Connect>  100   </Max_Connect>
</Cluster_Server_Info>
<Host_Name>   hpsv5.denkai-k3.gr.jp  </Host_Name>
<Backend_Socket_Dir>  /tmp    </Backend_Socket_Dir>
<Receive_Port>   5432    </Receive_Port>
<Recovery_Port>  6001    </Recovery_Port>
<Max_Cluster_Num>  128    </Max_Cluster_Num>
<Use_Connection_Pooling>  no    </Use_Connection_Pooling>
<LifeCheck_Timeout>  3s    </LifeCheck_Timeout>
<LifeCheck_Interval>  15s    </LifeCheck_Interval>




pgcluster メーリングリストの案内