Ich hatte gehofft, eine klare Antwort darauf zu bekommen, wie sichergestellt werden kann, dass eine vollständige Postgres-Sicherung erstellt wird, wie dies auch bei MS SQL Server der Fall ist, und dann verwaiste Benutzer behandelt werden.
Nach allem, was ich gelesen habe und was falsch sein könnte, war es eine Herausforderung, einen guten PostgreSQL-Blog zu finden. Empfehlen Sie mir bitte einen Blog. Ich muss herausfinden, wie diese App funktioniert, damit ich auf meine Backups und Slony vertrauen kann Replikation. Ich hatte einen Entwickler, der ein Backup, das ich von PgadminIII über custom
, directory
und tar
formatierte, während ich OID
s auswählte, wiederherstellen ließ , aber er sagte, dass zwei von ihnen nicht geladen wurden, tar
sondern nur das Verzeichnis, nicht die Daten. Ich bin jetzt wirklich verwirrt.
- Ich benutze PGAdminIII, es hat eine
pg_dump
und einepg_dumpall
Option. Ich möchte alles sichern, was ich zum Testen brauche, um diese Datenbank irgendwo wiederherzustellen und zu überprüfen, ob alle Daten, die wir benötigen, und unsere Sicherung in Ordnung sind. Schließlich möchte ich ein Skript für die automatische Wiederherstellung schreiben, jedoch nur einen Tag nach dem anderen.
pg_dumpall
Anscheinend hat eine -globals
Option, die alles sichern soll, aber die Hilfe für pg_dumpall
zeigt eine -g, --globals-only dump only global objects, no databases
, keine --globals
Option.
Ich dachte, ich pg_dumpall
würde zumindest Fremdschlüssel sichern, aber selbst das scheint eine Option zu sein. Laut Dokumentation kann pg_dumpall
ich -o
mir nicht vorstellen, wann ich Fremdschlüssel nicht sichern möchte , obwohl ich eine Option zum Sichern von Fremdschlüsseln verwenden muss. Dies ist als Standardoption sinnvoller.
- Wie würde ich mich um verwaiste Benutzer kümmern und prüfen, ob ich alles habe? Ich möchte meine Sicherungsdatei auf einem anderen Server wiederherstellen und überprüfen, ob alles funktioniert. Wenn jemand Vorschläge hat, wie man ein echtes Backup in PostgreSQL erstellt und wiederherstellt, wäre ich sehr dankbar.
Ich hatte einen PostgreSQL-Server, kann aber immer noch nicht verstehen, warum die App OID
standardmäßig keine Backups erstellt ! Es scheint, als ob Sie dies in 99,9% der Fälle wünschen würden.
UPDATE 1:
In der Postgres- Dokumentation wird erwähnt, dass die globals
gesuchte Option in dieser Version eine Standardoption zu sein scheint, sie jedoch weiterhin benötigt -o
. Wenn mir jemand einen Beispielbefehl zum Wiederherstellen einer einzelnen Datenbank mit allem, was er benötigt, bestätigen oder geben kann, würde ich das begrüßen.
Bearbeiten: wird von der Site gebeten, die Eindeutigkeit dieser Frage durch Bearbeiten meiner Frage zu verdeutlichen. Diese Frage wirft das Problem auf und gibt Aufschluss über die OIDs in Sicherungen, den Unterschied zwischen globalen und nicht globalen Sicherungen sowie über die Empfehlungen zum Testen von Wiederherstellungen, um sicherzustellen, dass die Sicherung nicht nur gesichert, sondern auch gut ist. Aufgrund der Antworten konnte ich ein Backup erstellen, Globals / Oids herausfinden und jeden Abend einen Testwiederherstellungsprozess auf Postgres mithilfe von Cron-Jobs starten. Danke für die Hilfe!
quelle
Antworten:
Sie können den gesamten PostgreSQL-Cluster mit pg_dumpall sichern. Das sind alle Datenbanken und alle globalen Daten für einen einzelnen Cluster. Über die Befehlszeile auf dem Server würde ich so etwas tun. (Ich empfange Port 5433, nicht den Standardport.) Möglicherweise benötigen Sie die Option --clean.
Dies umfasst die globalen Daten - Informationen zu Benutzern und Gruppen, Tablespaces usw.
Wenn ich eine einzelne Datenbank sichern und auf einen Arbeitsserver verschieben würde, würde ich die Datenbank mit pg_dump sichern und die globalen Datenbanken mit beiden
pg_dumpall --globals-only
, oderpg_dumpall --roles-only
(wenn Sie nur Rollen benötigen)so was.
Ausgaben sind nur Textdateien.
Nachdem Sie diese Dateien auf einen anderen Server verschoben haben, laden Sie zuerst die globalen und dann den Datenbankspeicherauszug.
Nein, in dieser Referenz steht "Verwenden Sie diese Option, wenn Ihre Anwendung in irgendeiner Weise auf die OID-Spalten verweist (z. B. in einer Fremdschlüsseleinschränkung). Andernfalls sollte diese Option nicht verwendet werden." (Hervorhebung hinzugefügt.) Ich halte es für unwahrscheinlich, dass Ihre Anwendung auf die OID-Spalten verweist. Sie müssen diese Option nicht verwenden, um "Fremdschlüssel zu sichern". (Lesen Sie die Dump-Datei in Ihrem Editor oder File Viewer.)
quelle
psql -U postgres -h localhost -p 5433 sandbox < sandbox.sql
pg_dumpall
Version 9.5NULL
bei Verwendung von Werten nicht ordnungsgemäß funktioniertCOPY
. Ich erhalte viele Fehler wie diesen:psql:/tmp/dumpall.sql:4133559: invalid command \N psql:/tmp/dumpall.sql:4133560: invalid command \.
Beimpsql -f /tmp/dumpall.sql