Natív PostgreSQL replikáció

A Unix/Linux szerverek üzemeltetése wikiből
A lap korábbi változatát látod, amilyen Btibi (vitalap | szerkesztései) 2012. november 11., 14:01-kor történt szerkesztése után volt.

Tartalomjegyzék

1 Bevezetés

A PostgreSQL 9.0-ás verziójától kezdve támogatja a natív replikációt, ami talán ez az egyik legjobban várt funkciója hosszú idők óta. Eddig is léteztek más replikációs megoldások (PgPool II, Slony, stb.), amelyek akár többlet funkcionalitással is rendelkezhettek (load balancing), mégsem jelentenek igazi megoldást a problémáinkra. A jelen szócikk ezen témakörbe nyújt egy kis betekintést.

A replikáció konfigurálásához két debian Linux operációs rendszert használok csomagból telepített PostgreSQL 9.1 verziókkal. A két szerver közvetlenül is össze lesz kötve egymással, ez a failover szempontjából fontos. Több szerver esetén a közvetlen összeköttetések nagyon megbonyolítanák a beállításokat, akkor célszerűbb switch-eken keresztül összekapcsolni a rendszereket.

Teszthalo.png

2 Követelmények

2.1 Replikáció követelményei

A replikációnak több követelménye van, ami nem csak az PostgreSQL verziószámára terjed ki:

  • a replikációban részt vevő operációs rendszereknek azonos architektúrájúnak kell lennie
  • legalább PostgreSQL 9.0

Azonos architektúrának számít, ha mind amd64, x386 stb. Látszik hogy nem szabad keverni 32 és 64 bites rendszereket, csak tisztán az egyiket, ill. tisztán a másikat használhatjuk. Törekedni kell a PostgreSQL-t is azonos verzión tartani. Ha frissítjük, célszerű először a slave rendszerrel kezdeni, mert valószínűbb, hogy egy új rendszer képes feldolgozni egy régebbi üzeneteit, mint fordítva.

2.2 Failover követelményei

  • közvetlen kapcsolat a két szerver között
  • egy virtuális IP cím

A fent ismertetett felállás szerint a két szerver közvetlen kapcsolatban kell álljon egymással. Ez azért jó, mert a kapcsolat csak a két oldaltól függ, vagyis nagyon stabilnak tekinthető. Ha egy switchen keresztül kapcsolódnának egymáshoz, a switch kiesése működésképtelenné tenné a rendszert.

3 Replikáció fajtái

3.1 Master - slave

3.2 Master - master avagy multi master

3.3 Streaming

3.4 Nem streaming

3.5 Aszinkron

3.6 Szinkron

4 Streaming szinkron replikáció konfigurálása

5 Magas rendelkezésre állás virtuális IP-vel

5.1 Mi az a virtuális IP cím?

5.2 Hogyan tudom konfigurálni?

5.3 Automatikus failover

6 Teljesítménytesztek

6.1 Streaming szinkron replikáció

6.2 Streaming szinkron replikáció failoverrel

6.3 A failover tesztelése

Személyes eszközök