[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 メーリングリストの案内