[pgpool-general: 2572] pgpool_recovery failed

Cristina Valderas cvalderas at corenetworks.es
Wed Feb 12 22:57:55 JST 2014


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




-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.sraoss.jp/pipermail/pgpool-general/attachments/20140212/606831db/attachment.html>


More information about the pgpool-general mailing list