Projekt

Allgemein

Profil

Aktionen

110 Umzug einer Datenbank (pg dump backup) Schulungs Test System » Historie » Revision 12

« Zurück | Revision 12/96 (diff) | Weiter »
[X] Lutz G, 18.12.2013 15:55


Umzug einer Datenbank (pg_dump & pg dumpall)

Programme pg_dumpall und psql erreichbar unter ..\PostgreSQL\9.0\bin\

Dump erstellen:

pg_dump -U postgres --disable-triggers DB > db-dump-file.sql bzw.
pg_dumpall -h localhost -p 5432 -U postgres -w -c -f dumpall.sql -v --column-inserts --disable-triggers

  • -h -p -U -w sind Verbindungsoptionen: Host, Post, Benutzer für den dump, ohne Passwort (weglassen falls Verbindung fehlschlägt und Passwort nötig ist)
  • -c Clean-Option: Schreibt DROP commands für DBs, Roles, tablespaces, die wieder erzeugt werden sollen.
  • -f Dateiname
  • -v Verbose-Optione, erweiterte Ergebnis-Ausgabe
  • --column-inserts Daten als INSERT INTO table (colum1, column2, ...) VALUES (value1, value2, ...); schreiben, sehr langsam, aber besser zur Fehlerbehebung.
  • --disable-triggers Trigger bei Wiederherstellung deaktivieren.

Wiederherstellen:

Konsole starten mit Adminrechten folgendes eingeben: chcp 1252 (Zeichensatzcodierung anpassen)
psql -h localhost -p 5432 -d DBNAME -U postgres -f dumpall.sql -q -o dumplog.txt

  • Verbindungsoptionen siehe oben (-o query results to file, für Fehler)
  • Vollständiges oben erstelltes Skript wird ausgeführt. (zu erwartende Fehlermeldung: DROP USER postgres und CREATE USER postgres, ist ja unser ausführender Benutzer)
  • Datenbank-Name muss angegeben werden, sonst wird in System-DB "postgres" geschrieben
  • implicit casts werden nicht mit importiert: PSQL\Tables\_pg83-implicit-casts.sql muss mitgegeben werden.
Nutzer und Rollen (Gruppen) exportieren und importieren:
  • mit pg_dumpall die benutzer und rollen aus dem alten DB-Cluster übernehmen
  • Befehl: pg_dumpall -U postgres -r -f alt.roles.sql
  • mit psql die Benutzer und Gruppen wieder importieren

Von [X] Lutz G vor mehr als 11 Jahren aktualisiert · 12 Revisionen