====== Backup und Restore mit Batch-Dateien (regelmäßige, automatische Datensicherung) ====== Diese Funktion ist im Aktualisierungsdienst integriert. Lesen Sie dazu [[alle:technik:backup:service|Regelmäßige, automatische Datensicherung durch den Aktualisierungsdienst]]. Diese Seite wird nicht mehr gepflegt. Diese Dokumentation soll Anhaltspunkte geben, wie es funktionieren kann, wenn der Aktualisierungsdienst nicht verwendet wird. Für das Backup und Restore der ASV-Datenbank stehen Ihnen zwei Batch-Dateien zur Verfügung, die helfen könnten. 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. @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. @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{{alle:technik:backup:asv_backup_skripte.zip| Batch-Dateien}} in das neu erstellte Verzeichnis. * Rufen Sie in Windows (am Beispiel von Windows 7) 'Systemsteuerung/Verwaltung/Aufgabenplanung' auf. \\ {{alle:technik:backup:aufgabenplanung.jpg|}} \\ * 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 [[.alternative_skripte|Sammlung alternativer Skripte:start]] fündig.