Ich hatte gehofft, ich könnte eine klare Antwort darauf erhalten, wie ich sicherstellen kann, dass ein vollständiges Postgres-Backup erstellt wird, wie Sie es mit MS SQL Server erhalten würden, und mich dann um verwaiste Benutzer kümmern kann.
Nach dem, was ich gelesen habe und es könnte falsch sein, war es eine Herausforderung, einen guten PostgreSQL-Blog zu finden. Bitte empfehlen Sie mir einige. Ich muss herausfinden, wie diese App funktioniert, damit ich meinen Backups und Slony vertrauen kann Reproduzieren. Ich ließ einen Entwickler ein Backup wiederherstellen, das ich von PgadminIII über die Formate custom
, directory
und tar
erstellt hatte, während er OID
s auswählte, aber er sagte, zwei von ihnen taten es nicht. t load, tar
tat es, aber es war nur das Verzeichnis, nicht die Daten. Ich bin jetzt wirklich verwirrt.
pg_dump
Und pg_dumpall
. Ich möchte alles sichern, dass ich testen muss, um diese Datenbank irgendwo wiederherzustellen und zu überprüfen, ob ja, alle Daten, die wir benötigen, und unser Backup ist gut. Schließlich möchte ich ein Skript zur automatischen Wiederherstellung schreiben, aber jeden Tag.pg_dumpall
Hat anscheinend 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, pg_dumpall
Würde zumindest Fremdschlüssel sichern, aber selbst das scheint eine 'Option' zu sein. Laut Dokumentation muss ich mir selbst mit pg_dumpall
Eine Option -o
Verwenden, um Fremdschlüssel zu sichern. Ich kann mir nicht wirklich vorstellen, wann ich nicht möchte Fremdschlüssel sichern und dies wäre als Standardoption sinnvoller.
Ich hatte einen PostgreSQL-Server, kann aber immer noch nicht verstehen, warum die App nicht standardmäßig OID
s sichern würde! Es scheint, als würden Sie 99,9% der Zeit das wollen.
UPDATE 1 :
In Postgres Dokumentation wird erwähnt, dass die von mir gesuchte Option globals
eine Standardoption für diese Version zu sein scheint, aber weiterhin die Option -o
Benötigt. Wenn jemand einen Beispielbefehl überprüfen oder mir geben kann, um eine einzelne Datenbank an anderer Stelle mit allem, was sie benötigt, wiederherzustellen, würde ich es begrüßen.
Bearbeiten: Wird von der Site gebeten, die Einzigartigkeit dieser Frage durch Bearbeiten meiner Frage zu zeigen. Diese Frage wirft das Problem auf und verdeutlicht die OIDs in Sicherungen, den Unterschied zwischen globalen und nicht globalen Daten sowie das Testen von Wiederherstellungsempfehlungen, um sicherzustellen, dass die Sicherung gut ist und nicht nur eine Sicherung. Aufgrund der Antworten konnte ich Backups erstellen, Globals/Oids herausfinden und jeden Abend einen Testwiederherstellungsprozess auf Postgres mit Cron-Jobs starten. Danke für die Hilfe!
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. (Mine überwacht Port 5433, nicht den Standardport.) Möglicherweise benötigen Sie die Option --clean.
$ pg_dumpall -U postgres -h localhost -p 5433 --clean --file=dump.sql
Dies umfasst die globalen Informationen zu Benutzern und Gruppen, Tabellenbereichen usw.
Wenn ich eine einzelne Datenbank sichern und auf einen Scratch-Server verschieben würde , würde ich die Datenbank mit pg_dump sichern und die Globals mit beiden sichern
pg_dumpall --globals-only
Oderpg_dumpall --roles-only
(Wenn Sie nur Rollen benötigen)so was.
$ pg_dump -U postgres -h localhost -p 5433 --clean --file=sandbox.sql sandbox
$ pg_dumpall -U postgres -h localhost -p 5433 --clean --globals-only --file=globals.sql
Ausgaben sind nur Textdateien.
Nachdem Sie diese Dateien auf einen anderen Server verschoben haben, laden Sie zuerst die globalen Daten und dann den Datenbankspeicherauszug.
$ psql -U postgres -h localhost -p 5433 < globals.sql
$ psql -U postgres -h localhost -p 5433 < sandbox.sql
Ich dachte, pg_dumpall würde zumindest Fremdschlüssel sichern, aber selbst das scheint eine 'Option' zu sein. Laut: http://www.postgresql.org/docs/9.1/static/app-pg-dumpall.html Auch mit pg_dumpall muss ich eine Option -o verwenden, um Fremdschlüssel zu sichern
Nein, in dieser Referenz steht "Verwenden Sie diese Option, wenn Ihre Anwendung auf irgendeine Weise auf die Spalten OID 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 Spalten OID verweist. Sie müssen diese Option nicht verwenden, um "Fremdschlüssel zu sichern". (Lesen Sie die Dump-Datei in Ihrem Editor oder File Viewer.)