Re: Probleme Replikation aufzusetzen

Andreas Kretschmer <[email protected]> Mon, 29 Jan 2018 07:46:34 +0100
Newsgroups gmane.comp.db.postgresql.german
Message-ID <[email protected]>

Am 28.01.2018 um 23:25 schrieb Thiemo Kellner:
> Hallo
>
> Ich versuche, Replication zum Laufen zu bekommen. Ich habe Debian 9 mit
> PostreSQL 10. Ich habe zwei Knoten in einem Cluster und bin mir 
> bewusst, dass
> dies leicht zum Deadlock des Masters führen kann und dass es sinnlos ist,
> Replikation auf demselben Blech zu machen - außer es geschieht, um die
> Replikation zu lernen - es sei denn, Replikation im selben Knoten 
> funtioniert
> ohnehin nicht.
>
> Ich bin mir nicht sicher, ob ich das Passwort in primary_conninfo 
> Klartext sein
> muss oder dessen md5-Wert. Die Doku ist mir da nicht klar. Ich habe 
> beides
> versucht und bin zu keinem Ergebnis gekommen.

Klartext. Du kannst auch eine .pgpass - Datei nutzen. Diese Antwort hast 
Du aber mittlerweile schon in der engl. Mailingliste bekommen.


>
> Ich konnte mit diesem Setup nicht fest stellen, dass der Standby 
> versucht hat,
> sich mit dem Master zu verbinden.

Hast Du überhaupt ein Basebackup erstellt, um daraus einen Standby zu 
machen?



>
> Unten meine Konfigurationen
>
> LG Thiemo
>
>
> == Hot standby ==
>
> /etc/postgresql/10/main2/pg_hba.conf
> host    replication     all             127.0.0.1/32 md5
> host    replication     all             ::1/128 md5
> local   replication     repuser peer
> host    replication     repuser         0.0.0.1/0 md5
> host    replication     repuser         ::1/0 md5
>


die eine local-Verbindung irritiert mehr als daß sie sinnvoll ist.


> /etc/postgresql/10/main2/postgresql.conf
> wal_level = replica
> max_replication_slots = 12
> synchronous_standby_names = 'main,main2'

setze mal das auf '1(main, main2)'

> hot_standby = on
> log_min_messages = debug1
> log_connections = on
> log_statement = 'ddl'
> log_replication_commands = on
> lc_messages = 'C.UTF-8'
>
> /etc/postgresql/10/main2/recovery.conf
> standby_mode = 'on'
> primary_conninfo = 'host=localhost user=repuser port=5432 
> password=<md5 value or
> plain text?>'
>

Hinweise wie oben, und:


> == master ==
> /etc/postgresql/10/main/pg_hba.conf
> host    replication     all             127.0.0.1/32 md5
> host    replication     all             ::1/128 md5
> local   replication     repuser peer
> host    replication     repuser         0.0.0.1/0 md5
> host    replication     repuser         ::1/0 md5
>
> /etc/postgresql/10/main/postgresql.conf
> wal_level = replica
> archive_mode = off
> max_wal_senders = 12
> max_replication_slots = 12
> synchronous_standby_names = 'main2,main'
> hot_standby = on
> wal_receiver_timeout = 60s
> log_min_messages = debug1
> log_connections = on
> log_statement = 'ddl'
> log_replication_commands = on
> lc_messages = 'C.UTF-8'
>
> /etc/postgresql/10/main/recovery.conf

KEINE (!) recovery.conf

>
> standby_mode = 'off'
> primary_conninfo = 'host=localhost user=repuser port=5433 
> password=<md5 value or
> plain text?>'
>
>
> -- Öffentlicher PGP-Schlüssel:
> http://pgp.mit.edu/pks/lookup?op=get&search=0xCA167FB0E717AFFC

Gegen den Versuch, die Replikation manuell aufzusetzen, ist nichts 
einzuwenden (Lerneffekt), ich würde Dir aber dennoch empfehlen, Dir 
unseren repmgr anzuschauen.

https://repmgr.org/





Andreas

-- 
2ndQuadrant - The PostgreSQL Support Company.
www.2ndQuadrant.com