Benutzer-Werkzeuge


Sidebar

ASV-Webseite

Dokumentation

Hilfe



Druck/Export

Drucken/PDF erzeugen

Dies ist eine alte Version des Dokuments!


Backup und Restore an der Kommandozeile (Windows) bzw. der Shell (Linux)

Die hier beschriebene Methode erscheint im ersten Moment etwas kryptisch, hat aber den großen Vorteil, dass die Befehle skriptbar sind. Damit ist zum Beispiel eine automatische, nächtliche Sicherung realisierbar. Das hier vorgestellte Batch-Skript und auch pgAdmin benutzen diese Befehle.

Windows

Passen die Dateipfade an Ihre Gegebenheiten an! Sie können die Exe-Datei auch aus einem Explorerfenster in das Fenster der Eingabeaufforderung ziehen, so vermeiden Sie Tippfehler und die bei Leerzeichen nötigen Anführungszeichen werden automatisch gesetzt.

Backup der Datenbank

c:\Programme\PostgreSQL\9.2\bin\pg_dump.exe -U asv -Fc -f 2013-07-15_asv.backup asv

Erläuterung:

  • pg_dump.exe ist das von postgreSQL mitgebrachte Tool zum Sichern von Datenbanken
  • -U asv: Aktion als Datenbankbenutzer asv durchführen
  • -Fc: Komprimiertes Format für die Datensicherung auswählen (c = compressed)
  • -f <Dateiname> Ausgabe in Datei (f = file)
  • asv Datenbank, die gesichert wird

Bei der Ausführung des Befehls fragt pg_dump nach dem Passwort des Datenbankbenutzers asv. Um einen solchen Aufruf in eine Backup-Skript zu übernehmen, ist es nötig, dieses Passwort zu hinterlegen. Legen Sie hierzu im Verzeichnis %APPDATA%\postgresql (%APPDATA% ist das Application Data Unterverzeichnis im Userprofil) des Windows-Benutzers, der das Backup durchführt die Datei pgpass.conf an.

Die Datei pgpass.conf hat den folgenden Inhalt:

hostname:port:database:username:password

Die ersten 4 Felder können auch mit einer Wildcard (*) belegt sein.

Beispiel:

localhost:*:asv:asv:supergeheim

pg_dump wertet diese Datei automatisch aus und übernimmt das Passwort.

(Siehe auch: http://www.postgresql.org/docs/9.2/static/libpq-pgpass.html)

Restore der Datenbank

c:\Programme\PostgreSQL\9.2\bin\pg_restore.exe -d asv -U asv -c 2013-07-15_asv.backup

Erläuterung:

  • pg_restore.exe ist das von postgreSQL mitgebrachte Tool zum Wiederherstellen von Datenbanken
  • -d asv: Wiederherstellung in die Datenbank asv (d = database)
  • -U asv: Aktion als Datenbankbenutzer asv durchführen
  • -c : Datenbankobjekte vor dem Wiederherstellen löschen
  • <dateiname>: aus dieser Datei wiederherstellen

Löschen der Datenbank

Vorsicht! Der folgende Befehl löscht Ihre ASV-Datenbank. Damit sind Ihre Daten unwiederbringlich verloren. Haben Sie ein Backup gemacht?

c:\Programme\PostgreSQL\9.2\bin\dropdb.exe -U postgres asv

Löschen des Datenbankbenutzers

Vorsicht! Der folgende Befehl löscht Ihre ASV-Benutzer. dies sollten Sie nur machen, wenn Sie vorhaben, eine Komplettinstallation der ASV durchzuführen!

c:\Programme\PostgreSQL\9.2\bin\dropuser.exe -i -U postgres asv

Linux

Zur Syntax der verwendeten Befehle rufen Sie pg_dump --help bzw. pg_restore --help oder die zugehörigen man-pages auf.

Backup der Datenbank

Komprimiertes Backup der Datenbank erzeugen (als root):
pg_dump -h localhost -U asv -Fc -f <backup-name>.backup asv
Ein so erzeugtes Backup ist nachher auch mit pgAdmin wieder zurückspielbar (in diesem Fall ist die Dateiendung wichtig)

Unkomprimierten Dump der Datenbank erzeugen (als root):
pg_dump -h localhost -U asv -f <dump-name>.sql asv
Der so erzeugte Dump ist eine lesbare Textdatei, die SQL-Statements und die Daten enhält. Dieser ist nicht mit pgAdmin, sondern nur mit der unten genannten Methode wieder einspielbar.

Restore der Datenbank

Restore aus einem komprimierten Backup:
pg_restore -h localhost -d asv -U asv -c <backup-name>.backup

Restore aus einem unkomprimierten Dump:

  1. Folgende Befehle als user postgres ausführen: root@asv-server:/tmp# su postgres
  2. Gegebenenfalls vorhandenden Datenbank löschen: postgres@asv-server:/tmp$ dropdb asv
  3. Leere Datenbank mit Datenbankbenutzer asv neu anlegen: postgres@asv-server:/tmp$ createdb -h localhost -U asv -O asv asv
  4. Datenbank aus Dump füllen: postgres@asv-server:/tmp$ psql -d asv -f <postgres_dump>.sql
  5. Wieder root werden: postgres@asv-server:/tmp$ exit

Löschen der Datenbank

Vorsicht! Der folgende Befehl löscht Ihre ASV-Datenbank. Damit sind Ihre Daten unwiederbringlich verloren. Haben Sie ein Backup gemacht?

dropdb -h localhost  -U asv asv

Löschen des Datenbankbenutzers

Vorsicht! Der folgende Befehl löscht Ihre ASV-Benutzer. Diesen sollten Sie nur dann löschen, wenn Sie vorhaben, eine Komplettinstallation der ASV durchzuführen!

dropuser -h localhost  -i -U postgres asv