PostgreSQL bidirectionale Synchronisation

Moin Moin zusammen,
ich hätte da mal eine schöne Aufgabenstellung für PostgreSQL Spezies.
Wir haben 2 mAirList Instanzen, eine ist scharf und die 2. steht als Backup auf einem anderen Rechner an einem anderen Standort. (es wird also immer nur eine von beiden genutzt) Im Moment haben wir den SQL Server auf einer Linux Kiste (vServer) an einem 3. Standort. Das hat den Vorteil, dass ich von beiden Systemen die gleichen Daten nutze und diese nur einmal pflege. Ich kann quasi on the fly umschalten, der Backup Rechner ist also die meiste Zeit sogar aus.

Das Problem an der Sache ist, dass mAirList eigentlich dafür ausgelegt ist, dass die DB im gleichen Netzwerk erreichbar ist und eine deutlich kürzere Reaktionszeit hat, als das bei uns der Fall ist. Durch diese Verzögerungen treten verschiedene Phänomene auf, denen ich gerne aus dem Wege gehen möchte. Ich sehe den Ansatz aber hier nicht in einer optimierten DB Anbindung die Torben implementieren müsste. Denn unser Szenario dürfte schon relativ speziell sein.

Ich stelle mir eine Synchronisation vor, wobei ich noch nicht sicher bin wie man das überhaupt einrichtet und wie ich das ganze konzeptioniere.
Meine erste Idee war 1 oder 2 “lokale” Postgres DBs (an jedem mAirList Standort) zu nutzen und die “live” mit dem Linux Server zu synchronisieren.
Ich habe noch ein MiniITX System rum stehen, der war mal als Router im Einsaz, ist aber eine low power x86 Platform (irgendwas von VIA) den könnte ich auch 24/7 am Backup Standort laufen lassen, in dem Fall bräuchte ich nur noch ein 2. DB am Hauptstandort und kann auf die Linux Kiste verzichten?

Welche tools gibt es üpberhaupt zur Bidirektionalen Synchronisation? Ich bin da im Netz nicht wirklich fündig geworden…
Ich hoffe auf viel Input!
Danke
Malte

Was du suchst, nennt sich “Master-Master-Replication” bzw. “Multi-Master-Replication” und ist keinesfalls trivial.

Für PostgreSQL gibt es einige Add-Ons mit unterschiedlichen Funktionalitäten. Ich habe selbst allerdings keine Erfahrung mit irgendeinem davon. Hier solltest du genug Lesestoff finden: http://wiki.postgresql.org/wiki/Replication,_Clustering,_and_Connection_Pooling

PostgreSQL selbst enthält wohl in der neuen Version 9.0 Möglichkeiten zur Master-Slave-Replikation (Schreibzugriffe nur auf einem Server, Lesezugriffe auch auf allen anderen möglich). Stichtwort “Hot Standby” und “Streaming Replication”. Das habe ich mir aber noch nicht angeschaut.

Hi Torben,
vielen Dank für die Info. Das einzige tool welches auch unter Windows funktioniert scheint rubyrep zu sein. Wobei da nach dem ersten überfliegen anscheinend die Java und JRuby Installation das komplizierteste ist :wink:
Zumindest ist die Config relativ schmal… Mal sehen, ich denke in 2 Tagen ist das trotzdem nicht gemacht.
Ich bau mir mal ein Testsetup.

Greetz
Malte