udobec
Goto Top

Grafisches Tool für automatisiertes Backup PostgreSQL Datenbank

Guten Morgen,

ich sollte vielleicht etwas weiter ausholen, um mein Anliegen darzustellen:

Seit einigen Jahren wird versucht, bayernweit an allen staatlichen Schulen die ASV=Amtliche Schulverwaltung einzuführen. Dabei handelt es sich um ein Schulverwaltungsprogramm, mit dem jede noch so kleine Kleinigkeit, was Schüler- und Lehredaten v.a. betrifft, erfasst werden soll/kann. Zum Verständnis hier, die Arbeitsweise:

http://www.asv.bayern.de/asv/basisinformationen.html

Da unser Landkreis für den Bereich Grund- und Mittelschulen in diesem Schuljahr als Pilotlandkreis ausgewählt wurde, hier nun meine Frage zur Sicherung der Datenbank.
Ich würde mir wünschen, dass man die komplette Datenbank mit einem grafischen Tool automatisch zu einer vorgegeben Zeit sichern kann, was das Programm ASV leider momentan noch nicht kann. Dort ist nur eine Sicherung per Knopfdruck möglich.
Dieses Tool http://postgresql-backup.com würde genau meinen Vorstellungen entsprechen. Ich habe es auch schon getestet, doch leider ohne Erfolg. Die Datenbank konnte ich nicht rücksichern, als ich versuchte, sie über pgadminIII wieder einzulesen. Ich muss dazu sagen, meine Kenntnisse in Sachen Datenbankprogrammierung gehen gegen null und so geht es dem Großteil der Lehreschaft, die sich mit dem Programm ASV herumschlagen muss.

Alternativ dazu wird von den ASV entwicklern folgendes Skript angeboten, das dann über den Windows Taskmanager abgearbeitet werden kann.
asvbackup.bat
@echo off
Echo Erstellen eines Backups der ASV-Datenbank
Echo =========================================
Echo.

Rem Bitte hier Zielverzeichnis einstellen (ohne \ am Ende)
set ziel=Z:\ASVbackup

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="D:\postgreSQL\9.3\bin\pg_dump.exe"
set PGPASSWORD=spitze

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%
%pgdumpProgramm% -U asv -Fc -f %ziel%\%backup%
)

set PGPASSWORD=null
Echo.
Echo Backup-Vorgang abgeschlossen.
Echo.
Echo Der Name der Sicherungsdatei lautet:
Echo %ziel%\%backup%
Echo.

:Ende

PAUSE

asvrestore:
http://www.asv.bayern.de/wiki/_export/code/backup/batch?codeblock=1[26.11.2015 06:40:03]
@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 =====================================
http://www.asv.bayern.de/wiki/_export/code/backup/batch?codeblock=1[26.11.2015 06:40:03]
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

Ist es möglich dieses Skript/ Skripte mit z.B. Autoit zu visualisieren sprich GUI. Ich hoffe, ich konnte mich klar ausdrücken;)
Danke.

Gruß

Content-ID: 289400

Url: https://administrator.de/contentid/289400

Ausgedruckt am: 22.11.2024 um 18:11 Uhr

ypstech
Lösung ypstech 26.11.2015, aktualisiert am 04.12.2015 um 06:28:48 Uhr
Goto Top
Hallo udobec

ich würde die Geschichte mit Script und Taskplaner beibehalten, wenn das einmal vernünftig eingerichtet ist läuft das problemlos.
Bei den paar Servern die ich noch betreue handle ich überall die Backups mit nach diesem Schema.
Sobald irgendwas interaktiv läuft oder irgendwer was zum "rumklicken" hatte gabs irgendwann mal Probleme...Vor der Eingabeaufforderung haben die meisten noch Respekt face-wink
runasservice
Lösung runasservice 26.11.2015, aktualisiert am 04.12.2015 um 06:27:50 Uhr
Goto Top
Hallo,

Ist es möglich dieses Skript/ Skripte mit z.B. Autoit zu visualisieren sprich GUI. Ich hoffe, ich konnte mich klar ausdrücken;)

Gerne schreibe ich euch (kostenlos) eine passende GUI mit Setup, Installer und Code Signing-Zertifikat, einfach eine PM schreiben.

MfG Andreas
udobec
udobec 26.11.2015 um 14:02:28 Uhr
Goto Top
Echt?
runasservice
Lösung runasservice 26.11.2015, aktualisiert am 04.12.2015 um 06:27:59 Uhr
Goto Top
Zitat von @udobec:

Echt?

Ja, kein Problem. Schreibe mir deine Kontaktdaten als PM und ich setzte mich mit Dir in Verbindung um das Projekt/Anforderungen abzusprechen.

MfG Andreas
Barabas
Lösung Barabas 26.11.2015, aktualisiert am 04.12.2015 um 06:28:11 Uhr
Goto Top
Hallo,

