[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: plusieurs serveurs Postgres : accès par libpq ?



On Wed, 2007-10-17 at 16:04 +0200, Frédéric BOITEUX wrote:
> 	Bonjour,
> 
>   Sur une machine Debian Etch, j'ai plusieurs serveurs Postgresql (en
> différentes versions) qui gèrent chacun des bases de données. Pour un
> utilisateur, il a le choix entre plusieurs serveurs, comme on peut le
> voir avec la commande pg_lsclusters. Je peux sélectionner le bon
> « cluster » dans des commandes comme psql (avec l'option « --cluster
> <version>/<nom de la base> », mais en revanche, je n'y arrive pas dans
> un programme C lié à la bibliothèque libpq : en effet, je n'ai pas
> trouvé l'équivalent dans l'API C de l'option --cluster... C'est sans
> doute normal vu que c'est un ajout de Debian, mais j'aimerais savoir
> comment accéder à une base précise avec cette bibliothèque libpq ?

Il faut trouver le port de chaque cluster.  Il n'y a pas de fonction
bibliothèque pour accéder aux clusters ; alors, on doit utiliser une
commande convenable, telle que :

   pg_lsclusters | grep '^version  *cluster ' | awk '{print $3}'

On peut appeler son programme avec le resultat de cette commande comme
port.  Sans doute, le programme aura une option pour ça.  Dans le
programme il faut passer le port au PQconnectdb().  Enveloppe tout dans
un script :

        #!/bin/bash
        VERSION=$1
        CLUSTER=$2
        mon_programme -p $( pg_lsclusters |
        		    grep "^$VERSION  *$CLUSTER " |
        		    awk '{print $3}' )

-- 
Oliver Elphick                                          olly@lfix.co.uk
Isle of Wight                              http://www.lfix.co.uk/oliver
GPG: 1024D/A54310EA  92C8 39E7 280E 3631 3F0E  1EC0 5664 7A2F A543 10EA
                 ========================================
   Do you want to know God?   http://www.lfix.co.uk/knowing_god.html


-- 
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.



Reply to: