### Exemple Slony-I

Dans cet exemple, un serveur maître est configuré avec deux esclaves directs. Cet exemple a été écrit et tester en utilisant Slony-I v1.2.11 et PostgreSQL 8.2.5, exécutés sur une même machine Windows XP. L'outil pgbench de PostgreSQL est utilisé pour générer le schéma de test et pour générer une certaine charge.

1. Créez trois bases de données, maître, esclave1 et esclave2, et assurez-vous que PL/pgsql est activée dans chaque base.
2. Créez un schéma pgbench dans la base maître :
   `> pgbench -i -U postgres maitre`
3. Ajouter une clé primaire appelée history_pkey dans la table history sur les colonnes tid, bid et aid.
4. Créez une sauvegarde de la structure seule de la base de données maître, puis chargez-la dans esclave1 et esclave2 :
   `> pg_dump -s -U postgres maitre > schema.sql
   > psql -U postgres esclave1 < schema.sql
   > psql -U postgres esclave2 < schema.sql`
5. Créez les fichiers de configuration Slony pour chaque service slon (démon sous *nix). Les fichiers doivent contenir ces deux lignes :
   `cluster_name='pgbench'
   conn_info='host=127.0.0.1 port=5432 user=postgres dbname=maitre'`
   Créez un fichier pour chaque base de données, ajustez le paramètre dbname comme requis, et ajoutez toute autre option de connexion nécessaire.
6. (Windows seulement) Installez le service Slony-I :
   `> slon -regservice Slony-I`
7. Enregistrez chaque service (seulement nécessaire sous Windows - sur *nix les démons slon peuvent être démarrés individuellement avec un chemin vers le fichier de configuration sur la ligne de commande en utilisant l'option -f) :
   `> slon -addengine Slony-I C:\slony\master.conf
   > slon -addengine Slony-I C:\slony\slave1.conf
   > slon -addengine Slony-I C:\slony\slave2.conf`
8. Dans pgAdmin sous le nœud Réplication de la base de données maître, créez un nouveau cluster Slony-I en ajoutant les options suivantes :

       Join existing cluster: Unchecked
       Cluster name:          pgbench
       Local node:            1        Master node
       Admin node:            99       Admin node

9. Sous le nœud Réplication, créez un cluster Slony-I dans chacune des bases de données esclaves en utilisant les options suivantes :

       Join existing cluster: Checked
       Server:                <Select the server containing the master database>
       Database:              master
       Cluster name:          pgbench
       Local node:            10       Slave node 1
       Admin node:            99 - Admin node

       Join existing cluster: Checked
       Server:                <Select the server containing the master database>
       Database:              master
       Cluster name:          pgbench
       Local node:            20       Slave node 2
       Admin node:            99 - Admin node

10. Créez les chemins du maître vers les deux esclaves, et de chaque esclave vers le maître. Créez les chemins sous chaque nœud du maître en utilisant les chaînes de connexion spécifiées dans les fichiers de configuration de slon. Notez qu'une restructuration future du cluster pourrait nécessiter la définition de chemins supplémentaires.
11. Créez un ensemble de réplication sur le maître en utilisant les paramètres suivants :

        ID:                  1
        Comment:             pgbench set

12. Ajouter les tables à l'ensemble de réplication en utilisant les paramètres suivants :

        Table:               public.accounts
        ID:                  1
        Index:               accounts_pkey

        Table:               public.branches
        ID:                  2
        Index:               branches_pkey

        Table:               public.history
        ID:                  3
        Index:               history_pkey

        Table:               public.tellers
        ID:                  4
        Index:               tellers_pkey

13. Sur le nœud maître, créez un nouvel abonnement pour chaque esclave en utilisant les options suivantes :

        Origin:              1
        Provider:            1 - Master node
        Receiver:            10 - Slave node 1

        Origin:              1
        Provider:            1 - Master node
        Receiver:            20 - Slave node 2

14. Lancez le service slon (ou les démons sous *nix) :
    `> net start Slony-I`

Une réplication initiale devrait commencer et peut être surveillée sur l'onglet Statistiques dans pgAdmin pour chaque nœud. L'outil pgbench peut être exécuté sur la base de données maître pour générer un test de charge.