PostgreSQL 9.1 + synchrone Replikation Master / Server unter Windows Server 2008 R2

Hallo zusammen,

habe zu diesem Thema im Forum nichts finden können. Daher erkläre ich zunächst was ist erzielen möchte.

Derzeit versuche ich zwischen zwei installierten PostgreSQL 9.1.1 Servern unter Windows 2008 R2 eine synchrone Replikation hinzubekommen. Leider bekomme ich das nicht hin.

Als Grundlage habe ich das how-to von postgresql.org verwendet:
What’s new in PostgreSQL 9.1 - PostgreSQL wiki

Die auf dem Master erstellten Dateien (das Backup) kopiere ich auf den Slave und erstelle dort eine recovery.conf mit folgendem Inhalt

restore_command = 'copy "//10.0.20.10/D/ArchDir/%f"  "%p"'
standby_mode = on
primary_conninfo = 'host=10.0.20.10 port=5432 user=replicator password=replic application_name=slave1'
trigger_file = '//10.0.20.10/D/trigger.slave1'

Das Problem ist nun, der zweite Server, der Slave, synchronisiert nicht mit dem Master. Auf dem Master habe ich Schwierigkeiten, mit PGAdmin z.B. neue Datenbanken zu erzeugen, es hängt sich auf. Weiterhin bleibt die recovery.conf auf dem Slave bestehen, sie wird nicht in recovery.done umbenannt. Das geschieht z.B. dann, wenn ich auf dem Slave hot-standby einschalte. Auf dem Slave kann ich mich, wenn recovery.conf vorhanden ist, nicht mit PGAdmin anmelden, aber das ist denk’ ich normal.

Auf dem Master habe ich folgendes Statement ausgeführt:

SELECT * from pg_stat_replication ;

Mir wird angezeigt, dass der Slave synchron läuft.

Weitere Fragen, die zur Lösung beitragen, gerne :slight_smile:

Vielen Dank für eure Zeit und eure Hilfe!

Giovanni

Habe schonmal festgestellt, dass die Pfadeinträge unter Windows escaped werden müssen. Also in folgender Form:

\\\\10.0.20.10\\D\\ArchDir\\%f

Habe ich herausgefunden, als ich das Log-Level auf debug5 gestellt habe in der postgresql.conf.

Es bringt mich ein wenig weiter, zumindest wird jetzt zu Ende wiederhergestellt, die recovery.conf wird in recovery.done umbenannt. Eine Synchronisierung findet aber nicht statt…