<html>
<head>
<meta http-equiv="content-type" content="text/html;
charset=ISO-8859-1">
</head>
<body bgcolor="#FFFFFF" text="#000000">
Hi All,<br>
<br>
I'm just a beginner with pgpool, and I'm not able to recover a node
using pgpool recovery.<br>
<br>
SO: Red Hat 6.4<br>
pgpool version: pgpool-II-2.2.2<br>
postgresSQL: 8.4.18<br>
<br>
I'm using the user postgres also in pgpool.conf file as
recovery_user just to simplify.<br>
<br>
When I execute:<br>
<font face="Courier New, Courier, monospace">postgres$
/opt/pgpool2/bin/pcp_recovery_node 20 postgres1 9898 postgres
postgres 1<br>
BackendError</font><br>
<br>
taking a look at the logs:<br>
<br>
pgpool log:<br>
<br>
<font face="Courier New, Courier, monospace">2014-02-12 14:44:16
DEBUG: pid 31401: I am PCP 31401 accept fd 5<br>
2014-02-12 14:44:16 DEBUG: pid 31401: pcp_child: received PCP
packet type of service 'M'<br>
2014-02-12 14:44:16 DEBUG: pid 31401: pcp_child: salt sent to the
client<br>
2014-02-12 14:44:16 DEBUG: pid 31401: pcp_child: received PCP
packet type of service 'R'<br>
2014-02-12 14:44:16 DEBUG: pid 31401: pcp_child: authentication OK<br>
2014-02-12 14:44:16 DEBUG: pid 31401: pcp_child: received PCP
packet type of service 'O'<br>
2014-02-12 14:44:16 DEBUG: pid 31401: pcp_child: start online
recovery<br>
2014-02-12 14:44:16 LOG: pid 31401: starting recovering node 1<br>
2014-02-12 14:44:16 DEBUG: pid 31401: exec_checkpoint: start
checkpoint<br>
2014-02-12 14:44:16 DEBUG: pid 31401: exec_checkpoint: finish
checkpoint<br>
2014-02-12 14:44:16 LOG: pid 31401: CHECKPOINT in the 1st stage
done<br>
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')"<br>
2014-02-12 14:44:16 DEBUG: pid 31401: exec_recovery: start
recovery<br>
2014-02-12 14:44:16 ERROR: pid 31401: exec_recovery:
copy_base_backup command failed at 1st stage<br>
2014-02-12 14:44:16 DEBUG: pid 31401: exec_recovery: finish
recovery<br>
2014-02-12 14:44:16 DEBUG: pid 31401: pcp_child: received PCP
packet type of service 'X'<br>
2014-02-12 14:44:16 DEBUG: pid 31401: pcp_child: client
disconnecting. close connection<br>
<br>
</font><br>
postgres log:<br>
<br>
<font face="Courier New, Courier, monospace">LOG: connection
received: host=10.164.4.222 port=57182<br>
LOG: connection authorized: user=postgres database=template1<br>
LOG: statement: CHECKPOINT<br>
LOG: statement: SELECT pgpool_recovery('copy_base_backup',
'10.164.4.223', '/var/lib/pgsql/data')<br>
sh: /var/lib/pgsql/data/copy_base_backup: Permission denied<br>
ERROR: pgpool_recovery failed<br>
STATEMENT: SELECT pgpool_recovery('copy_base_backup',
'10.164.4.223', '/var/lib/pgsql/data')<br>
LOG: disconnection: session time: 0:00:00.113 user=postgres
database=template1 host=10.164.4.222 port=57182<br>
</font><br>
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:<br>
<br>
<font face="Courier New, Courier, monospace">postgres$ $
./copy_base_backup . 10.164.4.223 /var/lib/pgsql/data/<br>
#! /bin/sh -xvvv<br>
<br>
DATA=$1<br>
+ DATA=.<br>
RECOVERY_TARGET=$2<br>
+ RECOVERY_TARGET=10.164.4.223<br>
echo "$RECOVERY_TARGET"<br>
+ echo 10.164.4.223<br>
10.164.4.223<br>
RECOVERY_DATA=$3<br>
+ RECOVERY_DATA=/var/lib/pgsql/data/<br>
echo "$RECOVERY_DATA"<br>
+ echo /var/lib/pgsql/data/<br>
/var/lib/pgsql/data/</font><br>
<br>
<font face="Courier New, Courier, monospace">psql -c "select
pg_start_backup('pgpool-recovery')" postgres<br>
+ psql -c 'select pg_start_backup('\''pgpool-recovery'\'')'
postgres<br>
pg_start_backup <br>
-----------------<br>
0/21000020<br>
(1 row)<br>
<br>
echo "restore_command = 'scp
$HOSTNAME:/var/lib/pgsql/data/pg_xlog_archive/%f %p'" >
/var/lib/pgsql/data/recovery.conf<br>
+ echo 'restore_command = '\''scp
postgres1.corenetworks.es:/var/lib/pgsql/data/pg_xlog_archive/%f
%p'\'''<br>
tar -C /var/lib -zcf pgsql.tar.gz pgsql<br>
+ tar -C /var/lib -zcf pgsql.tar.gz pgsql<br>
tar: pgsql/data/pgsql.tar.gz: file changed as we read it<br>
<br>
psql -c 'select pg_stop_backup()' postgres<br>
+ psql -c 'select pg_stop_backup()' postgres<br>
pg_stop_backup <br>
----------------<br>
0/21000088<br>
(1 row)<br>
<br>
scp pgsql.tar.gz $RECOVERY_TARGET:$RECOVERY_DATA<br>
+ scp pgsql.tar.gz 10.164.4.223:/var/lib/pgsql/data/<br>
pgsql.tar.gz
100% 59MB 29.6MB/s 00:02 </font><br>
<br>
And I got copy of pgsql.tar.gz directory both in local and remote
nodes, so is not a ssh problem.<br>
<br>
Additionally when the SELECT sentence is executed:<br>
<font face="Courier New, Courier, monospace">postgres$ psql -h
postgres1 -p 9999 -U postgres -d template1<br>
<br>
template1=# SELECT pgpool_recovery('copy_base_backup',
'10.164.4.223', '/var/lib/pgsql/data');<br>
ERROR: pgpool_recovery failed<br>
</font><br>
<br>
Any help would be really appreciated,<br>
kind regards,<br>
Cristina<br>
<br>
<br>
<br>
<br>
</body>
</html>