[pgcluster: 489] av13でリカバリーができない

kazunari takahashi kazunari.takahashi @ ctc-g.co.jp
2004年 8月 12日 (木) 00:01:55 JST


高橋です.

早速、av13で試してみました.
下記のような現象がでましたので報告させていただきます.

####################################
現象
####################################

・通常のリカバリーがエラーで終了する

####################################
#環境
####################################
pgcluster-1.0.7av13

clusterDB ×3 (solaris8 sparc) host名:serverA , serverB , serverC
rgrp × 1 (solaris8 sparc) host名:pgrp

####################################
#手順
####################################

1. レプリケーションサーバ立ち上げ

2. serverA起動

3. serverBをリカバリーモードで起動

% pg_ctl start -D /usr/local/pgsql/data -o "-i -R"
postmaster successfully started
Start in recovery mode!
Please wait until a data synchronization finishes from Master DB...
/usr/local/pgsql/bin/postmaster: sorry, recovery failed.



-----------------------------------------------------------------------------------
replicate.conf
-----------------------------------------------------------------------------------
pgrp% more pgreplicate.conf
#=============================================================
#  PGReplicate configuration file
#-------------------------------------------------------------
# file: pgreplicate.conf
#-------------------------------------------------------------
# This file controls:
#       o which hosts & port are cluster server
#       o which port use for replication request from cluster server
#=============================================================
#
#-------------------------------------------------------------
# A setup of Cluster DB(s)
#
#               o Host_Name : The host name of Cluster DB.
#                             -- please write a host name by FQDN.
#                             -- do not write IP address.
#               o Port : The connection port with postmaster.
#               o Recovery_Port : The connection port at the time of
#                                 a recovery sequence .
#-------------------------------------------------------------
<Cluster_Server_Info>
    <Host_Name>   serverA  </Host_Name>
    <Port>        5432                </Port>
    <Recovery_Port>       7779        </Recovery_Port>
</Cluster_Server_Info>
<Cluster_Server_Info>
    <Host_Name>   serverB </Host_Name>
    <Port>        5432                </Port>
    <Recovery_Port>       7779        </Recovery_Port>
</Cluster_Server_Info>
<Cluster_Server_Info>
    <Host_Name>   serverC   </Host_Name>
    <Port>        5432                </Port>
    <Recovery_Port>       7779       </Recovery_Port>
</Cluster_Server_Info>
#
#-------------------------------------------------------------
# A setup of Load Balance Server
#
#               o Host_Name : The host name of a load balance server.
#                             -- please write a host name by FQDN.
#                             -- do not write IP address.
#               o Recovery_Port : The connection port at the time of
#                                 a recovery sequence .
#-------------------------------------------------------------
#<LoadBalance_Server_Info>
#       <Host_Name>   pglb  </Host_Name>
#       <Recovery_Port>       7780            </Recovery_Port>
#</LoadBalance_Server_Info>
#
#------------------------------------------------------------
# A setup of the upper replication server for cascade connection.
#
#               o Host_Name : The host name of Cluster DB.
#                             -- please write a host name by FQDN.
#                             -- do not write IP address.
#               o Port : The connection port with postmaster.
#               o Recovery_Port : The connection port at the time of
#                                 a recovery sequence .
#------------------------------------------------------------
#<Replicate_Server_Info>
#       <Host_Name> pglb </Host_Name>
#       <Port> 8887 </Port>
#       <Recovery_Port> 7778 </Recovery_Port>
#</Replicate_Server_Info>
#
#-------------------------------------------------------------
# A setup of a replication server
#
#               o Replicate_Port : connection for reprication
#               o Recovery_Port : connection for recovery
#               o Response_mode : timing which returns a response
#                 normal   -- return result of DB which received the query
#                 reliable -- return result after waiting for response of
#                      all Cluster DBs.
#-------------------------------------------------------------
<Replication_Port>    8777            </Replication_Port>
<Recovery_Port>       7778            </Recovery_Port>
<Response_Mode>       reliable          </Response_Mode>


-----------------------------------------------------------------------------------
debugログ

DEBUG(replicate_loop): replicate main: selected

DEBUG(pgrecovery_loop): recovery accept port 7778

DEBUG(read_packet): receive packet no:200

DEBUG(read_packet): recovery error accept. top queueing and initiarse recovery status

DEBUG(PGRsend_queue): master  - 0

ERROR(PGRget_HostTbl): master table is null

ERROR(send_recovery_packet): send() failed. (Socket operation on non-socket)
ERROR(send_recovery_packet): send() failed. (Bad file number)
ERROR(send_recovery_packet): send() failed. (Bad file number)
ERROR(send_recovery_packet): send() failed. (Bad file number)
ERROR(send_recovery_packet): send() failed. (Bad file number)
ERROR(send_recovery_packet): send failed and PGR_Create_Socket_Connect failed
DEBUG(replicate_loop): replicate_loop selected

DEBUG(PGRclear_connections): replicate loop exit
DEBUG(replicate_loop): wait replicate



---------------------------------------

高橋 一成 <kazunari.takahashi @ ctc-g.co.jp>




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