Benutzer-Werkzeuge


Sidebar

ASV-Webseite

Dokumentation

Hilfe



Druck/Export

Drucken/PDF erzeugen

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
Letzte ÜberarbeitungBeide Seiten der Revision
alle:technik:backup:cmd [28.02.2016 08:33] – ↷ Links angepasst weil Seiten im Wiki verschoben wurden maukeralle:technik:backup:cmd [04.11.2021 13:52] – [Restore der Datenbank] mauker
Zeile 1: Zeile 1:
 ====== Backup und Restore an der Kommandozeile (Windows) bzw. der Shell (Linux) ====== ====== 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. 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 [[alle:technik:backup:batch|hier vorgestellte Batch-Skript]] und auch [[alle:technik:backup:pgadmin|pgAdmin]] benutzen diese Befehle.+Das [[alle:technik:backup:batch|hier vorgestellte Batch-Skript]] für Windows und auch [[alle:technik:backup:pgadmin|pgAdmin]] benutzen diese Befehle.
  
 ===== Windows  ===== ===== Windows  =====
Zeile 7: Zeile 7:
 <wrap tip>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.</wrap> <wrap tip>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.</wrap>
 ==== Backup der Datenbank  ==== ==== Backup der Datenbank  ====
-  c:\Programme\PostgreSQL\9.2\bin\pg_dump.exe -U asv -Fc -f 2013-07-15_asv.backup asv+  c:\Programme\PostgreSQL\10\bin\pg_dump.exe -U asv -Fc --schema=asv --blobs -f 2021-07-15_asv.backup asv
 Erläuterung: Erläuterung:
   * ''pg_dump.exe'' ist das von postgreSQL mitgebrachte Tool zum Sichern von Datenbanken   * ''pg_dump.exe'' ist das von postgreSQL mitgebrachte Tool zum Sichern von Datenbanken
   * ''-U asv'': Aktion als Datenbankbenutzer //asv// durchführen   * ''-U asv'': Aktion als Datenbankbenutzer //asv// durchführen
   * ''-Fc'': Komprimiertes Format für die Datensicherung auswählen (c = compressed)   * ''-Fc'': Komprimiertes Format für die Datensicherung auswählen (c = compressed)
 +  * ''--schema=asv'': Nur die Datenbankobjekte im Schema ''asv'' werden gesichert.
 +  * ''--blobs'': Die BLOBs sind nicht im Schema ''asv'' und müssen deshalb extra inkludiert werden.
   * ''-f <Dateiname>'' Ausgabe in Datei (f = file)   * ''-f <Dateiname>'' Ausgabe in Datei (f = file)
   * ''asv'' Datenbank, die gesichert wird   * ''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.+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: Die Datei pgpass.conf hat den folgenden Inhalt:
Zeile 26: Zeile 31:
 pg_dump wertet diese Datei automatisch aus und übernimmt das Passwort. pg_dump wertet diese Datei automatisch aus und übernimmt das Passwort.
  
-(Siehe auch: http://www.postgresql.org/docs/9.2/static/libpq-pgpass.html)+(Siehe auch: http://www.postgresql.org/docs/10/static/libpq-pgpass.html) 
 ==== Restore der Datenbank  ==== ==== Restore der Datenbank  ====
-  c:\Programme\PostgreSQL\9.2\bin\pg_restore.exe -d asv -U asv -c 2013-07-15_asv.backup+  c:\Programme\PostgreSQL\10\bin\psql.exe -c 'DROP SCHEMA asv CASCADE;' -c 'CREATE SCHEMA asv AUTHORIZATION asv;' asv asv 
 + Erläuterung: 
 +  * ''psql.exe'' ist das von postgreSQL mitgebrachte Tool zum Ausführen von SQL-Befehlen in einer Datenbank 
 +  * ''-c ...'': SQL-Befehl, der ausgeführt werden soll 
 +  * ''asv'': Datenbank, in der der Befehl ausgeführt werden soll 
 +  * ''asv'': Datenbankbenutzer, mit dem der Befehl ausgeführt werden soll 
 + 
 +Damit sind alle ASV-spezifischen Daten in der Datenbank gelöscht. 
 +Das Schema selbst ist aber wieder angelegt. 
 + 
 +  c:\Programme\PostgreSQL\10\bin\pg_restore.exe -d asv -U asv --schema=asv 2021-07-15_asv.backup
  Erläuterung:  Erläuterung:
   * ''pg_restore.exe'' ist das von postgreSQL mitgebrachte Tool zum Wiederherstellen von Datenbanken   * ''pg_restore.exe'' ist das von postgreSQL mitgebrachte Tool zum Wiederherstellen von Datenbanken
   * ''-d asv'':  Wiederherstellung in die Datenbank asv (d = database)   * ''-d asv'':  Wiederherstellung in die Datenbank asv (d = database)
   * ''-U asv'': Aktion als Datenbankbenutzer //asv// durchführen   * ''-U asv'': Aktion als Datenbankbenutzer //asv// durchführen
-  * ''-'': Datenbankobjekte vor dem Wiederherstellen löschen+  * ''--schema=asv'': Nur die Objekte und Daten im Schema ''asv'' innerhalb der Datenbank ''asv'' wiederherstellen
   * ''<dateiname>'': aus dieser Datei wiederherstellen   * ''<dateiname>'': aus dieser Datei wiederherstellen
  
 ==== Löschen der Datenbank ==== ==== Löschen der Datenbank ====
 <wrap important> **Vorsicht!** Der folgende Befehl löscht Ihre ASV-Datenbank. Damit sind Ihre Daten unwiederbringlich verloren. **Haben Sie ein Backup gemacht?**</wrap> <wrap important> **Vorsicht!** Der folgende Befehl löscht Ihre ASV-Datenbank. Damit sind Ihre Daten unwiederbringlich verloren. **Haben Sie ein Backup gemacht?**</wrap>
-  c:\Programme\PostgreSQL\9.2\bin\dropdb.exe -U postgres asv+  c:\Programme\PostgreSQL\10\bin\dropdb.exe -U postgres asv
      
 ==== Löschen des Datenbankbenutzers ==== ==== Löschen des Datenbankbenutzers ====
-<wrap important> **Vorsicht! Der folgende Befehl löscht Ihre ASV-Benutzer. dies sollten Sie nur machen, wenn Sie vorhaben, eine Komplettinstallation der ASV durchzuführen!**</wrap> +<wrap important> **Vorsicht! Der folgende Befehl löscht Ihren ASV-Datenbank-Benutzer. Dies sollten Sie nur machen, wenn Sie vorhaben, eine Neuinstallation der ASV durchzuführen!**</wrap> 
-  c:\Programme\PostgreSQL\9.2\bin\dropuser.exe -i -U postgres asv+  c:\Programme\PostgreSQL\10\bin\dropuser.exe -i -U postgres asv
      
  
Zeile 48: Zeile 64:
 Zur Syntax der verwendeten Befehle rufen Sie ''pg_dump %%--%%help'' bzw. ''pg_restore %%--%%help'' oder die zugehörigen man-pages auf. Zur Syntax der verwendeten Befehle rufen Sie ''pg_dump %%--%%help'' bzw. ''pg_restore %%--%%help'' oder die zugehörigen man-pages auf.
 ==== Backup der Datenbank ==== ==== 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)+Komprimiertes Backup der Datenbank erzeugen: 
 +   pg_dump -h localhost -U asv -Fc --schema=asv --blobs -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):\\ Unkomprimierten Dump der Datenbank erzeugen (als root):\\
