Montag Juli 06, 2009

PostgreSQL-Replikation mit Londiste und SkyTools - Teil 1

Warum SkyTools / Londiste? Ich war auf der Suche nach einer Replikationslösung, die mir einfach die Daten von einer Master-DB auf eine Slave-DB kopiert. Die Slave-DB ist read-only. Man muss grundsätzlich vorwegnehmen, das es unter Postgres leider keinen Replikationsmechanismus gibt, wie ihn die MySQL hat. Dort werden die Transaktionslogs auf dem Slave nachgefahren. D.h. das wirklich alle Statements auch auf dem Slave ausgeführt werden inkl. aller DDL-Statements (also sowas wie CREATE TABLE). Das ist bei (fast) keiner Replikationslösung, die es unter Postgres gibt, der Fall. Ich vermute mal, das das PGCluster macht, welcher auch Multimaster-Replikation unterstützt. Zu dieser Lösung habe ich aber kein Vertrauen, da im Supportforum keiner der Entwickler antwortet. Ausserdem ist der PGCluster oder auch PGCluster-II (wird wohl eh nie erscheinen) immer eine speziell angepasste Version von Postgres und hängt der Entwicklung immer hinterher (und aktuell schon ziemlich...). Ich mag keine so reingeschusterten Sachen. Dann gibt es noch den CyberCluster, der in eine ähnliche Kategorie fällt und auf PGCluster aufbaut, aber auch so seine Probleme hat, wie ich mal auf der Postgres-Mailingliste erfahren habe.

Dann gibt es noch Tools, die soz. Statements replizieren auf zwei oder mehrere Datenbanken und wie ein vorgeschalteter Proxy arbeiten, mit dem sich die Clients verbinden. pgpool-II gehört da dazu. Aber was mach ich, wenn eine Node ausfällt? Die Daten bei dieser Art Replikation müssen zwangsläufig auseinander laufen, wenn eine DB ausfällt. Eine Antwort darauf gibt Gerd Koenig in pgpool-II for beginners (PDF). Das ist an sich schon mal nicht schlecht, aber diese Methode benötigt eigentlich fast schon ein komplettes Recovery der DB, damit die Datenbanken wieder konistent werden.

Dann gibt's noch Bucardo. Da ist zwar der Entwickler sehr aktiv, aber mir gefällt das dahinterliegende Konzept gar nicht, mit rsync irgendwelche Daten durch die Gegend zu kopieren. Prinzipiell handelt es sich hierbei um eine Multi-Master-Replikation.

Weiterhin hätten wir noch den Mammoth Replicator. Der war mal kommerziell und ist jetzt OpenSource. Hier kann man auch Support von Enterprise DB kaufen. Bin ich aber auch nicht so wirklich überzeugt von dem Konzept.

Bleiben grob noch zwei Tools: Slony-I und Londiste.

Slony-I ist schon irgendwie das Schweizer Taschenmesser und Urgestein unter den Replikationslösungen - nur ungleich komplizierter zu bedienen. Und das war für mich dann auch der Grund, es mit Londiste/SkyTools zu versuchen, welches die Skype-Entwickler als OpenSource veröffentlich haben und das teilweise in Python geschrieben ist - was gleich noch viel mehr für die Lösung spricht ;-)

Hier mal eine Übersicht über die wichtigsten Links bezügl. Londiste/SkyTools:

SkyTools Download:
Londiste ist ein Teil der SkyTools. Version 2.1.9 ist gerade aktuell. Diese Version kann man sich auf pgFoundry downloaden. Da ich aber einen Teil der Funktionalität von Version 3 brauche, lade ich mir das Source-Paket (http://pgfoundry.org/pipermail/skytools-users/2009-April/001029.html) runter, welches Marko Kreen in einem Posting der SkyTools-Mailingliste erwähnt hat. Version 3 ist aktuell noch Alpha - wobei ich mir ziemlich sicher bin, das das Skye intern schon länger im Einsatz ist und sicherlich weit weniger Alpha ist, als so manches andere Prgramm ;-) Bei mir läuft das jetzt auf jeden Fall schon mal seit 3 Monaten ganz gut durch.

SkyTools @ PostgreSQL Wiki
http://wiki.postgresql.org/wiki/SkyTools

Londiste Tutorial (Version 2)
http://pgsql.tapoueh.org/site/html/londiste/londiste.html

SkyTools Users Archives Mailingliste
http://pgfoundry.org/pipermail/skytools-users/

Manpage für londiste (Version 2)
http://manpages.ubuntu.com/manpages/jaunty/man1/londiste.1.html

Whats you favourite PostgreSQL Replication Tool:
1. Slony-I
2. pgpool2
3. londiste
http://www.postgresql.org/community/survey.61

PostgreSQL Replication using Slony-I
http://jayant7k.blogspot.com/2008/11/postgresql-replication-using-slony-i.html

Database management tools from Skype: WAL shipping, queueing, replication. The tools are named walmgr, PgQ and Londiste, respectively
http://pgfoundry.org/projects/skytools/

Und in Teil 2 erklär ich dann, wie ich es eingerichtet habe...

Kommentare:

Senden Sie einen Kommentar:
  • HTML Syntax: Ausgeschaltet