Re: Probleme Replikation aufzusetzen

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

In response to

Responses

Browse pgsql-de-allgemein by date

  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