PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#1 13/02/2014 19:25:33

ruizsebastien
Membre

[RESOLU] pgpool online recovery failed

Bonjour,

voici ma configuration pgpool :

 node_id |   hostname   | port | status | lb_weight |  role
---------+--------------+------+--------+-----------+---------
 0       | 172.31.8.214 | 5432 | 2      | 0.333333  | primary
 1       | 172.31.8.219 | 5432 | 2      | 0.333333  | standby
 2       | 172.31.8.221 | 5432 | 2      | 0.333333  | standby

J'arrête le noeud 2 et je teste l'online recovery  avec la commande :

 pcp_recovery_node -d 2000 172.31.8.220  9898 postgres postgres 2

Résultat de la commande :

2014-02-13 17:54:49 LOG:   pid 26031: starting recovering node 2
2014-02-13 17:54:49 LOG:   pid 26031: starting recovery command: "SELECT pgpool_recovery('basebackup.sh', '172.31.8.221', '/D0TLIN50_1/data')"
2014-02-13 17:55:05 LOG:   pid 26055: statement:  DISCARD ALL
2014-02-13 17:55:05 LOG:   pid 26055: DB node id: 0 backend pid: 7876 statement:  DISCARD ALL
2014-02-13 17:55:05 LOG:   pid 26055: DB node id: 1 backend pid: 2289 statement:  DISCARD ALL
2014-02-13 17:55:08 LOG:   pid 26040: connection received: host=172.31.8.214 port=38983
2014-02-13 17:55:10 LOG:   pid 26040: statement: show pool_nodes;
2014-02-13 17:55:12 LOG:   pid 26040: statement:  DISCARD ALL
2014-02-13 17:55:12 LOG:   pid 26040: DB node id: 0 backend pid: 7928 statement:  DISCARD ALL
2014-02-13 17:55:12 LOG:   pid 26040: DB node id: 1 backend pid: 2318 statement:  DISCARD ALL
2014-02-13 17:58:14 LOG:   pid 26032: connect_inet_domain_socket: select() timed out. retrying...
2014-02-13 17:58:34 LOG:   pid 26031: 1st stage is done
2014-02-13 17:58:34 LOG:   pid 26031: check_postmaster_started: try to connect to postmaster on hostname:172.31.8.221 database:postgres user:postgres (retry 0 times)
.... ETC.....
2014-02-13 18:00:16 LOG:   pid 26031: check_postmaster_started: failed to connect to postmaster on hostname:172.31.8.221 database:template1 user:postgres
2014-02-13 18:00:19 ERROR: pid 26031: check_postmaster_started: remote host start up did not finish in 90 sec.
2014-02-13 18:00:19 ERROR: pid 26031: start_recovery: check start failed

j'ai un script pgpool_remote_start sur le noeud 2 (et sur le primary au cas où car je n'arrive pas à savoir lequel sera utilisé par pgpool).
Mais la commande ne semble pas s'exécuter.
Script pgpool_remote_start :

#! /bin/sh

if [ $# -ne 2 ]
then
    echo "pgpool_remote_start remote_host remote_datadir"
    exit 1
fi

DEST=$1
DESTDIR=$2
PGCTL=/logiciels/postgres/product/9.2/bin/pg_ctl

ssh -T $DEST $PGCTL -w -D $DESTDIR start 2>/dev/null 1>/dev/null < /dev/null &

Toutes les fonctions online_recovery sont installées sur toutes les bases de tous les noeuds.

What is wrong ??

Cordialement

Dernière modification par ruizsebastien (14/02/2014 15:24:38)


Cordialement,

Sébastien.

Hors ligne

#2 14/02/2014 15:23:51

ruizsebastien
Membre

Re : [RESOLU] pgpool online recovery failed

Bonjour,

J'ai trouvé : c'était une erreur dans pgpool.conf :
backend_data_directory0 = 'xxxxxxxxxxx'
Pour ce paramètre il faut mettre le répertoire de démarrage (celui où on trouve le postgresql.conf) et non pas le répertoire "data" qui contient les fichiers de données.
Sinon la commande pg_ctl de pgpool_remote_start ne peut pas fonctionner.


Cordialement,

Sébastien.

Hors ligne

Pied de page des forums