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.