[pgpool-general: 2578] Re: pgpool_recovery failed

Tatsuo Ishii ishii at postgresql.org
Thu Feb 13 20:45:51 JST 2014


Great. BTW, pgpool-II should work with PostgreSQL 8.1.

Best regards,
--
Tatsuo Ishii
SRA OSS, Inc. Japan
English: http://www.sraoss.co.jp/index_en.php
Japanese: http://www.sraoss.co.jp

> Forget it.
> it was a Selinux issue.
> Thanks and regards
> 
> 
> -------- Original Message --------
> Subject: 	Re: [pgpool-general: 2572] pgpool_recovery failed
> Date: 	Thu, 13 Feb 2014 09:37:07 +0100
> From: 	Cristina Valderas <cvalderas at corenetworks.es>
> To: 	Tatsuo Ishii <ishii at postgresql.org>
> 
> 
> 
> Thank you very much for your answer.
> I was using this pgpool version because the Postgresql version we have
> to install is also quite old (8.1) which is the latest supported by
> another software we have to work with.
> 
> Would you be kind enough to tell me where I could find a compatibility
> matrix? I have been looking for one but I have not been able to find
> any.
> 
> many thanks in advance,
> best regards,
> Cristina
> 
> 
> On 02/12/2014 11:40 PM, Tatsuo Ishii wrote:
>> Pgpool-II 2.2.2 is too old and 2.x are not maintained anymore. Please
>> upgrade to the latest version.
>>
>> Best regards,
>> --
>> Tatsuo Ishii
>> SRA OSS, Inc. Japan
>> English: http://www.sraoss.co.jp/index_en.php
>> Japanese: http://www.sraoss.co.jp
>>
>>> Hi All,
>>>
>>> I'm just a beginner with pgpool, and I'm not able to recover a node
>>> using pgpool recovery.
>>>
>>> SO: Red Hat 6.4
>>> pgpool version: pgpool-II-2.2.2
>>> postgresSQL: 8.4.18
>>>
>>> I'm using the user postgres also in pgpool.conf file as recovery_user
>>> just to simplify.
>>>
>>> When I execute:
>>> postgres$ /opt/pgpool2/bin/pcp_recovery_node 20 postgres1 9898
>>> postgres postgres 1
>>> BackendError
>>>
>>> taking a look at the logs:
>>>
>>> pgpool log:
>>>
>>> 2014-02-12 14:44:16 DEBUG: pid 31401: I am PCP 31401 accept fd 5
>>> 2014-02-12 14:44:16 DEBUG: pid 31401: pcp_child: received PCP packet
>>> type of service 'M'
>>> 2014-02-12 14:44:16 DEBUG: pid 31401: pcp_child: salt sent to the
>>> client
>>> 2014-02-12 14:44:16 DEBUG: pid 31401: pcp_child: received PCP packet
>>> type of service 'R'
>>> 2014-02-12 14:44:16 DEBUG: pid 31401: pcp_child: authentication OK
>>> 2014-02-12 14:44:16 DEBUG: pid 31401: pcp_child: received PCP packet
>>> type of service 'O'
>>> 2014-02-12 14:44:16 DEBUG: pid 31401: pcp_child: start online recovery
>>> 2014-02-12 14:44:16 LOG:   pid 31401: starting recovering node 1
>>> 2014-02-12 14:44:16 DEBUG: pid 31401: exec_checkpoint: start
>>> checkpoint
>>> 2014-02-12 14:44:16 DEBUG: pid 31401: exec_checkpoint: finish
>>> checkpoint
>>> 2014-02-12 14:44:16 LOG:   pid 31401: CHECKPOINT in the 1st stage done
>>> 2014-02-12 14:44:16 LOG: pid 31401: starting recovery command: "SELECT
>>> pgpool_recovery('copy_base_backup', '10.164.4.223',
>>> '/var/lib/pgsql/data')"
>>> 2014-02-12 14:44:16 DEBUG: pid 31401: exec_recovery: start recovery
>>> 2014-02-12 14:44:16 ERROR: pid 31401: exec_recovery: copy_base_backup
>>> command failed at 1st stage
>>> 2014-02-12 14:44:16 DEBUG: pid 31401: exec_recovery: finish recovery
>>> 2014-02-12 14:44:16 DEBUG: pid 31401: pcp_child: received PCP packet
>>> type of service 'X'
>>> 2014-02-12 14:44:16 DEBUG: pid 31401: pcp_child: client
>>> disconnecting. close connection
>>>
>>>
>>> postgres log:
>>>
>>> LOG:  connection received: host=10.164.4.222 port=57182
>>> LOG:  connection authorized: user=postgres database=template1
>>> LOG:  statement: CHECKPOINT
>>> LOG: statement: SELECT pgpool_recovery('copy_base_backup',
>>> '10.164.4.223', '/var/lib/pgsql/data')
>>> sh: /var/lib/pgsql/data/copy_base_backup: Permission denied
>>> ERROR:  pgpool_recovery failed
>>> STATEMENT: SELECT pgpool_recovery('copy_base_backup', '10.164.4.223',
>>> '/var/lib/pgsql/data')
>>> LOG: disconnection: session time: 0:00:00.113 user=postgres
>>> database=template1 host=10.164.4.222 port=57182
>>>
>>> It seems a permission issue, however I have set the script
>>> copy_base_backup's permission to 777, just in case and if I run this
>>> script directly everything goes right:
>>>
>>> postgres$ $ ./copy_base_backup . 10.164.4.223 /var/lib/pgsql/data/
>>> #! /bin/sh -xvvv
>>>
>>> DATA=$1
>>> + DATA=.
>>> RECOVERY_TARGET=$2
>>> + RECOVERY_TARGET=10.164.4.223
>>> echo "$RECOVERY_TARGET"
>>> + echo 10.164.4.223
>>> 10.164.4.223
>>> RECOVERY_DATA=$3
>>> + RECOVERY_DATA=/var/lib/pgsql/data/
>>> echo "$RECOVERY_DATA"
>>> + echo /var/lib/pgsql/data/
>>> /var/lib/pgsql/data/
>>>
>>> psql -c "select pg_start_backup('pgpool-recovery')" postgres
>>> + psql -c 'select pg_start_backup('\''pgpool-recovery'\'')' postgres
>>>   pg_start_backup
>>> -----------------
>>>   0/21000020
>>> (1 row)
>>>
>>> echo "restore_command = 'scp
>>> $HOSTNAME:/var/lib/pgsql/data/pg_xlog_archive/%f %p'" >
>>> /var/lib/pgsql/data/recovery.conf
>>> + echo 'restore_command = '\''scp
>>> postgres1.corenetworks.es:/var/lib/pgsql/data/pg_xlog_archive/%f
>>> %p'\'''
>>> tar -C /var/lib -zcf pgsql.tar.gz pgsql
>>> + tar -C /var/lib -zcf pgsql.tar.gz pgsql
>>> tar: pgsql/data/pgsql.tar.gz: file changed as we read it
>>>
>>> psql -c 'select pg_stop_backup()' postgres
>>> + psql -c 'select pg_stop_backup()' postgres
>>>   pg_stop_backup
>>> ----------------
>>>   0/21000088
>>> (1 row)
>>>
>>> scp pgsql.tar.gz $RECOVERY_TARGET:$RECOVERY_DATA
>>> + scp pgsql.tar.gz 10.164.4.223:/var/lib/pgsql/data/
>>> pgsql.tar.gz 100%   59MB  29.6MB/s   00:02
>>>
>>> And I got copy of pgsql.tar.gz directory both in local and remote
>>> nodes, so is not a ssh problem.
>>>
>>> Additionally when the SELECT sentence is executed:
>>> postgres$ psql -h postgres1 -p 9999 -U postgres -d template1
>>>
>>> template1=# SELECT pgpool_recovery('copy_base_backup', '10.164.4.223',
>>> '/var/lib/pgsql/data');
>>> ERROR:  pgpool_recovery failed
>>>
>>>
>>> Any help would be really appreciated,
>>> kind regards,
>>> Cristina
>>>
>>>
>>>
>>>
> 
> 
> 


More information about the pgpool-general mailing list