PostgreSQL Sicherung im Batch - LEHRER-ONLINE-BW

Werbung
Schulverwaltung Baden-Württemberg
Betreuung und Unterstützung
PostgreSQL Sicherung im Batch
Unterrichtsorganisation
Kapitel xx
Schulverwaltung
Baden-Württemberg
Postgres Datenbanksicherung und Wiederherstellung
Die Datenbank PostgreSQL bietet mit dem graphischen Administrationswerkzeug
pgadmin die Möglichkeit, im Dialog Backups von Datenbanken zu erstellen und auch
wiederherzustellen. Ohne das pgadmin-Tool stehen die Programme pg_dump und
pg_restore zur Verfügung, die Backuperstellung und Wiederherstellung von der
Kommasndozeile ermöglichen. Die beiden Batch-Prozeduren BackupASV.bat und
RestoreASV.bat unterstützen die konsistente Sicherung und Wiederherstellung der
Postgres Datenbanken, die von ASV (Bewerbermodul) bzw. SVPBW erstellt und genutzt
werden.
Inhalt des Pakets
•
•
•
BackupPostgresBatch.doc (dieses Dokument)
BackupASV.bat
RestoreASV.bat
Voraussetzungen/Bedingungen
Die Postgres-Datenbank muss installiert sein, der Programmpfad, in dem sich die
Programme pg_dump.exe und pg_restore.exe befinden, muss bekannt sein. Ebenso
müssen die Datenbankparameter und ein mit den entsprechenden Rechten
ausgestatteter Postgres-Benutzer und Kennwort vorhanden sein.
Vorbereitung
•
•
•
•
Öffnen Sie die Datei backupASV.bat in einem Texteditor und passen Sie die
Variablen ihrem Umfeld an. Tun Sie dasselbe mit der Datei restoreASV.bat.
Starten Sie die Kommandozeile mit [Ausführen] cmd [Enter]
Starten Sie die Prozedur von der Kommandozeile aus.
Bei fehlerhaften Angaben in der Prozedur bricht diese mit einer Fehlermeldung
ab. Korrigieren Sie in diesem Fall die entsprechenden Parameter und starten
dann die Prozedur erneut.
Vorbereitung
Im folgenden sehen Sie die Prozeduren. Die von Ihnen anzupassenden Einträge sind
gelb markiert, andere Einträge müssen Sie i. a. nicht anpassen. Bitte beachten: Die
Fehlermeldungen beim Ausführen der Restore-Prozedur, die aus dem Versuch
stammen, nicht vorhandene Tabellen zu löschen, werden bewusst in Kauf genommen.
Stand: 2011-06-30
Seite 2 von 6
Unterrichtsorganisation
Kapitel xx
Schulverwaltung
Baden-Württemberg
Backup Prozedur
rem **************************************************************
rem **
**
rem ** B A C K U P A S V . B A T
**
rem **
**
rem ** Script zum Erzeugen eines Backups
**
rem ** von ASV bzw. SVP im Batch
**
rem ** Die Parametervariablen muessen an die eigenen
**
rem ** Beduerfnisse angepasst werden.
**
rem **
**
rem ** Kommentare werden durch rem eingeleitet
**
rem ** Die Ruecksicherung in eine beliebige Postgres-Datenbank **
rem ** wird mit der Prozedur RestoreASV.bat durchgefuehrt
**
rem **
**
rem **************************************************************
echo OFF
rem **----------------------------------------------------------**
rem ** Pfad zu den pgadmin-Tools (normalerweise bin-Verzeichnis **
rem ** der Datenbank, abhaengig von Betriebssystemversion)
**
rem **----------------------------------------------------------**
set DIR_CMD="C:\Programme\PostgreSQL\8.4\bin"
rem **----------------------------------------------------------**
rem ** S E R V E R
(symbolischer Name oder IP-Adresse)
**
rem **----------------------------------------------------------**
set PGHOST=localhost
rem **----------------------------------------------------------**
rem ** D A T E N B A N K A N G A B E N
**
rem ** Die Quelldatenbank, in der sich die ASV-Tabellen
**
rem ** befinden
**
rem **----------------------------------------------------------**
rem ** PGDATABASE: z.B. svpbw10db, asv, beliebige andere...
**
rem **----------------------------------------------------------**
set PGDATABASE=asv2
rem **----------------------------------------------------------**
rem ** PGUSER: Inhaber des Datenbankservices (postgres)
**
rem ** oder der Datenbankinhaber (z. B. ms4 oder asv)
**
rem ** PGPASSWORT das zugehoerige Passwort (SdW..., asv, ...)
**
rem **----------------------------------------------------------**
set PGUSER=postgres
set PGPASSWORD=SdW?vRZit1aB
set PGPORT=5432
rem **----------------------------------------------------------**
rem ** B A C K U P - F I L E und Pfad
**
rem **----------------------------------------------------------**
set DST_PATH=D:\Backup
set DST_FILE=bewerber_20120220_BatchAsv2.backup
rem **----------------------------------------------------------**
rem ** Programmnamen der D A T E N B A N K T O O L S
**
rem **----------------------------------------------------------**
set CMD_DUMP=%DIR_CMD%\pg_dump.exe
set CMD_REST=%DIR_CMD%\pg_restore.exe
set CMD_DUMP_ALL=%DIR_CMD%\pg_dumpall.exe
rem **----------------------------------------------------------**
rem ** Ab hier muss im allgemeinen keine Anpassung mehr
**
rem ** vorgenommen, die Variablen sind alle gefuellt
**
rem **----------------------------------------------------------**
Stand: 2011-06-30
Seite 3 von 6
Unterrichtsorganisation
Kapitel xx
Schulverwaltung
Baden-Württemberg
IF NOT exist %CMD_DUMP% (
echo *************************************************************
echo **
F E H L E R!!!
**
echo *************************************************************
echo Sicherungsprogramm nicht gefunden
echo %CMD_DUMP% existiert nicht
GOTO ENDE
)
rem **----------------------------------------------------------**
rem ** Ausfuehren des Backups
**
rem **----------------------------------------------------------**
IF exist %DST_PATH% (
%CMD_DUMP% -i -h %PGHOST% -p %PGPORT% -U %PGUSER% -F c -b -v -f
%DST_PATH%\%DST_FILE% %PGDATABASE%
) ELSE (
echo *************************************************************
echo **
F E H L E R!!!
**
echo *************************************************************
echo %DST_PATH% existiert nicht
echo Abbruch Backup
GOTO ENDE
)
rem **----------------------------------------------------------**
echo ** P R O T O K O L L
**
rem **----------------------------------------------------------**
echo.Database: %PGDATABASE%
echo Servername: %PGHOST%
echo.Backup read: %DST_FILE%
echo Backup Directory: %DST_PATH%
echo **************************************************************
:ENDE
echo Backup-Prozedur endet
echo **************************************************************
Stand: 2011-06-30
Seite 4 von 6
Unterrichtsorganisation
Kapitel xx
Schulverwaltung
Baden-Württemberg
Restore Prozedur
echo OFF
rem **************************************************************
rem **
**
rem **
**
rem ** R E S T O R E A S V . B A T
Version 2.0
**
rem **
**
rem ** Script zum Einlesen eines Backups
**
rem ** nach ASV bzw. SVP im Batch
**
rem **
**
rem ** Die Parametervariablen muessen an die eigenen
**
rem ** Bedürfnisse angepasst werden.
**
rem **
**
rem ** Neu in Version 2.0: Die Schemata asv und public werden
**
rem **
vor dem Restore geloescht.
**
rem **
**
rem ** H I N W E I S :
rem am Zeilenanfang macht die Zeile
**
rem **
zum Kommentar!
**
rem **************************************************************
rem **----------------------------------------------------------**
rem ** Pfad zu den pgadmin-Tools (normalerweise bin-Verzeichnis **
rem ** der Datenbank, abhaengig von Betriebssystemversion)
**
rem **----------------------------------------------------------**
set DIR_CMD="C:\Programme\PostgreSQL\8.4\bin"
rem **----------------------------------------------------------**
rem ** S E R V E R
(symbolischer Name oder IP-Adresse)
**
rem **----------------------------------------------------------**
set PGHOST=localhost
rem **----------------------------------------------------------**
rem ** D A T E N B A N K A N G A B E N
**
rem ** Die Zieldatenbank kann durchaus einen anderen Namen als **
rem ** die Ursprungsdatenbank haben
**
rem **----------------------------------------------------------**
rem ** PGDATABASE: z. B. svpbw10db, asv, andere...
**
set PGDATABASE=asv2
rem ** PGUSER: Inhaber des Datenbankservices (postgres)
**
rem ** oder der Datenbankinhaber (z. B. ms4 oder asv)
**
rem ** PGPASSWORT das zugehoerige Passwort (SdW..., asv ...)
**
set PGUSER=postgres
set PGPASSWORD=SdW?vRZit1aB
set PGPORT=5432
rem **----------------------------------------------------------**
rem ** B A C K U P - F I L E und Pfad
**
rem **----------------------------------------------------------**
set DST_PATH=D:\Backup
set DST_FILE=bewerber20120220.backup
rem **----------------------------------------------------------**
rem ** Programmnamen der D A T E N B A N K T O O L S
**
rem **----------------------------------------------------------**
set CMD_DUMP=%DIR_CMD%\pg_dump.exe
set CMD_REST=%DIR_CMD%\pg_restore.exe
set CMD_SQL=%DIR_CMD%\psql.exe
set CMD_DUMP_ALL=%DIR_CMD%\pg_dumpall.exe
rem **************************************************************
rem ** Ab hier muss im allgemeinen keine Anpassung mehr
**
Stand: 2011-06-30
Seite 5 von 6
Unterrichtsorganisation
Kapitel xx
Schulverwaltung
Baden-Württemberg
rem ** vorgenommen, die Variablen sind alle gefuellt
**
rem **************************************************************
IF NOT exist %CMD_SQL% (
echo **************************************************************
echo **
F E H L E R!!!
**
echo **************************************************************
echo PSQL nicht gefunden
echo %CMD_SQL% existiert nicht
GOTO ENDE
)
IF NOT exist %CMD_REST% (
echo **************************************************************
echo **
F E H L E R!!!
**
echo **************************************************************
echo Sicherungsprogramm nicht gefunden
echo %CMD_REST% existiert nicht
GOTO ENDE
)
rem **------------------------------------------------------------**
rem **
**
rem ** pg_restore --clean funktioniert wegen der Abhängigkeiten
**
rem ** nicht. Zunächst die Schemata asv und public löschen
**
rem **
**
rem ** Ausfuehren des Restore
**
rem ** H I N W E I S : Beim Restore muss der --clean Parameter
**
rem **
gesetzt werden. Andernfalls kann das
**
rem **
Schema public nicht erzeugt werden
**
rem **
Die daraus resultierenden Fehlermeldungen **
rem **
beim Loeschversuch der Tabellen muessen
**
rem **
dafuer in Kauf genommen werden
**
rem **------------------------------------------------------------**
IF exist %DST_PATH%\%DST_FILE% (
%CMD_SQL% -c "DROP SCHEMA IF EXISTS asv, public CASCADE;" --host %PGHOST% -port %PGPORT% --username %PGUSER% %PGDATABASE%
%CMD_REST% --clean --verbose --host=%PGHOST% --port=%PGPORT% -username=%PGUSER% --dbname=%PGDATABASE% %DST_PATH%\%DST_FILE%
) ELSE (
echo **************************************************************
echo **
F E H L E R!!!
**
echo **************************************************************
echo %DST_PATH%\%DST_FILE% existiert nicht
echo Abbruch Restore
GOTO ENDE
)
echo **************************************************************
echo ** P R O T O K O L L
**
echo **************************************************************
echo.Database: %PGDATABASE%
echo Servername: %PGHOST%
echo.Backup read: %DST_FILE%
echo Backup Directory: %DST_PATH%
echo **************************************************************
:ENDE
echo Restoreprozedur endet
echo **************************************************************
Stand: 2011-06-30
Seite 6 von 6
Herunterladen