4. Installation de Slony-I

[Note]

Note

Pour les utilisateurs de Windows™ : à moins de modifier le code de Slony-I™, il est fortement recommandé de télécharger et d'installer une version binaire précompilée et de passer directement à la section configuration ci-dessous. Vous trouverez les liens et les binaires officiels sur le site de Slony-I, notamment la version 1.2.0.

Il existe également des binaires RPM disponibles pour les versions récentes de Slony-I™ et de PostgreSQL™.

[Avertissement]

Avertissement

Si vous utilisez Slony-I™ pour remplacer une version antérieure de PostgreSQL™ par une version récente, ou si vous souhaitez une version issue du CVS, en dehors du contexte de la sortie d'une version majeure, alors préparez-vous à compiler à la fois PostgreSQL™ et Slony-I™ à partir des sources. Cette section est rédigée en supposant que vous avez lu cet avertissement...

Vous devez avoir obtenu les sources de Slony-I™ à l'étape précédente. Décompressez le paquet.

gunzip slony.tar.gz;
tar xf slony.tar

Ceci va créer un répertoire contenant les sources dans votre répertoire courant. Déplacez-vous dans ce répertoire et restez-y pendant toute la procédure d'installation.

4.1. Version courte

PGMAIN=/usr/local/pgsql839-freebsd-2008-09-03 \
./configure \
    --with-pgconfigdir=$PGMAIN/bin
gmake all; gmake install

4.2. Configuration

Normalement, Slony-I™ doit être compilé et installé avec le compte Unix PostgreSQL™. La cible de l'installation doit être identique à l'installation PostgreSQL™ existante, notamment parce que plusieurs composants de Slony-I™ sont des bibliothèques et des scripts SQL qui doivent être dans les répertoires lib et share de Slony-I™.

La première étape de la procédure d'installation est de configurer l'arbre des sources pour votre système. Ceci se fait en lançant le script configure. Dans les versions précédentes, configure devait savoir où se trouvait l'arbre des sources de PostgreSQL™, ce qui était renseigné avec l'option --with-pgsourcetree=. À partir de la version 1.1, ceci n'est plus nécessaire car Slony-I™ inclut dans son propre code applicatif certaines parties nécessaire pour faciliter la porbabilité entre les différentes plates-formes. Désormais, il suffit de faire référence à des composants de PostgreSQL™ qui font partie de l'installation. Ainsi, Slony-I™ est configuré en pointant vers les différentes répertoire de PostgreSQL™ : binaires, bibliothèques et fichiers d'en-tête. Pour une liste complète de ces options, utilisez la commande ./configure --help.

Normalement, il est suffisant d'exécuter configure--with-pgconfigdir=/un/certain/chemin, où /un/certain/chemin est l'emplacement où se situe le programme pg_config de PostgreSQL™. À partir de pg_config, le script configure peut déterminer les divers emplacements des composants PostgreSQL™, ce qui permet de déduire où installer les composants essentiels de Slony-I™.

Sur certaines plate-formes (AIX et Solaris sont connus pour cela mais pas Linux), la compilation de PostgreSQL™ doit être expressement configuré avec l'option --enable-thread-safety pour fournir les bibliothèques clients correctes.

Les versions 8.0 et ultérieures de PostgreSQL™ installe les fichiers d'en-tête #include par défaut. Avec les versions 7.4 et antérieures, vous devez vous assurer que la compilation inclut la commande make install-all-headers, sinon les en-têtes du serveur ne seront pas installés et Slony-I™ ne pourra pas être compilé.

Après avoir lancé configure, vous pouvez ouvrir le fichier Makefile.global pour vous assurer qu'il recherche tous les composants dans les bons emplacements.

4.3. Exemple

Après avoir déterminé que l'instance PostgreSQL™ est installé dans /opt/dbs/pgsql746-aix-2005-04-01 :

PGMAIN=/opt/dbs/pgsql746-aix-2005-04-01 \
./configure \
    --with-pgconfigdir=$PGMAIN/bin

