Frage Automatische Postgres-Sicherung


Was ist der beste Weg, um eine Postgres-Datenbank jeden Tag automatisch auf Linux zu sichern?


20
2017-08-18 16:24


Ursprung




Antworten:


Sie können verwenden pg_dump so was:

$ pg_dump -h db_host -U user_name db_name > dump_file.sql

Bitte denken Sie zuerst daran, die .pgpass Datei, die Passwörter enthält, die verwendet werden sollen, wenn die Verbindung ein Passwort erfordert. Diese Datei sollte Zeilen des folgenden Formats haben:

hostname:port:database:username:password

Und jedes der ersten vier Felder kann ein Literalwert oder * sein, der allem entspricht. Zum Beispiel: *:*:*:postgres:pg_password.

Diese .pgpass Datei muss sich im Home-Verzeichnis ~ / befinden und die Berechtigungen darauf dürfen keinen Zugriff auf Welt oder Gruppe erlauben; erreiche das mit dem Befehl chmod 0600 ~/.pgpass.


11
2017-08-18 18:50



Wird es jeden Tag automatisch gesichert? - Anuj Patel
@indyaah: Nein, du müsstest das täglich von Cron (oder ähnlichem) aus tun. - Bill Weiss


Führen Sie pg_dumpall von cron aus.


12
2017-08-18 17:15



pg_dumpall ist besser als die anderen Antworten, da dies Ihre globalen Datenbankobjekte sichert. (Ex: Benutzer, etc ..) Sie werden diese benötigen, um Ihre DB vollständig wiederherzustellen und wenn Sie eine große Anzahl von diesen haben, kann es nicht-trivial sein, sie neu zu erstellen. Pg_dumpall kann jedoch für Sie zu viel Overkill sein, wenn Sie nur eine einzelne Datenbankinstanz in einem Cluster mit mehreren Datenbanken sichern möchten, da pg_dumpall eine Sicherungskopie erstellt jeden Beispiel. Also ... wie bei den meisten Tech-Q & A kommt es darauf an. - KevinRae
Ich neige dazu, "Datenbank" und "Datenbankserver" zu verbinden, was ein gutes Beispiel ist. Ich nahm an, das Poster würde die ganze Sache gut machen wollen. - Bill Weiss


Versuchen AutoPostgreSQLBackup. Es ist eine einzelne Skriptdatei, kann leicht auf Ihre Bedürfnisse konfiguriert werden, macht tägliche, wöchentliche und monatliche Planung, Logs per E-Mail, Log-Datei oder Stdout, etc.


6
2017-08-18 20:44



Ich benutze auch AutoPostgreSQLBackup und es funktioniert sehr gut für mich ;-) - Matthieu


Wenn es eine relativ kleine Datenbank ist und so geringe Anforderungen an die Sicherung als nur einmal am Tag, einfach pg_dump von Cron ausführen, um in eine lokale Datei zu dumpen, und dann verwenden, was auch immer Sie haben, um die Dateien auf dem Computer zu archivieren .


4
2017-08-18 17:14





pg_rman ist ein neues Tool, das inkrementelle Backups bietet, das für PostgreSQL 8.4 oder neuer funktioniert.


4
2018-01-11 15:57





Versuchen atrails-sicher. Es weiß, wie man mysql (mysqldump), postgres (pg_dump) oder einfach nur Dateien (tar) mit Verschlüsselung (gnupg) sichert und auf S3 / Sftp hochlädt.


2
2017-08-23 14:09





pg_dump ist eine nette Lösung, aber wenn Sie versuchen, eine Menge Daten zu sichern, kann das vielleicht helfen:

http://www.postgresql.org/docs/8.1/static/backup-online.html

was in der Tat eine Art "roher" Protokollierung ist, aber das kann als inkrementelle Backup-Methode nützlich sein ...


1
2017-08-18 21:14