2016-07-26 34 views
0

Ich nehme eine tägliche Müllkippe aus meiner Produktion environtment, indem Sie:Postgres tägliche Datensicherung und Hydration verstopft Festplattenspeicher?

pg_dump <database name> > dump_<date>.sql 

dann habe ich diese über Inszenierung übertragen und die Staging-DB importieren, indem zuerst die Tabellen fallen:

drop schema public cascade; 
create schema public; 

und dann das tun folgende:

psql <database name> < dump_<date>.sql 

Es scheint jedoch wie die Staging-DB wird jeden Tag ungewöhnlich größer und größer. An diesem Punkt, selbst nachdem ich die Tabellen & Daten fallen lassen, gibt es 150 GB Speicherplatz im DB-Ordner.

Es fühlt sich an, als ob etwas wie Protokolle oder Metadaten die Ordner verstopft.

Was ist der richtige Weg, um dies zu tun oder gibt es eine gute Möglichkeit, diese zusätzlichen Daten zu reinigen, außer die DB zu löschen und sie jedes Mal neu zu initiieren. Danke!

+0

haben Sie die Checkout-Replikation wie in meiner Antwort vorgeschlagen? – e4c5

+0

Überprüfung, danke! – emraldinho

+0

Hallo, ich habe einige meiner älteren Antworten durchgelesen und bin auf diese gestoßen. Wie ist es gelaufen? – e4c5

Antwort

1

Es gibt einen besseren Weg, einen viel besseren Weg.

https://www.postgresql.org/docs/9.5/static/high-availability.html

Datenbank-Server zusammenarbeiten können, einen zweiten Server ermöglichen über schnell zu nehmen, wenn der primäre Server (Hochverfügbarkeit) ausfällt, oder erlauben mehrere Rechner die gleichen Daten (Lastausgleich dienen). Im Idealfall können Datenbankserver nahtlos zusammenarbeiten. Web-Server Serving statische Webseiten können ganz einfach durch nur Load-Balancing Web-Anfragen an mehrere Maschinen kombiniert werden. Tatsächlich können nur die Datenbankserver mit Lesezugriff relativ einfach miteinander kombiniert werden. Leider haben die meisten Datenbankserver einen Lese-/Schreibmix aus Anfragen, und Lese/Schreibserver sind viel schwieriger zu kombinieren. Dies liegt daran, dass Nur-Lese-Daten auf jedem Server nur einmal abgelegt werden müssen, aber ein Schreiben an Server muss an alle Server weitergegeben werden, damit zukünftige Anforderungen an diese Server konsistente Ergebnisse liefern.

Jetzt, wenn Sie die Dokumentation lesen, scheint es zunächst sehr einschüchternd. In Wirklichkeit müssen Sie jedoch nur einen Dump des gesamten Clusters machen und die WAL-Anmeldung bei postgresql.conf aktivieren. Dann können Sie die WAL-Archivdateien täglich, wöchentlich oder monatlich auf einen anderen Server kopieren.