From: | Andreas Kretschmer <andreas(at)a-kretschmer(dot)de> |
---|---|
To: | pgsql-de-allgemein(at)lists(dot)postgresql(dot)org |
Subject: | Re: [gelöst] Probleme Replikation aufzusetzen |
Date: | 2018-01-31 16:00:03 |
Message-ID: | f4c27d7c-7213-f56a-bdea-52796a52eeac@a-kretschmer.de |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-de-allgemein |
Am 31.01.2018 um 16:21 schrieb Thiemo Kellner:
> Die Dateien des Base-Backup habe ich einfach ins Datenverzeichnis des
> Standbys kopiert. Ob dies nur im Falle frisch initialisierter
> Datenbanken funktioniert oder ob dies das reguläre Vorgehen ist, ist
> mir nicht klar geworden.
Also, um das noch mal zu erklären:
pg_basebackup kann einen laufenden Server sichern. Auf diesem kann
durchauch richtig viel Traffic sein. Und diese DB kann auch groß sein.
Stelle Dir 10TB vor. Die spannende Frage ist: ist denn so ein basebackup
überhaupt konsistent? Nein, ist es nicht, denn die Datenbank arbeitet
und schreibt fleißig in die Datendateien - während diese kopiert werden.
Daher besteht so ein physisches Backup immer aus 2 Teilen: die Kopie des
Datenordners UND den während des kopierens angefallenen
Transaktionslogs. Wenn der Clone dann hochfährt, muß er irgendwie an die
Transaktionsdateien kommen. Dafür gibt es mehrere Möglichkeiten:
* pg_basebackup kann die automatisch mit streamen. Das ist sogar der
Default (in aktuellen Versionen)
* pg_basebackup kann die nach dem Basebackup holen. Riskant, denn der
Master überschreibt diese Dateien nach 2 Checkpoints (ab PG11 evtl.
schon nach 1 Checkpoint)
* man hantiert mit Replication Slots
* man hantiert mit archive_command / restore_command
* man set wal_keep_segments hinreichend groß (wie groß? Gute Frage,
schätzen sie mal ...)
* man nutzt Barman (Werbung muß sein!)
Versuche, den ganzen Mechanismus zu verstehen, also was diese komischen
WAL's machen, zusammenspiel Shared Buffers, Checkpoints, Transaction Log
etc. Es ist wichtig, das zu verstehen. Das ist Grundlage der Robustheit
von PostgreSQL (es ist crash-safe!), es ist Grundlage der streaming
replication (und auch der logischen Replikation ab PG 10, BDR & Co), es
ist Grundlage für Point-In-Time-Recovery.
Andreas
--
2ndQuadrant - The PostgreSQL Support Company.
www.2ndQuadrant.com
From | Date | Subject | |
---|---|---|---|
Next Message | Thiemo Kellner | 2018-01-31 16:09:42 | Re: [gelöst] Probleme Replikation aufzusetzen |
Previous Message | Thiemo Kellner | 2018-01-31 15:56:58 | Re: [gelöst] Probleme Replikation aufzusetzen |