Dieses Tool http://postgresql-backup.com würde genau meinen Vorstellungen entsprechen.

Das ist mit 60-130 $ aber ganz schön happig, dafür dass es nur diese eine Aufgabe löst. Warum kein günstiges Backup Programm und das komplette Datenverzeichnis von Postgre SQL sichern? Zumal die dann noch universell einsetzbar sind. Überlege mal folgendes:

1. Der vorgestellte Script erstellt einen Dump deiner Datenbank, aber der muss auch noch gesichert werden.
2. Bei jedem Update von Postgre muss der Script angepasst werden.

Ich würde ein einfaches Backup-Programm wie z.B. Personal-Backup, Cobian Backup oder Z-DBackup einsetzen. Da ich selbst Z-DBackup benutze, weiß ich, dass es kein Aufwand ist, verschiedene Datenbanken (Fastobject, MSSQL oder Postgre) vor der Sicherung automatisch anzuhalten und nach dem Backup wieder zu starten.

LG Horst
udobec
udobec 27.11.2015 um 06:18:43 Uhr
Goto Top
Moin,

wenn ich das richtig sehe, sicherst du mit Cobian Backup z.B. den Datenordner der PostgreSQL Datenbank und hältst dabei vorher den Dienst der Datenbank automatisch an, oder? Cobian backup habe ich schon auf dem Server für eine anderen Dateiordner laufen.
1. Welcher ordner der Datenbank ist das genau (der hier? C:\Program Files\PostgreSQL\9.4\data)?
2. Wie hältst du den Dienst automatisch an und startest ihn wieder?
3. Wie sieht dann/wie klappt dann eine Rücksicherung?

Danke.
udobec
udobec 27.11.2015 um 06:22:30 Uhr
Goto Top
zu 2. macht man das über die aufgabenplanung mit einem kleinen skrip?
Barabas
Lösung Barabas 27.11.2015, aktualisiert am 04.12.2015 um 06:28:40 Uhr
Goto Top
Zitat von @udobec:

wenn ich das richtig sehe, sicherst du mit Cobian Backup z.B. den Datenordner der PostgreSQL Datenbank und hältst dabei vorher den Dienst der Datenbank automatisch an, oder? Cobian backup habe ich schon auf dem Server für eine anderen Dateiordner laufen.

Nein, wir benutzen seit 2 Monaten Z-DBackup. Ursprünglich angeschaft für die Archivierung von Projektdaten auf einen Magnum-Medienwechsler. Wir erstellen jetzt damit auch unsere Systemsicherung und die Datensicherung unserer Addision Buchhaltung (Fastobject Datenbank).

1. Welcher ordner der Datenbank ist das genau (der hier? C:\Program Files\PostgreSQL\9.4\data)?

Ja, wenn das der Speicherort deiner Datenbank ist. Einfacher ist aber das ganze Verzeichnis "C:\Program Files\PostgreSQL" zu sichern. Grundsätzlich, würde ich persönlich PostgreSQL direkt unter C:\ bzw. D:\ installieren. Wo sich dein Datebverzeichnis befindet kannst Du auch unter Dienste nachsehen:

"C:\Program Files\PostgreSQL\9.4\bin\pg_ctl.exe" runservice -N "postgresql-x64-9.4" -D "C:\Program Files\PostgreSQL\9.4\data" -w  


2. Wie hältst du den Dienst automatisch an und startest ihn wieder?

Der Start und Stop der Datenbankdienste (Fastobject, MSSQL oder Postgre) sind eingebaute Funktionen von Z-DBackup, die man vor oder nach dem Backup einbinden kann. Es sind ca. 50 vordefinierte Aktionen vorhanden.

3. Wie sieht dann/wie klappt dann eine Rücksicherung?

Dienst anhalten, Rücksicherung durchführen, Dienst starten - fertig.

Auch bei einer Systemsicherung musst man im Gegensatz zu MSSQL die Datenbankdienste von Fastobject, oder Postgre anhalten.

LG Host
runasservice
Lösung runasservice 03.12.2015, aktualisiert am 04.12.2015 um 06:28:19 Uhr
Goto Top
Hallo,

hier die passende GUI für deinen ASV Backup / Restore Skript:

bfa576492cf830fbe9ce905756e1441e


Link hast Du als PM erhalten face-wink


Mit freundlichen Grüßen Andreas
runasservice
Lösung runasservice 29.06.2016 um 19:01:18 Uhr
Goto Top
Das Programm ist Freeware und kann kostenlos aus dem Internet geladen werden.

Mit dem Programm kann eine PostgreSQL Datenbank mit wenig Aufwand gesichert und wiederhergestellt werden. Mit einer Anbindung an den Windows Task Planer kann ein Zeitplan für regelmäßige Backups der Daten erstellt werden.

http://www.point2click.de/freeware/z-asvdump.html
udobec
udobec 29.06.2016 um 21:49:01 Uhr
Goto Top
Super, Danke!