Kennt jemand eine gute Möglichkeit, Postgres-Datenbanken zu sichern?

7

Ich habe ein Skript, das täglich gedrehte Backups für mysql produziert, aber ich finde nichts Ähnliches für Postgres. Ich habe auch entdeckt, dass es eine Online-Backup-Fähigkeit hat, die sich als nützlich erweisen sollte, da dies eine Produktionsstätte ist.

Kennt jemand ein Programm / Skript, das mir hilft, oder sogar einen Weg, es zu tun?

Danke.

    
Stavros Korokithakis 03.08.2009, 08:49
quelle

8 Antworten

18

Eine Möglichkeit besteht darin, pg_dump zu verwenden, um einen flachen SQL-Dump zu generieren, den Sie kann gzip oder was auch immer. Dies ist sicherlich die einfachste Option, da die Ergebnisse in psql zurückgegeben werden können, um eine Datenbank erneut zu laden, und da sie auch als einfacher Text exportiert werden kann, können Sie die Daten vor der Wiederherstellung nach Bedarf durchsuchen oder bearbeiten.

Die nächste Methode besteht darin, Ihre Datenbank vorübergehend herunterzufahren (oder wenn Ihr Dateisystem atomare Snapshots unterstützt, theoretisch könnte das funktionieren) und sichern Ihr PostgreSQL data -Verzeichnis.

Diese Seite von der PostgreSQL-Seite erklärt auch, wie Online-Backups und -Punkte durchgeführt werden -in-time-Wiederherstellung, die definitiv am schwierigsten zu konfigurieren ist, aber auch die optimale Methode. Die Idee ist, dass Sie eine Basissicherung durchführen (was Sie jeden Tag tun können, einige Tage oder eine Woche), indem Sie spezielle SQL ( pg_start_backup und pg_stop_backup ) ausführen und eine Kopie (auf Dateisystemebene) Ihres Datenbankverzeichnisses erstellen . Die Datenbank geht während dieser Zeit nicht offline, und alles funktioniert weiterhin normal. Von nun an generiert die Datenbank ein Write Ahead Log (WAL) aller Änderungen, die dann (automatisch von der Datenbank) an den gewünschten Ort übertragen werden können. Zum Wiederherstellen nehmen Sie die Basissicherung, laden Sie sie in eine andere Datenbankinstanz und wiederholen Sie dann alle WAL-Dateien. Auf diese Weise können Sie auch die Wiederherstellung punktuell durchführen, indem Sie nicht alle Protokolle wiedergeben.

    
Adam Batkin 03.08.2009, 08:59
quelle
4

Hier die Skripte, die Sie für die Sicherung postgresql von crontab

verwenden können

Ссылка

Grüße, Kevin

    
Kevin 30.11.2012 10:06
quelle
3

Für automatisierte Backups von MySQL und Postrgres atrails-safe auf github (oder einfach "%Code%"). Es benutzt mysqldump um MySQL zu sichern und pg_dump um Postgres zu sichern. Es weiß auch, wie man einfache Dateien mit tar sichert und alles mit GnuPG verschlüsselt und auf S3 oder einen beliebigen Unix-Server mit SFTP hochlädt.

    
Vitaly Kushner 23.08.2009 13:46
quelle
2

Der Weg, um Backups zu machen, ist pg_dump.

Sie sollten nicht "Dateien aus dem postgresql-Verzeichnis kopieren, wie in mysql" - weil Sie wahrscheinlich nicht in der Lage sind, sie zu verwenden (diese Dateien sind abhängig von Architektur, Betriebssystem und Kompilieroptionen).

Es sei denn, pg_dump ist bewiesen , um nicht ausreichend zu sein - das sollten Sie verwenden. Nachdem Sie in der Situation sind, dass pg_dump nicht verwendet werden kann - sollten Sie sich fragen: Warum kann es nicht verwendet werden, und was können Sie tun, um es wieder zu verwenden:)

Wenn Sie pg_dump verwenden, können Sie einen einfachen SQL-Datei-Dump (-F p) oder ein benutzerdefiniertes Format (-F c) wählen. SQL-Dump ist einfacher zu ändern / ändern, aber das benutzerdefinierte Format ist viel leistungsfähiger und (seit 8.4) schneller zu laden, weil Sie es in vielen parallelen Arbeitern statt sequentiell laden können.

    
user80168 03.08.2009 09:14
quelle
2

Seit Sie die Datenbank angegeben haben, wird pg_dumpall für Sie viel nützlicher sein. Es speichert alle Datenbanken und Benutzer in einer SQL-Datei und nicht nur in einer einzelnen Datei.

    
chotchki 17.09.2010 13:34
quelle
1

Sie können Ihre PostgreSQL-Datenbank auch mit phpPgAdmin oder pgAdmin III .

    
Randell 03.08.2009 09:10
quelle
1

Ich bin gerade auf dieses kleine nette Dienstprogramm gestoßen:

Zypern

Aus der Dokumentation sieht es vielversprechend aus, aber ich muss es noch versuchen.

    
Vladimir Dyuzhev 23.07.2012 15:55
quelle
0

Dies würde ich tun, um meine alte Datenbank zu sichern und wiederherzustellen

So sichern Sie Ihre Datenbank

%Vor%

Um diese Sicherung wiederherzustellen

%Vor%

Lesen Sie mehr auf pg_dump und pg_restore

    
Techie 27.02.2014 09:04
quelle

Tags und Links