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.
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.
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.
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.
Sie können Ihre PostgreSQL-Datenbank auch mit phpPgAdmin oder pgAdmin III .
Ich bin gerade auf dieses kleine nette Dienstprogramm gestoßen:
Aus der Dokumentation sieht es vielversprechend aus, aber ich muss es noch versuchen.
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
Tags und Links linux postgresql backup