Antworten:
Sie können pg_dump
wie folgt verwenden:
$ pg_dump -h db_host -U user_name db_name > dump_file.sql
Denken Sie bitte zuerst daran, die .pgpass
Datei festzulegen, die Passwörter enthält, die verwendet werden sollen, wenn für die Verbindung ein Passwort erforderlich ist. Diese Datei sollte Zeilen des folgenden Formats haben:
hostname:port:database:username:password
Und jedes der ersten vier Felder kann ein Literalwert oder ein * sein, der mit irgendetwas übereinstimmt. Zum Beispiel: *:*:*:postgres:pg_password
.
Diese .pgpass
Datei muss sich im Home-Verzeichnis ~ / befinden und die Berechtigungen dafür müssen jeglichen Zugriff auf die Welt oder die Gruppe verbieten. erreichen Sie dies durch den Befehl
chmod 0600 ~/.pgpass
.
Führen Sie pg_dumpall von cron aus.
Versuchen Sie AutoPostgreSQLBackup . Es handelt sich um eine einzelne Skriptdatei, die einfach an Ihre Anforderungen angepasst werden kann, tägliche, wöchentliche und monatliche Planung, Protokolle per E-Mail, Protokolldatei oder Standardausgabe usw. ausführt.
Wenn es sich um eine relativ kleine Datenbank handelt und die Sicherung nur einmal am Tag ausgeführt werden muss, führen Sie einfach pg_dump von cron aus, um einen Speicherauszug in eine lokale Datei zu erstellen, und speichern Sie die Dateien auf dem Computer, um den Speicherauszug zu archivieren .
Versuchen Sie es mit Astrails-Safe . Es kann mysql (mysqldump), postgres (pg_dump) oder nur einfache Dateien (tar) mit Verschlüsselung (gnupg) sichern und auf S3 / Sftp hochladen.
pg_dump ist eine nette Lösung, aber wenn Sie versuchen, eine Menge Daten zu sichern, kann dies vielleicht helfen:
http://www.postgresql.org/docs/8.1/static/backup-online.html
Das ist in der Tat eine Art "Raw" -Protokollierung, aber das kann als inkrementelle Sicherungsmethode nützlich sein ...
Dies ist ein Skript, das jede Datenbank einzeln sowie die oft vergessenen, aber wichtigen PostgreSQL-GLOBALS und Benutzeranmeldeinformationen sichert.
Wichtig dabei ist, die Komprimierung zu nutzen, die pg_dumpall nicht bietet, und die vergessenen Daten, die pg_dump ignoriert.
Dies erfordert einen PGPass oder ein ähnliches Setup wie hier beschrieben: http://wiki.postgresql.org/wiki/Pgpass
Dies ist ein Setup für OSX, aber ändern Sie einfach die Programmpfade und es wird gut funktionieren.
Sichert bis / sqlbackups Das Skript gibt die Verzeichnisgröße / das Verzeichnis zurück und verfügt über Haltepunkte, die einen Status ungleich Null zurückgeben, wenn dies fehlschlägt. Ich habe es in Kombination mit pgAgent verwendet, um tägliche Backups zu erstellen.
Skript überarbeitet, tut mir leid :(
Warum sollten Sie sich mit einem täglichen Backup abfinden, wenn Sie mit dem Barmann problemlos eine Wiederherstellung zu einem bestimmten Zeitpunkt durchführen können ?
Wie andere gesagt haben: pg_dumpall.
Schauen Sie sich auch den Protokollversand an. Dann können Sie weitere zeitgesteuerte Sicherungen abrufen, die Sie wiedergeben können: http://www.postgresql.org/docs/8.3/static/runtime-config-wal.html
Oder wie wäre es mit dem Abschnitt über Backups im Handbuch: