From: | Andreas Kretschmer <andreas(at)a-kretschmer(dot)de> |
---|---|
To: | pgsql-de-allgemein(at)lists(dot)postgresql(dot)org |
Subject: | Re: Probleme Replikation aufzusetzen |
Date: | 2018-01-31 07:36:53 |
Message-ID: | 1db57aa1-8749-33f5-63db-57b81c544af4@a-kretschmer.de |
Views: | Whole Thread | Raw Message | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-de-allgemein |
Moin,
Am 30.01.2018 um 22:58 schrieb Thiemo Kellner:
>
>
>>> Hmpf, schau mer mal. Muss erst mal noch folgendes Problem lösen:
>>> "database system identifier differs between the primary and standby"
>>
>> wie ist der standby erstellt worden? Via pg_basebackup?
>
> Ich hatte einfach zwei leere Datenbanken gemacht und die eine in die
> andere versucht zu synchronisieren. Ich habe nicht gedacht, dass die
> Empfänger-DB ein Klon sein muss.
Nun haben wir die Ursache. Passiert. Bitte schreibe noch in der engl.
Mailingliste, daß das Thema gelöst ist - nicht alle von *dort* lesen
auch *hier* mit.
Mit Deinem Vorgehen zeigst Du, daß das Grundprinzip der streaming
Replication (die besser physical replication sich nennen sollte) nicht
völlig verstanden ist. Hier ist wichtig zu verstehen, was im
Transaktionslog (bis einschl. 9.6 pg_xlog, ab PG10 pg_wal) steht. Da
stehen eben nicht logische Befehle (Insert hier, delete dort), sondern
rein binäre Änderungen an den Dateien im Filesystem.
Deine 'Vermutung', einfach mit zwei leeren datenbanken zu arbeiten,
würde mit einer logischen Replikation (die trigger-basierten wie Slony,
londiste, bucardo) sowie mit logical replication in PG10 sowie mit
pg_logical & BDR am 9.4 stimmen, nicht aber mit physical (streaming)
replication. Mit dieser Replikation (physical oder streaming) wird alles
übertragen, einschließlich Vacuum-Änderungen.
>
> Die Synchronisation funktioniert nun nach dem Base-Backup ein
> bisschen. D. h., das erste Kommando wird übertragen, aber dann klemmt
> es und ich muss das Testskript mittels ctrl-c abbrechen.
Hier passiert das, was ich schon sagte: mit synchr. physical replication
muß der Master warten, bis der Standby die Transaktion bestätigt hat.
Offenbar erkennt der Master nicht den Standby als 'main2'.
Setze mal im connection-string des Standbys noch name=main2, damit der
Master erkennen kann, daß sich dieser da connected.
Andreas
--
2ndQuadrant - The PostgreSQL Support Company.
www.2ndQuadrant.com
From | Date | Subject | |
---|---|---|---|
Next Message | Laurenz Albe | 2018-01-31 08:03:57 | Re: Probleme Replikation aufzusetzen |
Previous Message | Gunnar "Nick" Bluth | 2018-01-30 23:27:17 | Re: Probleme Replikation aufzusetzen |