Replikation bei Bedarf

Ich befasse mich relativ neu mit Postgres und suche ner sinnvollen Möglichkeit über ne Webseite die Replikation einzelner, kleinerer Datenbanken anzustoßen.
Die Replikation darf nur nach Bedarf gestartet werden und muss von einem Server zum anderen gehn.

Meine erste Lösung wäre dies jetzt mit “pg_dump” und “pg_restore” zu realisieren. Gibts evtl. noch bessere Möglichkeiten?


Grüße Markus

pg_dump / pg_restore ist das, was der Name suggeriert. Also keine ‘Replikation’. Unter Replikation verstehe ich, daß ein Insert (mit Commit) in Quell-DB faktisch sofort in Ziel-DB auf anderem Server sichtbar ist. Wenn Du das willst, aber nicht für den ganzen DB-Cluster sondern nur einzelne DB’s bzw. Tabellen, dann suchst Du etwas wie Slony. Laß Dir aber gesagt sein, daß die Konfiguration und Wartung von Slony nicht wirklich trivial ist.

Was gut und robust funktioniert ist Streaming Replication, wie es PG seit 9.0 kann. Das aber ist eine Replikation des gesamten Clusters.

Also, überleg noch einmal, was Du exakt brauchst.


Andreas

Danke für die schnelle Antwort. Aber nein, wenn du das so siehst dann brauche ich keine Replikation. Ich muss nur zu nem X-belibigen Zeitpunkt (manuell über Webseite gestartet) sagen können das eine bestimmte Datenbank auf Server 1 sich mit ner anderen DB auf Server 2 abgleichen soll - Wobei auf Server 2 nur lesend zugegriffen wird.

Evt. mit PostgreSQL: Documentation: 9.2: pg_basebackup

Michael

Das funktioniert nur dann, wenn du die WAL-Files, die während des Backups anfallen, auch noch einspielst. Und das ist relativ aufwändig für “on demand”…

Nein. Das dient der Vorbereitung zur Einrichtung von Streaming Replication. No way, um das z.B. auf einzelne Tabellen zu begrenzen und um hinterher ein konsistentes System auf $ZIEL zu haben.

Andreas