Le script configure lance de nombreux tests pour deviner les valeurs des différentes variables et tente de détecter certaines particularités de votre système. Slony-I™ est connu pour avoir besoin d'une version modifiée de libpq sur des plate-formes spécifiques telles que Solaris2.X sur SPARC. Le correctif de la version 7.4.2 de la libpq se trouvent à l'adresse http://developer.postgresql.org/~wieck/slony1/download/threadsafe-libpq-742.diff.gz . Des correctifs similaires peuvent être compilés pour d'autres versions ; voir l'entrée dans la FAQ intitulée sécurité des threads.

Pour une liste de toutes les options de configuration, lancez la commande ./configure --help.

4.4. Compilation

Pour démarrer le processus de compilation, tapez :

gmake all

Assurez d'utiliser GNU make ; sur les systèmes BSD, il est appelé gmake ; sur Linux, GNU make est généralement le make « natif », ainsi le nom de la commande que vous devez taper peut être make ou gmake. Sur d'autres plate-formes, vous aurez peut-être besoin de paquets supplémentaires ou même d'une installation complète de GNU make. La compilation prend entre quelques secondes et deux minutes selon la rapidité de votre matériel. La dernière ligne affichée devrait être :

All of Slony-I is successfully made. Ready to install.

4.5. Installer Slony-I une fois compilé

Pour installer Slony-I™, tapez : gmake install

Ceci va installer les fichiers dans le répertoire d'installation de PostgreSQL tel que spécifié par l'option --prefix de configure utilisé lors de l'installation de PostgreSQL™. Assurez-vous que vous avez les droits adéquats pour écrire dans cet emplacement. En général, vous devez être soit root ou l'utilisateur postgres.

Voici la liste des fichiers principaux installés dans l'instance PostgreSQL™, pour les versions de Slony-I™ jusqu'à la 1.2.x :

  • $bindir/slon

  • $bindir/slonik

  • $libdir/slony1_funcs$(DLSUFFIX)

  • $libdir/xxid($DLSUFFIX)

  • $datadir/slony1_base.sql

  • $datadir/slony1_base.v73.sql

  • $datadir/slony1_base.v74.sql

  • $datadir/slony1_base.v80.sql

  • $datadir/slony1_funcs.sql

  • $datadir/slony1_funcs.v73.sql

  • $datadir/slony1_funcs.v74.sql

  • $datadir/slony1_funcs.v80.sql