-''pg_dump -h localhost -U asv -f <dump-name>.sql asv''\\ +''pg_dump -h localhost -U asv --schema=asv --blobs -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.+Der so erzeugte Dump ist eine lesbare Textdatei, die SQL-Statements und die Daten enthält. Dieser ist **nicht** mit pgAdmin, sondern nur mit der unten genannten Methode wieder einspielbar.
  
 ==== Restore der Datenbank ==== ==== Restore der Datenbank ====
-Restore aus einem komprimierten Backup:\\ ''pg_restore -h localhost -d asv -U asv -<backup-name>.backup''+Restore aus einem komprimierten Backup: 
 +  psql -c 'DROP SCHEMA asv CASCADE;-c 'CREATE SCHEMA asv AUTHORIZATION asv;' asv asv 
 +  pg_restore -h localhost -d asv -U asv --schema=asv <backup-name>.backup
  
 Restore aus einem unkomprimierten Dump: Restore aus einem unkomprimierten Dump:
-  - Folgende Befehle als user postgres ausführen: ''root@asv-server:/tmp# su postgres'+  psql -'DROP SCHEMA asv CASCADE;' -'CREATE SCHEMA asv AUTHORIZATION asv;' asv asv 
-  Gegebenenfalls vorhandenden Datenbank löschen: ''postgres@asv-server:/tmp$ dropdb asv'+  psql -f <postgres_dump>.sql asv
-  - Leere Datenbank mit Datenbankbenutzer asv neu anlegen: ''postgres@asv-server:/tmp$ createdb -h localhost -U asv -O asv asv'' +
-  - Datenbank aus Dump füllen: ''postgres@asv-server:/tmp$ psql -d asv -f <postgres_dump>.sql'' +
-  - Wieder root werden: ''postgres@asv-server:/tmp$ exit''+
  
  
 ==== Löschen der Datenbank ==== ==== Löschen der Datenbank ====
 <wrap important> **Vorsicht!** Der folgende Befehl löscht Ihre ASV-Datenbank. Damit sind Ihre Daten unwiederbringlich verloren. **Haben Sie ein Backup gemacht?**</wrap> <wrap important> **Vorsicht!** Der folgende Befehl löscht Ihre ASV-Datenbank. Damit sind Ihre Daten unwiederbringlich verloren. **Haben Sie ein Backup gemacht?**</wrap>
-  dropdb -h localhost  -U asv asv+  dropdb -h localhost -U asv asv
      
 ==== Löschen des Datenbankbenutzers ==== ==== Löschen des Datenbankbenutzers ====
-<wrap important> **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!**</wrap>+<wrap important> **Vorsicht! Der folgende Befehl löscht Ihren ASV-Datenbank-Benutzer. Diesen sollten Sie nur dann löschen, wenn Sie vorhaben, eine Neuinstallation der ASV durchzuführen!**</wrap>
   dropuser -h localhost  -i -U postgres asv   dropuser -h localhost  -i -U postgres asv