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/04/2012 11:38:59

beaud76
Membre

Pb pg_basebackup (directory exists but is not empty)

Bonjour,

J'utilise pg 9.1.1
Je tente la mise en place d'un cluster esclave avec la S-R.
Mais ma commande pg_basebackup me retourne rapidement un message indiquant que la directory citée existe mais n'est pas vide.

La commande lancée depuis le serveur secondaire :
pg_basebackup -D /exploit/base/pgdata -h <ip du serveur principal> -p 5501 -U replication -Pv -c fast

Le seul message retourné :
pg_basebackup: directory "/exploit/base/pgdata" exists but is not empty

Avant de lancer la commande, la directory pgdata n'existe pas.
Après l'exécution, j'ai une directory pgdata effectivement créée et ne contenant qu'une sous-directory correspondant au contenu complet d'un tablespace
Mais aucun autre fichier ou répertoire du cluster

Le log du cluster maitre contient :
<2012-04-13 11:02:18.998 CEST replication [unknown] 28429>LOG:  could not send data to client: Connexion ré-initialisée par le correspondant
<2012-04-13 11:02:18.998 CEST replication [unknown] 28429>FATAL:  base backup could not send data, aborting backup
<2012-04-13 11:02:18.998 CEST replication [unknown] 28429>LOG:  could not send data to client: Relais brisé (pipe)

Voici les éléments de configuration du cluster maître :
listen_addresses = '*'
port = 5501
max_connections = 20
shared_buffers = 512MB
work_mem = 2MB
maintenance_work_mem = 48MB
checkpoint_segments = 16
checkpoint_completion_target = 0.9
logging_collector = on
log_filename = 'postgresql-%d.log'
log_truncate_on_rotation = on
log_line_prefix = '<%m %u %d %p>'
max_locks_per_transaction = 200
wal_level = hot_standby
archive_mode = on
archive_command = 'cp %p /exploit/base/archivage/%f'
archive_timeout = 300             # pour forcer un changement de log après 5 minute maximum
max_wal_senders = 1

Mon cluster maitre fonctionne bien, avec l'archivage des WAL.
Le role 'replication' destiné à ... la réplication, a l'air de bien fonctionné lui aussi.

Peut-être y a t-il une particularité ici : j'ai un tablespace qui est physiquement implanté dans le répertoire pgdata (oui, c'est fait volontairement !)

Une idée pour aller plus loin ?

Merci par avance.
Cordialement. Philippe.

Hors ligne

#2 13/04/2012 11:48:45

gleu
Administrateur

Re : Pb pg_basebackup (directory exists but is not empty)

Vous avez trouvé votre problème. Le tablespace ne doit pas être placé dans le répertoire des données principal de PostgreSQL.


Guillaume.

Hors ligne

Pied de page des forums