(Notez qu'au fur et à mesure des versions, la liste des fichiers spécifiques à une version a tendance à grossir...)

Les fichiers .sql ne sont pas encore complètement substitués. Les versions pour chaque version supportée de PostgreSQL™ (c'est-à-dire par exemple 7.3, 7.4, 8.0) sont installées sur chaque système, quelque soit sa version. L'outil d'administration slonik(1) fait la substitution de l'espace de noms et du cluster dans ces fichiers, puis charge ces fichiers lors de la création desnœuds de répliation. À ce moment, la base de données en cours d'initialisation peut se trouver à distance et être exécutée par une autre version de PostgreSQL™ que celle de l'hôte local .

Pour terminer, les deux objets partagés installés dans le répertoire $libdir doivent être installés sur chaque ordinateur qui va devenir un nœud Slony-I™ (d'autres composants peuvent être chargés à distance à partir des autres nœuds.).

Dans Slony-I™ version 2.0, cela change :

  • $bindir/slon

  • $bindir/slonik

  • $libdir/slony1_funcs$(DLSUFFIX)

  • $datadir/slony1_base.sql

  • $datadir/slony1_funcs.sql

[Note]

Note

Notez l'abandon de xxid.so, le type de données txid introduit avec PostgreSQL™ 8.3 le rendant obsolète.

[Note]

Note

Slony-I™ 2.0 abandonne la compatibilité avec les versions de PostgreSQL™ antérieures à la 8.3, et du coup « ré-initialise » la gestion des fonctions de base spécifiques à la version. Il peut exister des fichiers de fonction pour les versions 8.3, 8.4, et ainsi de suite, si des différences importantes pour la réplication sont notées dans les fonctionnalités de PostgreSQL™.

4.6. Compiler la documentation : Guide d'administration

Le document que vous êtes en train de lire est un « guide d'administration » très complet qui contient toute la sagesse découverte lors de l'utilisation et la maintenance de Slony-I™.

Cette documentation est compilé uniquement si vous spécifiez l'option --with-docs.

Notez que vous pouvez rencontrer des difficultés pour compiler la documentation sur les systèmes basés sur Red Hat à cause de la valeur NAMELEN qui est trop faible. Havoc Pennington a déclaré ce bug au milieu de l'année 2001, à l'époque de Red Hat 7.1 ; La société Red Hat Software a reconnu ce bug mais il n'y a eu aucun progrès depuis. La seconde URL ci-dessous indique qu'il y a eu des tentatives de correction en élevant la valeur de NAMELEN dans une future version de Red Hat Enterprise Linux, mais cela n'est pas le cas si vous utilisez une version plus récente pour laquelle cela ne sera jamais rectifié. Les distribution Fedora actuelles ont déjà corrigé ce problème.

Bug 36058

Bug 159382 (pour RHEL)

Une version pré-compilée du « Guide d'administration » est disponible soit sous la forme de paquets d'archive séparés, soit dans le répertoire doc/adminguide/prebuilt

Voir le fichier INSTALL pour un contournement du problème sous Fedora...

4.7. Installer Slony-I à partir des RPM

Même si Slony-I™ peut être compilé et exécuté sur la plupart des distributions Linux, il est également possible d'installer Slony-I™ en utilisant des paquets binaires. L'équipe de développement de Slony (NdT : « Slony Global Development Team ») fournit des paquets RPM et SRPM officiels pour différentes versions de Red Hat et Fedora.

Les RPM sont disponibles sur le site RPM de PostgreSQL. Merci de lire le guide pratique fourni sur le site web pour configurer yum afin qu'il utilise ce dépôt. Notez que ces RPM rechercheront PostgreSQL™ tel qu'installé par RPM, donc si vous avez installé PostgreSQL™ à partir des sources, vous devez ignorer explicitement les dépendances liées à PostgreSQL™.

Installer Slony-I™ à partir de ces RPM est aussi facile qu'avec n'importe quel paquet RPM :

yum install slony1

yum s'occupera des dépendances. Ce dépôt fournit les binaires de Slony-I utilisables avec chaque version supportée de PostgreSQL™.

Le paquet RPM installe les fichiers à leur emplacements habituels. Les fichiers de configuration sont dans le répertoire /etc, les fichiers binaires sont installés dans /usr/bin, les bibliothèques sont dans /usr/lib/pgsql et enfin la documentation est située dans /usr/share/doc/slony1.

4.8. Installer le service Slony-I sur Windows

Sur les systèmes Windows™, au lieu de lancer un démon slon(1) par nœud, un service slon unique est installé et peut alors être contrôlé via le panneau de contrôle des Services ou à partir de la console de commande en utilisant la commande net.

C:\Program Files\PostgreSQL\8.0\bin> slon -regservice my_slon
Service registered.
Before you can run Slony, you must also register an engine!

WARNING! Service is registered to run as Local System. You are
encouraged to change this to a low privilege account to increase
system security.

Une fois que le service est installé, les nœuds individuels peuvent être configurés en enregistrant les fichiers de configuration auprès du service :

C:\Program Files\PostgreSQL\8.0\bin> slon -addengine c:\node1.conf
Engine added.

Les autres commandes sont équivoques : slon -unregservice <nom du service>, slon -listengines <nom du service> et slon -delengine <nom du service> <config file>.

Pour plus d'informations à propos de la version Windows™, vous pouvez consulter les pages suivantes :