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

#1 14/05/2012 10:50:14

genio
Membre

Comment detecter un serveur maître et un serveur esclave

Bonjour à tous...
Nous avions installé une appli avec deux serveurs en maître/esclave en 'log shipping' => OK
Nous avons un traitement batch le soir et voulons sauvegarder nos wal par un script qui lancerait :  START_BACKUP/Copie des wall/ STOP_BACKUP => OK
Nous voulons faire exécuter les sauvegardes uniquement sur le serveur Maître => Ok
Imaginons un clash du serveur maître et un switch sur l'esclave => Ok
L'esclave devenant le maître, il faut que les traitements de sauvegarde prennent la main sur le nouveau maître => Ok...

Comment savoir, par un script, que nous sommes sur le serveur maître ?

merci pour vos réponses...

Hors ligne

#2 14/05/2012 11:27:40

rjuju
Administrateur

Re : Comment detecter un serveur maître et un serveur esclave

Bonjour.
Pour sauvegarder les wal il est inutile de faire un start_backup. Par contre, ces wal sont inutiles sans une sauvegarde des fichiers du répertoire data, et là il est nécessaire de faire un start_backup et stop_backup.

Pour savoir si vous êtes sur le maître ou l'esclave, vous pouvez faire un select pg_is_in_recovery();

Hors ligne

#3 14/05/2012 12:08:43

genio
Membre

Re : Comment detecter un serveur maître et un serveur esclave

Merci pour votre réponse...

Hors ligne

#4 17/05/2012 15:38:56

cedric
Membre

Re : Comment detecter un serveur maître et un serveur esclave

Il faut utiliser l'outil pg_controldata par exemple, qui permet de savoir quel est le statut actuel d'un serveur.

Si on peut se connecter sur le serveur il est possible d'utiliser: pg_is_in_recovery()


Cédric Villemain +33 (0)6 20 30 22 52
http://2ndQuadrant.fr/
PostgreSQL: Support 24x7 - Développement, Expertise et Formation

Hors ligne

Pied de page des forums