PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : postgres 8 und seine WriteAheadLogs :)



pingufreak
19.05.05, 17:19
Hallo zusammen,

ich würde mal gerne wissen, ob ich das mit den WAL's richtig verstanden habe.

Ich möchte zwei PostgreSQL-DBs aufstellen die sich gegenseitig abgleichen sollen. Die eine soll produktiv laufen, die andere als "Hot-Standby" nebenher. Jetzt habe ich gelesen, dass es dafür spezielle balancing-Tools gibt (ala slony I, pgpool, memcache usw.). Leider hat mir von den balancing-Lösungen keine gefallen. Ich dachte da eher die "Hot-Standby" über WAL's aktuell zu halten. Ist es möglich die archivierten WAL's mittels rsync auf die Standby-DB zu kopieren, damit die Daten auf der Standby aktuell zu halten und im Falle eines Hardware-Defekts per heartbeat auf die "hot-standby" zu schalten?

Ist das so mit WAL's machbar oder ist das WAL nur für "Point in time recovery" nach einem eingespielten Dump gedacht? Bzw. um noch aktueller als das Dump zu sein?

In der PostgreSQL-Dokumentation steht ja am Anfang:
"If we continuosly feed the series of WAL files to another machine that has been loaded with the same base backup file, we have a "hot-standby" ..."

Doch nachdem ich die Doku zuende gelesen habe, stelle ich mir das ein bisschen kompliziert vor. Ich muss doch dann wie folgt vorgehen:

1. die produktive DB kopiert mittels dem "archive_command = ", der in der postgresql.conf definiert ist, die archivierten WAL's zur Hot-Standby.
2. auf der Hot-Standby läuft ein Skript, welches die archivierten Logs entgegennimmt und diese dann in das pg_xlog verzeichnis kopiert. Das Skript generiert fortlaufend eine recovery.conf mit dem letzten WAL-Satz.
3. die Hot-Stanby wird des öfteren neu gestartet um die WALs einzuspielen. (muss ich da neustarten?) Zusätzlich werden auf der Hotstandby dumps erstellt (mittels pg_dump oder COPY), damit die produktive dadurch nicht zusätzlich belastet wird.
4. jetzt fällt die produktive DB aus. Es werden keine WALs mehr synchronisiert.
5. das heartbeat erkennt dies und schaltet die standby-DB produktiv und deaktiviert die dumps.
6. auf der Hot-Standby sind maximal 1 Minute an Transaktionen durch die "Umschaltung" verloren gegangen.

Ist der "theoretische" Weg richtig gedacht? :)

Viele Grüße
pingufreak

pingufreak
20.05.05, 13:52
hat denn jemand erfahrungen mit slony? :rolleyes: