Amtliche Schulverwaltung
Sie befinden sich hier: start » alle » technik » backup » batch

Backup und Restore mit Batch-Dateien (regelmäßige, automatische Datensicherung)

Für das Backup und Restore der ASV-Datenbank stehen Ihnen zwei Batch-Dateien zur Verfügung, die diese Arbeit recht komfortabel erledigen können. Bitte laden Sie sich diese herunter.

Backup

Laden Sie sich zunächst die unten stehende Datei herunter (für den direkten Download auf den Dateinamen klicken).

Klicken Sie die Datei zum Anpassen mit der rechten Maustaste an und wählen Sie „Bearbeiten“. Zur besseren Übersicht sollte unter „Format“ „Zeilenumbruch“ eingestellt werden.

asv_backup.bat
@Echo off
Echo Erstellen eines Backups der ASV-Datenbank
Echo =========================================
Echo.
 
Rem Bitte hier Zielverzeichnis einstellen (ohne \ am Ende)
set ziel=C:\ASV\Sicherung
 
Rem Konfiguration
Rem Standardverzeichnisse für pg_dump.exe unter Windows
Rem (Bitte ggf. anpassen, wenn Sie von der Standardinstallation 
Rem abgewichen sind.)
 
set pgdumpProgramm="C:\Program Files\PostgreSQL\9.2\bin\pg_dump.exe"
set PGPASSWORD=geheim
 
REM Ausgabeformat
set backup=asv_20%date:~8,2%%date:~3,2%%date:~0,2%.backup
 
 
 
IF Exist %ziel%/nul (
    GOTO speichern
) ELSE (
    Echo Das Zielverzeichnis '%ziel%' existiert nicht.
    Echo Es wurde NICHTS gespeichert.
    Echo.
    GOTO Ende
)
 
:speichern
 
IF Exist %pgdumpProgramm% (
 
    Echo Backup unter Win7:
    Echo %pgdumpProgramm% -U asv -Fc -f %ziel%\%backup% asv
         %pgdumpProgramm% -U asv -Fc -f %ziel%\%backup% asv
)
 
set PGPASSWORD=null
Echo.
Echo Backup-Vorgang abgeschlossen.
Echo.
Echo Der Name der Sicherungsdatei lautet:
Echo   %ziel%\%backup%
Echo.
 
:Ende
 
PAUSE

Führen Sie die Batchdatei durch Aufruf mit asv_backup.bat in einer Eingabeaufforderung aus, nachdem Sie die Konfiguration an Ihre Verhältnisse angepasst haben.

Hinweise:

  • set ziel=…
    in dieses Verzeichnis werden die Sicherungsdateien abgelegt
  • set pgdumpProgramm=„C:\Program Files\PostgreSQL\9.2\bin\pg_dump.exe“
    Pfad zu pg_dump.exe, das normalerweise in der Postgres-Installation enthalten ist
  • set PGPASSWORD=geheim
    Ersetzen Sie geheim durch das von Ihnen bei der Installation vergebene Passwort für den Datenbankbenutzer asv. (Siehe Installationsprotokoll)

    Falls das Passwort des Datenbankbenutzers asv ein %-Zeichen enthält, muss dieses durch eine weiteres %-Zeichen „maskiert“ werden.
    Beispiel:
    Passwort: abc%123
    Eintrag in das Skript: abc%%123

    • Falls das Passwort andere komplexe Zeichen enthält empfiehlt sich folgende Vorgehensweise:
    • Vor jedes Sonderzeichen muss das ^. In einem Kennwort mit z.B. (&)(&% würde das dann so aussehen: ^(^&^)^(^&^%

Empfehlung der PostgreSQL Projektgruppe ist die Verwendung einer Datei .pgpass, statt der Variablen PGPASSWORD. Siehe http://www.postgresql.org/message-id/ga6lj0$d6v$1@ger.gmane.org und http://www.postgresql.org/docs/current/static/libpq-pgpass.html.

Nach dem Start der Batch-Datei wird das Backup in das eingestellte Zielverzeichnis geschrieben. Der Dateiname des Backup enthält das Sicherungsdatum. (z. B. asv_20131002.backup)
Die Batch-Datei eignet sich auch, um ASV regelmäßig per „geplantem Task“ zu sichern (siehe unten).

Restore

Bitte laden Sie die Batch-Datei folgende Batch-Datei herunter. Zum direkten Download klicken Sie auf den Dateinamen.

asv_restore.bat
@ECHO Off
 
REM Bitte hier einstellen, in welchem Verzeichnis sich
REM die Postgres-Tools dropdb.exe, createdb.exe und
REM pgrestore.exe befinden. (ohne \ am Ende)
SET pgpfad="C:\Program Files\PostgreSQL\9.2\bin\"
 
CLS
ECHO Wiederherstellen einer ASV-Datenbank
ECHO =====================================
ECHO.
 
IF EXIST %1 GOTO RESTORE
ECHO Keine Datei!!!
GOTO KEINEDATEI
 
:RESTORE
 
CLS
ECHO Wiederherstellen einer ASV-Datenbank
ECHO =====================================
ECHO.
ECHO 1. dropdb
ECHO    Bitte hier das Postgres-Passwort angeben (falls es verlangt wird), 
ECHO    nicht das ASV-Datenbank-Passwort!
ECHO.
"%pgpfad%\dropdb.exe" -U postgres asv
 
CLS
ECHO Wiederherstellen einer ASV-Datenbank
ECHO =====================================
ECHO.
ECHO 1. dropdb ... Die bisherige Datenbank wurde geloescht.
ECHO.
ECHO 2. createdb
ECHO    Bitte geben Sie das ASV-Datenbank-Passwort an! (meist 'asv')
ECHO.
"%pgpfad%\createdb.exe" -U asv asv
IF NOT %ERRORLEVEL%==0 GOTO FEHLER2
 
CLS
ECHO Wiederherstellen einer ASV-Datenbank
ECHO =====================================
ECHO.
ECHO 1. dropdb ...   Die bisherige Datenbank wurde geloescht.
ECHO.
ECHO 2. createdb ... Die neue (noch leere Datenbank) wurde angelegt.
ECHO.
ECHO 3. pg_restore (Daten einspielen)
ECHO    Der Restore-Vorgang kann ein paar Minuten dauern. Bitte Geduld!
ECHO    Wiederhergestellt wird: 
ECHO    %1
ECHO.
ECHO    Bitte nochmal das ASV-Datenbank-Passwort angeben! (meist 'asv')
ECHO.
"%pgpfad%\pg_restore.exe" -d asv -U asv -v %1
 
CLS
ECHO Wiederherstellen einer ASV-Datenbank
ECHO =====================================
ECHO.
ECHO 1. dropdb ...   Die bisherige Datenbank wurde geloescht.
ECHO.
ECHO 2. createdb ... Die neue (noch leere Datenbank) wurde angelegt.
ECHO.
ECHO 3. pg_restore   Die leere Datenbank wurde mit Inhalten gefuellt.
ECHO.
ECHO.
ECHO Die Wiederherstellung der Datei 
ECHO   %1 
ECHO ist abgeschlossen.
GOTO ENDE
 
:KEINEDATEI
CLS
ECHO Wiederherstellen einer ASV-Datenbank
ECHO =====================================
ECHO.
ECHO Es wurde keine .backup-Datei fuer Postgres angegeben.
ECHO Bitte 'ziehen' Sie eine solche Datei auf diese .bat-Datei!
GOTO ENDE
 
:FEHLER2
CLS
ECHO Wiederherstellen einer ASV-Datenbank
ECHO =====================================
ECHO.
ECHO Fehler beim Erstellen der Datenbank. 
ECHO Moegliche Fehlerquellen:
ECHO   - Laeuft der ASV-Server noch?
ECHO   - Sie haben ein falsches ASV-Datenbankkennwort angegeben.
GOTO ENDE
 
:ENDE
ECHO.
 
PAUSE

Die Batch-Datei ist für eine Standard-Installation von Postgres unter Windows7 ausgelegt. Die Variable pgpfad verweist auf das Verzeichnis in dem sich die Postgres-Tools dropdb.exe, createdb.exe und pgrestore.exe befinden. Am Ende der Variablen darf kein \ stehen!

Wenn eine Sicherung zurückgespielt werden soll, …

  • Stoppen Sie zunächst den ASV-Server.
  • Ziehen Sie die Sicherungsdatei mit der Maus auf die Restore-Batch-Datei.
  • Geben Sie Sie auf Nachfrage die Kennwörter des Postgres-Servers bzw. der asv-Datenbank an.
  • Starten Sie den ASV-Server wieder.

Einrichtung einer automatisierten Datenbanksicherung

Damit Sie nicht täglich eine manuelle Sicherung der ASV-Datenbank erstellen müssen, können Sie diesen Vorgang automatisieren:

  • Legen Sie sich auf dem Computer, auf dem die Sicherungsdateien gespeichert werden sollen, ein Verzeichnis 'ASV-Datenbanksicherung' an.
  • Speichern Sie die genannten Batch-Dateien in das neu erstellte Verzeichnis.
  • Rufen Sie in Windows (am Beispiel von Windows 7) 'Systemsteuerung/Verwaltung/Aufgabenplanung' auf.

  • Klicken Sie rechts unter 'Aktionen' auf 'Einfache Aufgabe erstellen…„!
    • Name: ASV-Sicherung, Beschreibung: ASV-Sicherung, täglich um 18:00 Uhr. ⇒ Weiter
    • Wann soll die Aufgabe gestartet werden?: Täglich ⇒ Weiter
    • Start: heutiges Datum, 18:00:00, Wiederholung alle: 1 Tage ⇒ Weiter
    • Welche Aktion …?: Programm starten ⇒ Weiter
    • Programm/Skript: Wählen Sie hier die oben genannte Batchdatei aus! ('Argumente hinzufügen' und 'Starten in' leer lassen.) ⇒ Weiter
    • ⇒ Fertigstellen
  • Nun sollte die Batch-Datei jeden Tag um 18:00 Uhr eine Sicherungsdatei erstellen. Die Namen der Sicherungsdateien sind folgendermaßen aufgebaut: asv_[Datum].backup (z. B. asv_20131007.backup)
  • Das Rückspielen einer Backup-Datei ist über den oben beschriebenen Restore-Prozess jederzeit möglich.

Alternative Skripte von Schulen

Falls Sie Lösungen für spezielle Konfigurationen in Ihrer Systemumgebung suchen, werden Sie vielleicht in der Sammlung alternativer Skripte:start fündig.