Re: Postgresql and heartbeat

From: Marc Cousin <cousinmarc(at)gmail(dot)com>
To: "Palaffre Michel" <mpalaffre(at)sopragroup(dot)com>
Cc: pgsql-fr-generale(at)postgresql(dot)org
Subject: Re: Postgresql and heartbeat
Date: 2011-01-31 11:57:10
Message-ID: 201101311257.10515.cousinmarc@gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-fr-generale

C'est très étrange, heartbeat s'appuie sur les codes retour des scripts, pas
sur le texte qu'ils renvoient, normalement.

Et ils doivent être bons. Sans quoi on a des risques d'erreurs :heartbeat qui
croit qu'un service est éteint au lieu de démarré, et vice-versa, des risques
d'avoir les services démarrés sur deux noeuds, en conséquence, ou bien pire
encore, en cas de bascule, un script qui ne répond pas correctement peut dans
certains cas amener heartbeat à déclencher un reboot du noeud.

Sinon, il y a aussi un script OCF qui marche très bien, pour PostgreSQL, avec
Heartbeat. Avec l'intérêt de pouvoir passer le PGDATA en option au script,
ainsi que d'autres options au besoin.

The Monday 31 January 2011 08:41:51, Palaffre Michel wrote :
> Bonjour Marc,
>
> J'ai trouvé la solution.
> Postgresql 8.4
> Hearbeat (package sqeeze)1:3.0.3-2
>
> Le problème vient du fait que hearbeat lance un status sur les services
> avant de lancer un start. Postgresql renvoie comme status : "Running
> clusters: "
> J'ai changé le message comme suit "Status clusters: " dans le fichier
> suivant: /usr/share/postgresql-common/init.d-functions Cette solution
> n'est pas viable car la prochaine mise à jour risque d'écraser ma modif.
> Les logs de hearbeat ne sont pas assez explicite pour aller directement au
> problème. J'opte donc pour le contournement que Pierre Locquet a mit en
> œuvre. La solution finale.
> Faire un script pour contourner le problème.
> /etc/ha.d/resource.d/hapostgresql
>
> #!/bin/sh
> #
> # the script works around the problem by launching the heartbeat of the
> status control, before launching postgresql. #
> # debug
> # echo "STARTING THE POSTGRESQL $*" >> /var/log/mylog #
> /etc/init.d/postgresql $1 >> /dev/null
>
> Et bien sur demander à hearbeat de lancer ce script.
>
> Merci de ton retour
>
> -----Message d'origine-----
> De : Marc Cousin [mailto:cousinmarc(at)gmail(dot)com]
> Envoyé : mercredi 26 janvier 2011 17:27
> À : pgsql-fr-generale(at)postgresql(dot)org
> Cc : Palaffre Michel
> Objet : Re: [pgsql-fr-generale] Postgresql and heartbeat
>
> The Wednesday 26 January 2011 14:08:27, Palaffre Michel wrote :
> > Bonjour,
> >
> > Je suis sous Debian.
> > Le script suivant doit être joué par heartbeat selon que l'on démarre
> > ou arrête heartbeat /etc/init.d/postgresql start stop .... Ma conf de
> > hearbeat
> > slnxtmaesoa1 IPaddr2::172.30.249.145/24/eth0:0/172.30.252.255
> > drbddisk::r0
> > Filesystem::/dev/drbd0::/DRBD::ext3 apache2 postgresql
> > MailTo::mpalaffre(at)sopragroup(dot)com::Changement_de_serveur_primaire mysql
> > Tous les autres services démarre et s'arrète bien. Il ma manque le
> > servcie postgres "/etc/init.d/postgresql start" Heart beat lance le
> > script /etc/init.d/postgresql stop mais ne lance pas le script
> > /etc/init.d/postgresql start. Il n'y a rien dans les log de heartbeat
> > qui m'indique une erreur.
> > Sauf erreur de ma part, le service postgres est lancé avec le user
> > postgres, même lorsque le script est lancé par le user root. Comment
> > puis je contourné le problème avec heartbeat?
> >
> > Cordialement
> > Michel PALAFFRE
>
> Vous avez un /etc/init.d/postgresql sous Debian ? Normalement ils ont des
> numéros de version (postgresql-8.3 par exemple). D'où vient ce script ?
> S'il est à vous, un script doit être compatible LSB pour pouvoir être
> utilisé correctement par Heartbeat.

In response to

Responses

Browse pgsql-fr-generale by date

  From Date Subject
Next Message Palaffre Michel 2011-01-31 12:12:39 Re: Postgresql and heartbeat
Previous Message Guillaume Lelarge 2011-01-31 09:11:08 Re: cd d'installationde postgresql 9