### Příklady pro Slony-I

V tomto příkladu si nastavíte server master s dvěma přímými servery slave. Příklad je napsaný a testovaný za použití Slony-I verze 1.2.11 a PostgreSQL 8.2.5 na jednom počítači s Windows XP. Na vygenerování testovacího schématu a zátěže byla použita pomůcka PostgreSQL pgbench.

1. Vytvořte 3 databáze, master, slave1 a slave2 a ujistěte se, že je na každé nainstalovaný pl/pgsql.
2. Vytvořte schéma pgbench v databázi master:
   `> pgbench -i -U postgres master`
3. Do tabulky history přidejte primární klíč nazvaný history_pkey na sloupcích tid, bid a aid.
4. Vytvořte výpis pouze schématu databáze master a načtěte jej na slave1 a slave2:
   `> pg_dump -s -U postgres master > schema.sql
   > psql -U postgres slave1 < schema.sql
   > psql -U postgres slave2 < schema.sql`
5. Vytvořte pro každý proces služby slon (démona v *nixu) soubory s nastavením. Tyto soubory by měly obsahovat právě dva řádky a to následující:
   `cluster_name='pgbench'
   conn_info='host=127.0.0.1 port=5432 user=postgres dbname=master'`
   Vytvořte soubor pro každou databázi, upravte parametr dbname jak je potřeba a případně přidejte další potřebné volby připojení.
6. (Pouze pro Windows) Nainstalujte službu Slony-I:
   `> slon -regservice Slony-I`
7. Každý proces zaregistrujte (to je nutné pouze ve Windows, v *nixu lze každého démona slon spustit zvlášť a cestu k souboru s nastavením mu předat jako volbu -f příkazové řádky):
   `> 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. V pgAdminu vytvořte v replikačním uzlu v databázi master nový cluster Slony-I s následujícími volbami:

       Napojit existující cluster: nezvoleno
       Název clusteru:             pgbench
       Lokální uzel:               1        Uzel Master
       Řídící uzel:                99       Uzel Admin

9. V replikačním uzlu vytvořte pro každou databázi slave cluster Slony-I s následujícími volbami:

       Napojit existující cluster: zvoleno
       Server:                     <Zvolte server obsahující databázi master>
       Databáze:                   master
       Název clusteru:             pgbench
       Lokální uzel:               10       Uzel Slave 1
       Řídící uzel:                99 - Uzel Admin

       Napojit existující cluster: zvoleno
       Server:                     <Zvolte server obsahující databázi master>
       Databáze:                   master
       Název clusteru:             pgbench
       Lokální uzel:               20       Uzel Slave 2
       Řídící uzel:                99 - Uzel Admin

10. V databázi master vytvořte cesty na obě databáze slave a v každé databázi slave cestu zpět na master. Vytvořte cesty v každém uzlu na master s použitím připojovacího řetězce určeného v souborech nastavení slon. Poznamenejme, že změna struktury clusteru v budoucnu může vyžadovat přidání dalších cest.
11. Vytvořte replikační sadu v databázi master s následujícím nastavením:

        ID:                  1
        Komentář:            sada pgbench

12. Do replikační sady přidejte tabulky s následujícím nastavením:

        Tabulka:             public.accounts
        ID:                  1
        Index:               accounts_pkey

        Tabulka:             public.branches
        ID:                  2
        Index:               branches_pkey

        Tabulka:             public.history
        ID:                  3
        Index:               history_pkey

        Tabulka:             public.tellers
        ID:                  4
        Index:               tellers_pkey

13. Na uzlu master vytvořte nový odběr pro každý uzel slave s následujícími volbami:

        Počátek:             1
        Poskytovatel:        1 - Uzel Master
        Příjemce:            10 - Uzel Slave 1

        Počátek:             1
        Poskytovatel:        1 - Uzel Master
        Příjemce:            20 - Uzel Slave 2

14. Spusťte službu slon (nebo démona v *nixu):
    `> net start Slony-I`

Měla by začít úvodní replikace a v pgAdminu by se pro každý uzel na kartě statistiky měly sledovat změny. Pro testování pod zátěží lze proti databázi master spustit pomůcku pgbench.