Datensicherung - Konfigurationsbeispiel

Fragen, Anregungen oder Tipps und Tricks? Hier ist der erste Anlaufpunkt.
Nicht sicher, wo ein Thema hingehört? Hier hinein - wir kümmern uns! :)

Moderator: Forum Moderatoren

Forumsregeln
TM-Startforum - "offen für alle Themen".
Beiträge, die in einen anderen Bereich passen, werden bei Bedarf verschoben.
Benutzeravatar
Geigenberger
PowerUser
Beiträge: 1302
Registriert: Dienstag 9. Dezember 2003, 22:26
20
Bedankt: 3 times

Re: Datensicherung - Konfigurationsbeispiel

Beitrag von Geigenberger »

Hallo,

ich bin sicher kein Datenbankspezialist. Aber könnte es sein, dass diese gesperrten und nicht mitgesicherten 4 Dateien genau die Dateien sind, die der Fast-ObjektServer (=Poet-Server) anlegt WÄHREND er sich im Backupmodus befindet. Denn irgenwo müssen die Daten ja zwischengespeichert werden, während das Backup läuft.

Wie ich beschrieben habe, habe ich ja einen einfachen Arbeitsplatzrechner als 'Notfallserver' konfiguriert. Wenn ich diesen 'Notfallserver' nach so einer Datensicherung alleine als Server hochfahre, dann habe ich bisher noch nie Dateninkonsistenzen festgestellt.

A. Geigenberger
Benutzeravatar
Geigenberger
PowerUser
Beiträge: 1302
Registriert: Dienstag 9. Dezember 2003, 22:26
20
Bedankt: 3 times

Re: Datensicherung - Konfigurationsbeispiel

Beitrag von Geigenberger »

Jetzt aber nochmal zur 'aktualisierten' Version meiner Batch-Sicherungs-Datei. Nun verwende ich statt Xcopy Robocopy. Außerdem werden durch den ECHO-Befehl nun Log-Dateien angelegt (und mit abgespeichert - und am Ende angezeigt) und nicht mehr am Bildschirm ausgegeben.

<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

@echo off
@cls
@echo off

FOR /F "tokens=1,2,3 delims=." %%a in ('echo %date%') do set yy=%%c & set mm=%%b & set dd=%%a

set /a "TwoDigitYearMax=2038%%1000"
if 1%yy% LSS 200 if 1%yy% LSS 1%TwoDigitYearMax% (set yy=20%yy%) else (set yy=19%yy%)
set /a dd=100%dd%%%100,mm=100%mm%%%100
set /a z=14-mm,z/=12,y=yy+4800-z,m=mm+12*z-3,dow=153*m+2
set /a dow=dow/5+dd+y*365+y/4-y/100+y/400-2472630,dow%%=7,dow+=1

If %dow% equ 1 set "WoTa=Montag"
If %dow% equ 2 set "WoTa=Dienstag"
If %dow% equ 3 set "WoTa=Mittwoch"
If %dow% equ 4 set "WoTa=Donnerstag"
If %dow% equ 5 set "WoTa=Freitag"
If %dow% equ 6 set "WoTa=Samstag"
If %dow% equ 7 set "WoTa=Sonntag"

echo.
echo.
echo.
echo.
echo.
echo ########## Sicherung wichtiger Praxis-Daten #########
echo.
echo ########## Heute ist: %WoTa% ,der %date% #######
echo.
echo.

ping -n 1 x 127.0.0.1 > NUL

echo Erstellt am: %date% um: %time% > C:\tmdaten\log_file_rob.txt
echo Erstellt am: %date% um: %time% > C:\tmdaten\log_file_lev.txt

cls
echo.
echo.
echo ########## Heute ist: %WoTa% ,der %date% #######
echo.
echo ############ Spiegelung der Praxis-Datenbank
echo.
echo.
T:\Programm\TMAdmin /beginBackup /server=Bach
echo.
echo.
echo ############################
robocopy Z:\Dictionary C:\tmdaten\Dictionary /MIR /NP /LOG+:C:\tmdaten\log_file_rob.txt
echo.
echo ############################ 01 ## Errorlevel: %ERRORLEVEL% ##
echo ## 01 ## Errorlevel: %ERRORLEVEL% ## >> C:\tmdaten\log_file_lev.txt
set /a fehler=%fehler%+%ERRORLEVEL%

robocopy Z:\DruckDB C:\tmdaten\DruckDB /MIR /NP /LOG+:C:\tmdaten\log_file_rob.txt
echo.
echo ############################ 02 ## Errorlevel: %ERRORLEVEL% ##
echo ## 02 ## Errorlevel: %ERRORLEVEL% ## >> C:\tmdaten\log_file_lev.txt
set /a fehler=%fehler%+%ERRORLEVEL%

robocopy Z:\PraxisDB C:\tmdaten\PraxisDB /MIR /NP /LOG+:C:\tmdaten\log_file_rob.txt
echo.
echo ############################ 03 ## Errorlevel: %ERRORLEVEL% ##
echo ## 03 ## Errorlevel: %ERRORLEVEL% ## >> C:\tmdaten\log_file_lev.txt
set /a fehler=%fehler%+%ERRORLEVEL%

robocopy T:\IV_Verwaltung\data\Data C:\tmdaten\IV_Verwaltung /MIR /NP /LEV:1 /LOG+:C:\tmdaten\log_file_rob.txt
echo.
echo ############################ 04e ## Errorlevel: %ERRORLEVEL% ##
echo ## 04 ## Errorlevel: %ERRORLEVEL% ## >> C:\tmdaten\log_file_lev.txt
set /a fehler=%fehler%+%ERRORLEVEL%


T:\Programm\TMAdmin /endbackup /server=Bach


robocopy Z:\Symbole C:\tmdaten\Symbole /MIR /NP /LOG+:C:\tmdaten\log_file_rob.txt
echo.
echo ############################ 11 ## Errorlevel: %ERRORLEVEL% ##
echo ## 11 ## Errorlevel: %ERRORLEVEL% ## >> C:\tmdaten\log_file_lev.txt
set /a fehler=%fehler%+%ERRORLEVEL%

robocopy Z:\Vorlagen C:\tmdaten\Vorlagen /MIR /NP /LOG+:C:\tmdaten\log_file_rob.txt
echo.
echo ############################ 12e ## Errorlevel: %ERRORLEVEL% ##
echo ## 12 ## Errorlevel: %ERRORLEVEL% ## >> C:\tmdaten\log_file_lev.txt
set /a fehler=%fehler%+%ERRORLEVEL%

robocopy T:\Desktopobjekte C:\tmdaten\Desktopobjekte /MIR /NP /LOG+:C:\tmdaten\log_file_rob.txt
echo.
echo ############################ 21 ## Errorlevel: %ERRORLEVEL% ##
echo ## 21 ## Errorlevel: %ERRORLEVEL% ## >> C:\tmdaten\log_file_lev.txt
set /a fehler=%fehler%+%ERRORLEVEL%

robocopy C:\tmdaten\IV_Verwaltung C:\TurboMed\IV_Verwaltung\data\Data /MIR /NP /LOG+:C:\tmdaten\log_file_rob.txt
echo.
echo ############################ 22 ## Errorlevel: %ERRORLEVEL% ##
echo ## 22 ## Errorlevel: %ERRORLEVEL% ## >> C:\tmdaten\log_file_lev.txt
set /a fehler=%fehler%+%ERRORLEVEL%

robocopy C:\tmdaten\IV_Verwaltung C:\TurboMed\IV_Verwaltung\data\Data /MIR /NP /LOG+:C:\tmdaten\log_file_rob.txt
echo.
echo ############################ 23e ## Errorlevel: %ERRORLEVEL% ##
echo ## 23 ## Errorlevel: %ERRORLEVEL% ## >> C:\tmdaten\log_file_lev.txt
set /a fehler=%fehler%+%ERRORLEVEL%

robocopy C:\tmdaten\IV_Verwaltung C:\TurboMed\IV_Verwaltung\data\Data /MIR /NP /LOG+:C:\tmdaten\log_file_rob.txt
echo.
rem Dateien werden an zwei Stellen des TM-Dateisystems gelegt (man weiss ja nie :-)
echo.
echo ############################ 31 ## Errorlevel: %ERRORLEVEL% ##
echo ## 31 ## Errorlevel: %ERRORLEVEL% ## >> C:\tmdaten\log_file_lev.txt
set /a fehler=%fehler%+%ERRORLEVEL%

robocopy C:\tmdaten\Symbole C:\TurboMed\Symbole /MIR /NP /LOG+:C:\tmdaten\log_file_rob.txt
echo.
echo ############################ 32 ## Errorlevel: %ERRORLEVEL% ##
echo ## 32 ## Errorlevel: %ERRORLEVEL% ## >> C:\tmdaten\log_file_lev.txt
set /a fehler=%fehler%+%ERRORLEVEL%

robocopy C:\tmdaten\Vorlagen C:\Turbomed\Vorlagen /MIR /NP /LOG+:C:\tmdaten\log_file_rob.txt
echo.
echo ############################ 33 ## Errorlevel: %ERRORLEVEL% ##
echo ## 33 ## Errorlevel: %ERRORLEVEL% ## >> C:\tmdaten\log_file_lev.txt
set /a fehler=%fehler%+%ERRORLEVEL%


robocopy C:\tmdaten\Desktopobjekte C:\TurboMed\Desktopobjekte /MIR /NP /LOG+:C:\tmdaten\log_file_rob.txt
echo.
echo ############################ 34e ## Errorlevel: %ERRORLEVEL% ##
echo ## 33 ## Errorlevel: %ERRORLEVEL% ## >> C:\tmdaten\log_file_lev.txt
set /a fehler=%fehler%+%ERRORLEVEL%


C:\tmdaten\B_%date:~-4%_%date:~-7,2%_%date:~-10,2%_%time:~-0,2%_%time:~3,2%_%time:~6,2%_%time:~9,2%.txt

echo.

set /a aktmonat=%date:~-4%%date:~-7,2%
set /a vormonat=%date:~-4%%date:~-7,2%-1

robocopy Z:\Dokumente\Sonstiges\%vormonat% C:\tmdaten\Dokumente\Sonstiges\%vormonat% /MIR /NP /LOG+:C:\tmdaten\log_file_rob.txt
echo.
echo ########################## 41 ##Errorlevel: %ERRORLEVEL% ##
echo ## 41 ## Errorlevel: %ERRORLEVEL% ## >> C:\tmdaten\log_file_lev.txt
set /a fehler=%fehler%+%ERRORLEVEL%

echo.
robocopy Z:\Dokumente\Sonstiges\%aktmonat% C:\tmdaten\Dokumente\Sonstiges\%aktmonat% /MIR /NP /LOG+:C:\tmdaten\log_file_rob.txt
echo.
echo ########################## 42e ##Errorlevel: %ERRORLEVEL% ##
echo ## 42 ## Errorlevel: %ERRORLEVEL% ## >> C:\tmdaten\log_file_lev.txt
set /a fehler=%fehler%+%ERRORLEVEL%

echo.
echo ########## Heute ist: %WoTa% ,der %date% #######
echo.
echo ############ ....umkopieren
echo.

Rmdir /Q /S C:\tmdaten_sich_wochenweise\%WoTa%\O5
ren C:\tmdaten_sich_wochenweise\%WoTa%\O4 O5
ren C:\tmdaten_sich_wochenweise\%WoTa%\O3 O4
ren C:\tmdaten_sich_wochenweise\%WoTa%\O2 O3
ren C:\tmdaten_sich_wochenweise\%WoTa%\O1 O2
Mkdir C:\tmdaten_sich_wochenweise\%WoTa%\O1


robocopy C:\tmdaten\Dictionary C:\tmdaten_sich_wochenweise\%WoTa%\O1\Dictionary /MIR /NP /LOG+:C:\tmdaten\log_file_rob.txt
echo.
echo ############################ 51 ## Errorlevel: %ERRORLEVEL% ##
echo ## 51 ## Errorlevel: %ERRORLEVEL% ## >> C:\tmdaten\log_file_lev.txt
set /a fehler=%fehler%+%ERRORLEVEL%

robocopy C:\tmdaten\DruckDB C:\tmdaten_sich_wochenweise\%WoTa%\O1\DruckDB /MIR /NP /LOG+:C:\tmdaten\log_file_rob.txt
echo.
echo ############################ 52 ## Errorlevel: %ERRORLEVEL% ##
echo ## 52 ## Errorlevel: %ERRORLEVEL% ## >> C:\tmdaten\log_file_lev.txt
set /a fehler=%fehler%+%ERRORLEVEL%

robocopy C:\tmdaten\PraxisDB C:\tmdaten_sich_wochenweise\%WoTa%\O1\PraxisDB /MIR /NP /LOG+:C:\tmdaten\log_file_rob.txt
echo.
echo ############################ 53 ## Errorlevel: %ERRORLEVEL% ##
echo ## 53 ## Errorlevel: %ERRORLEVEL% ## >> C:\tmdaten\log_file_lev.txt
set /a fehler=%fehler%+%ERRORLEVEL%

robocopy C:\tmdaten\Vorlagen C:\tmdaten_sich_wochenweise\%WoTa%\O1\Vorlagen /MIR /NP /LOG+:C:\tmdaten\log_file_rob.txt
echo.
echo ############################ 54 ## Errorlevel: %ERRORLEVEL% ##
echo ## 54 ## Errorlevel: %ERRORLEVEL% ## >> C:\tmdaten\log_file_lev.txt
set /a fehler=%fehler%+%ERRORLEVEL%

robocopy C:\tmdaten\IV_Verwaltung C:\tmdaten_sich_wochenweise\%WoTa%\O1\IV_Verwaltung /MIR /NP /LEV:1 /LOG+:C:\tmdaten\log_file_rob.txt
echo.
echo ############################ 55e ## Errorlevel: %ERRORLEVEL% ##
echo ## 55 ## Errorlevel: %ERRORLEVEL% ## >> C:\tmdaten\log_file_lev.txt
set /a fehler=%fehler%+%ERRORLEVEL%

rem StammDB sollte bei jedem Update von TurboMed aktualisiert werden (noch kontrollieren!!)

echo Datei Ende: %date% um: %time% >> C:\tmdaten\log_file_rob.txt
echo Datei Ende: %date% um: %time% >> C:\tmdaten\log_file_lev.txt

copy C:\tmdaten\log_file_lev.txt C:\tmdaten_sich_wochenweise\%WoTa%\O1
copy C:\tmdaten\log_file_rob.txt C:\tmdaten_sich_wochenweise\%WoTa%\O1

C:\tmdaten\log_file_lev.txt

REM ################################################
REM ################################################
echo.
echo ####### ENDE ##########
echo ####### ENDE ##########
echo ####### ENDE ##########
ping -n 1 x 127.0.0.1 > NUL
FranzKonrad
Beiträge: 516
Registriert: Dienstag 7. Oktober 2008, 13:56
15
Wohnort: 91463 Dietersheim
Bedankt: 1 time

Re: Datensicherung - Konfigurationsbeispiel

Beitrag von FranzKonrad »

Hallo,
Wahnfried hat geschrieben:... hat sich da etwas verändert? ...
Nein, sicher nicht, das ist bei mir schon immer so. (s.u.)
Geigenberger hat geschrieben:Hallo,

ich bin sicher kein Datenbankspezialist. Aber könnte es sein, dass diese gesperrten und nicht mitgesicherten 4 Dateien genau die Dateien sind, die der Fast-ObjektServer (=Poet-Server) anlegt WÄHREND er sich im Backupmodus befindet. Denn irgenwo müssen die Daten ja zwischengespeichert werden, während das Backup läuft.

Wie ich beschrieben habe, habe ich ja einen einfachen Arbeitsplatzrechner als 'Notfallserver' konfiguriert. Wenn ich diesen 'Notfallserver' nach so einer Datensicherung alleine als Server hochfahre, dann habe ich bisher noch nie Dateninkonsistenzen festgestellt.

A. Geigenberger
nein, diese Dateien sind immer da, aber offenbar legt TMAdmin im Backup-Modus "die Hand drauf".
Nachdem ich scheinbar der einzige bin, der damit Probleme hat, (vielleicht auch als einziger das Windows Sicherungsprogramm nutze? Ich brauchs, da ich damit auf DAT-Bänder sichere) habe ich jetzt etwas nachgelesen und rumprobiert: man kann diese Dateien auch im Backupmodus via Editor ansehen und mittels Maus woanders hinkopieren.
Das Windows-Sicherungsprogramm arbeitet aber mittels Schattenkopie, was ein Verändern der Datei vom Beginn bis zum Ende des Einlesevorganges verhindert.
Dies setzt aber voraus, daß jeglicher anderer Schreibzugriff auf diese Datei für ganz kurze Zeit gesperrt werden muß: Schreibsperre Anfang -> Datei einlesen -> Schreibsperre Ende.
Und da liegt wohl der Haken: Ich arbeite grundsätzlich nicht mit Administratorrechten, sondern schon seit Windows NT als "Hauptbenutzer", was damals für Turbomed ansonsten gut reichte. Offenbar kommt das Windows-Sicherungsprogramm mit meinen Rechten aber nicht gegen den FastObjectServer an und kann diese kurzzeitige Zugriffssperre nicht ausführen: da dann die Datenkonsistenz nicht gewährleistet ist, werden diese Dateien übersprungen.
Die Fehlermeldung im Protokoll ist da schwer verständlich, öffnen ginge ja, aber der Schritt davor mit der Schreibsperre nicht.

So stehts dann im Sicherungsprotokoll:
"Sicherung begonnen am 05.12.2010 um 22:22.
Warnung: "E:\Turbomed\PraxisDB\Backup\eventlog\f0000000.ptd" kann nicht geöffnet werden und wird übersprungen.
Ursache: Der Prozess kann nicht auf die Datei zugreifen, da sie von einem anderen Prozess verwendet wird.

Warnung: "E:\Turbomed\PraxisDB\Backup\recovery\data0000.rcy" kann nicht geöffnet werden und wird übersprungen.
Ursache: Der Prozess kann nicht auf die Datei zugreifen, da sie von einem anderen Prozess verwendet wird.

Warnung: "E:\Turbomed\PraxisDB\eventlog\f0000000.ptd" kann nicht geöffnet werden und wird übersprungen.
Ursache: Der Prozess kann nicht auf die Datei zugreifen, da sie von einem anderen Prozess verwendet wird.

Warnung: "E:\Turbomed\PraxisDB\recovery\data0000.rcy" kann nicht geöffnet werden und wird übersprungen.
Ursache: Der Prozess kann nicht auf die Datei zugreifen, da sie von einem anderen Prozess verwendet wird."


Hab mich jetzt mal versuchsweise als Administrator eingeloggt: da ließen sich auch diese 4 Dateien sichern.
Da ich weiterhin im Routinebetrieb nicht als Administrator arbeiten will, werde ich mal versuchen, die Dateizugriffsrechte anzupassen, oder alternativ evtl. nur das Backupprogramm unter dem Administratorkonto starten.

Gruß, und nix für ungut

FranzKonrad
Benutzeravatar
wahnfried
PowerUser
Beiträge: 3180
Registriert: Freitag 13. Januar 2006, 23:46
18
Wohnort: Braunschweig

Re: Datensicherung - Konfigurationsbeispiel

Beitrag von wahnfried »

Geigenberger hat geschrieben:Jetzt aber nochmal zur 'aktualisierten' Version meiner Batch-Sicherungs-Datei. Nun verwende ich statt Xcopy Robocopy. Außerdem werden durch den ECHO-Befehl nun Log-Dateien angelegt (und mit abgespeichert - und am Ende angezeigt) und nicht mehr am Bildschirm ausgegeben.
Hallo Herr Geigenberger,

die Datensicherung läuft (auch in der xcopy-Variante) von Chopin aus, nicht wahr?

Die LOG-Daten-Abspeicherung ist ein Robocopy-Feature?

Dictionary habe ich noch nie in eine Spiegelung/Speicherung eingebaut, was ist der Sinn dabei?

Wo haben Sie die Wochentags-Berechnung her? (verstanden habe ich sie noch nicht...)

Für den Serverwechsel haben Sie also auf einem dritten Rechner "Verdi" (oder auf jedem Client separat) eine "Local.ini" sowohl für die Kommunikation mit Bach als auch für die mit Chopin mit den veränderten Angaben zum Server fest abgespeichert, die auf jedem Client nach dem Serverwechsel aktiviert werden würde? Das würde bedeuten, daß in der Zwischenzeit erfolgte Veränderungen/Erweiterungen der Lokal.ini nicht mitvollzogen werden. Soweit ich es mitbekommen habe, verwendet TurboMed bei nicht in der Lokal.ini/Global.ini definierten Einstellungen eine Default-Einstellung (sonst wären die Lokal.ini/Global.ini der Demo-Version nicht so klein...). Das bedeutet: falls seit der letzten Aktualisierung der vorbereiteten Serverwechsel-ini's neu hinzugekommene Einstellungen der Lokal.ini praxisbezogen verändert wurden, wäre dies nach dem Serverwechsel perdu (außer es wären die vorbereiteten Lokal.ini's jedesmal mit angepaßt worden...).

Wenn es nun möglich wäre, per script innerhalb der Lokal.ini den Begriff "Bach" gegen "Chopin" (oder umgekehrt) auszutauschen, wäre das die universellere Lösung. Das müßte eigentlich unabhängig davon funktionieren, ob "Bach" und "Chopin" nur beim Servernamen erwähnt werden oder auch in den Verzeichnispfaden. TurboMed kann ja beim Update auch Einfügungen in den Dateien Lokal.ini/Global.ini erzeugen. Insofern dies als Frage an die Script-Künstler...

Sollten bei den Verzeichnispfaden die Netzlaufwerke Verwendung finden, müssten diese dann auch scriptgesteuert ausgetauscht werden gegen alternativ bereits vorbereitete Netzlaufwerke zu Chopin (analog zu T: und Z: zu Bach) - oder in den vorbereiteten .ini's entsprechend ersetzte Angaben. Wer solches nicht möchte, sollte in den Verzeichnis-Pfadangaben keine Netzlaufwerkangaben verwenden, da diese nach dem Serverwechsel ja nicht mehr funktionieren (außer, man würde sie auf jedem Client trennen und neu zu Chopin verbinden = Handarbeit). Die Begriffe "Bach" und "Chopin" dürfen da aber gerne stehen. Oder die weiter unten vorgeschlagenen "anderen" Netzlaufwerke von Verdi nach Chopin werden eben auch auf allen anderen Client-Rechnern bereits vorbereitet und können dann entsprechend dem Ziel-Server der jeweiligen Lokal.ini verwendet werden.

Alternativ wäre auch ein Abspeichern der bisher benutzten Lokal.ini analog zu dem Verfahren in meiner Moduswechsel-Batch möglich, dann hätte man wenigstens beim Zurückwechseln auf "Bachs Sohn" wieder die individuellen Einstellungen auf jeden Fall wiederhergestellt (und könnte sogar durch geänderte Hintergrundfarben auf den anderen Server hinweisen).

Für den Fall des Serverwechsels müßte dann das Datensicherungsscript noch transplantiert und überarbeitet werden (kopieren nach Verdi, dort im script Chopin ersetzen durch Verdi, dann Bach ersetzen durch Chopin, ggfs. auch bereits vorbereitete abweichend benannte Netzlaufwerksverbindungen von Verdi nach Chopin einrichten und statt "T:" und "Z:" verwenden), damit nach Bachs Ableben die tägliche Sicherung weiter geht... - dann nach einem Serverwechsel: Script auf Verdi aktivieren / Ursprungsscript auf Chopin deaktivieren (und ggfs. umgekehrt), z.B. jeweils durch "rename" der Batch - das wäre scriptgesteuert möglich - oder durch Aktivieren/Deaktivieren des geplanten Tasks - das könnte Handarbeit erfordern.

Eine schriftliche Beschreibung der notwendigen Schritte beim Serverwechsel haben Sie im Sinne von QM sicher parat...

Viele Grüsse, Wahnfried
Benutzeravatar
Geigenberger
PowerUser
Beiträge: 1302
Registriert: Dienstag 9. Dezember 2003, 22:26
20
Bedankt: 3 times

Re: Datensicherung - Konfigurationsbeispiel

Beitrag von Geigenberger »

Hallo Herr Wahnfried,
wahnfried hat geschrieben: Hallo Herr Geigenberger,
die Datensicherung läuft (auch in der xcopy-Variante) von Chopin aus, nicht wahr?
ja; Chopin ist der 'Ersatz-Server und ein beliebiger Arbeitsplatzrechner.
wahnfried hat geschrieben: Die LOG-Daten-Abspeicherung ist ein Robocopy-Feature?
ja
wahnfried hat geschrieben: Dictionary habe ich noch nie in eine Spiegelung/Speicherung eingebaut, was ist der Sinn dabei?
"schadet nicht" braucht minimal Zeit und Platz
wahnfried hat geschrieben: Wo haben Sie die Wochentags-Berechnung her? (verstanden habe ich sie noch nicht...)
im Internet gefunden. Schön, nicht wahr? Funktioniert super; verstehen tu ich das auch nicht :mrgreen:
wahnfried hat geschrieben: Für den Serverwechsel ...........
Ein Serverwechsel war bisher zum Glück nur zu Testzwecken nötig. Dazu habe ich eine angepasste local.ini-Datei auf jedem Rechner des Netzwerkes, die einfach nur ausgetauscht wird; mittlerweile auch mittels eines einfachen (separaten!) Scripts. Dieses Script muß aber nicht in die täglich zweimal laufende Kopierroutine eingebunden werden, da die akute Notwendigkeit zum Serverwechsel ja höchst selten (hoffentlich nie) besteht.
Der Laufwerkbuchstabe "Z" ist gemappt auf das 'Datenverzeichnis' tmdaten des Servers 'Bach'.
wahnfried hat geschrieben: Eine schriftliche Beschreibung der notwendigen Schritte beim Serverwechsel haben Sie im Sinne von QM sicher parat...
Aber klar!! 8) :roll:

Viele Grüße!
A. Geigenberger
lapins
PowerUser
Beiträge: 500
Registriert: Donnerstag 7. April 2005, 12:44
19
Wohnort: Heckental
Hat sich bedankt: 2 times
Bedankt: 3 times

Re: Datensicherung - Konfigurationsbeispiel

Beitrag von lapins »

Ich hab Ihren Skript erst jetzt gefunden / angeschaut. Vielen Dank für die Anregungen in Bezug auf "set" und "for" Befehle, die ich zwar auch benutze , aber man lernt immer was dazu!!!

Fragen
1) Was machen Sie mit "fehler"? Sie addieren den ERRORLEVEL und dann ?
2) Sie wiederholen identische Befehle ? siehe

Code: Alles auswählen

robocopy C:\tmdaten\IV_Verwaltung C:\TurboMed\IV_Verwaltung\data\Data /MIR /NP /LOG+:C:\tmdaten\log_file_rob.txt
3) set /a vormonat=..... jetzt im Januar? Schauen Sie mal nach was passiert!

3.1 Nur Z:\Dokumente\Sonstiges\ sichern? was ist mit ..\Patbrief, ..\video (oder haben Sie nur pdf nach dem scannen?)

3.2 ich sichere auch noch geänderte Dateien von
  • \KVDT\abrechnungen
    ..\Formulare (wegen etwaiger änderungen von GDT , suchkriterien.usr )
    ..\word

die sich zwar selten verändern aber wo es blöd wäre wenn sie verloren gingen.


4) Angeregt durch Ihren Beitrag habe ich die errorlevels von robocopy gesucht+gefunden aber bin noch nicht schlau, wie man diese sinnvoll verwendet. Soll ja von 1-16 gehen.


Wieso reite ich darauf herum? Seit einiger Zeit verfolgt mich die IV_Verwaltng, weil ich das eine oder andere mal meine, im robocopy log Sperrungen gesehen zu haben.

Mit TMADMIn kann man die TM-praxis-db elegant fürs Kopieren freigeben.

Auf die IV-Verwaltung wird aber, wie es mir scheint direkt zugegriffen. Wenn man während des Betriebes kopiert, was ist da mit der Konsistenz....?

Das macht mir im Moment Sorgen, denn irgendeine Station ist ja immer noch an.

Ich hab mir schon überlegt ob es notwendig ist, Abends/Nächtens mal das Netztwerk zu kappen, alle rdp-sessions zu killen , mit taskill alles was sich bewegt platt zu machen und dann diese Dateien zu SICHERN, aber das ist immer Arbeit.

Sehe ich Gespenster ? Immerhin sind eine Menge Patienten im HZV! (Bayern natürlich derzeit nicht :roll: )
Hat jemand das Sichern der IV_Verwaltung während des Betriebes gelöst? Geht das überhaupt?

mfg rLap
lcer
Beiträge: 576
Registriert: Sonntag 26. Oktober 2008, 09:15
15
Hat sich bedankt: 6 times
Bedankt: 22 times

Re: Datensicherung - Konfigurationsbeispiel

Beitrag von lcer »

Hallo,

vielleicht als Alternative bzw. Hinweis. Ich habe ein etwas ausgedehnteres Netzwerk mit 2 Standorten. Für das kopieren zwischen den Standorten nutze ich robocopy (Als "RobustCopy" für solche sachen von Microsoft bereitgestellt). Zur Sicherung verwende ich ntbackup siehe http://en.wikipedia.org/wiki/NTBackup
Das unterstützt das kopieren mittels Volumeschattenkopie und sichert auch Dateien, auf die gerade zugegriffen wird. Man kann damit auch auf Netzwerklaufwerke, auch auf Netzwerkfestplatten sichern.
Auf einem Windows-Server kann man auch die Sicherung unter einem bestimmten Benutzerkonto (z.B. Administrator) laufen lassen, so dass keine Zugriffsrechteverletzungen entstehen. Einzig die Sicherungslog-Dateien sind etwas umständlich zu finden. dazu habe ich aber ein Sktipt, dass ich im Bedarfsfall hier einstellen kann.

Grüße

lcer
Benutzeravatar
wahnfried
PowerUser
Beiträge: 3180
Registriert: Freitag 13. Januar 2006, 23:46
18
Wohnort: Braunschweig

Re: Datensicherung - Konfigurationsbeispiel

Beitrag von wahnfried »

lcer hat geschrieben:vielleicht als Alternative bzw. Hinweis. ...habe ich aber ein Sktipt, dass ich im Bedarfsfall hier einstellen kann.
Hallo Icer,

das würde mich sehr interessieren, allerdings mit etwas detaillierter Konzeptdarstellung, damit es mit Herrn Geigenbergers Darstellung vergleichbar wird.

In Wikipedia lese ich als Erstes, daß NTBackup nur bis Server 2003 und XP geht, für Server 2008 heißt es "Windows Server Backup", nicht mehr für Bandsicherung geeignet, für Vista und spätere ist es dann das Windows_Backup_and_Restore_Center ( http://en.wikipedia.org/wiki/Backup_and_Restore_Center ). Das macht es sicherlich schwierig, auf dieser Basis Scripts zu entwickeln, es sei denn, man entwickelt sie für alle drei Varianten. Dazu könnte Ihr Beitrag Anlaß sein.

@ Geigenberger:
Herr Geigenberger, Ihre Scripte sind m.E. betriebssystemübergreifend für alle Windows-Versionen nutzbar?

Viele Grüsse, Wahnfried (gerade vergrippt und Praxis mangels Sprech-Fähigkeit dicht, daher Zeit am Tage...)
kalli
Beiträge: 253
Registriert: Freitag 22. August 2008, 08:03
15
Wohnort: Leverkusen

Re: Datensicherung - Konfigurationsbeispiel

Beitrag von kalli »

Wochentag berechnen: Eine recht kurzweilige Beschreibung wie man Wochentag herausbekommt findet sich hier:
http://de.wikipedia.org/wiki/Wochentagsberechnung - Kalli
Benutzeravatar
Geigenberger
PowerUser
Beiträge: 1302
Registriert: Dienstag 9. Dezember 2003, 22:26
20
Bedankt: 3 times

Re: Datensicherung - Konfigurationsbeispiel

Beitrag von Geigenberger »

Hallo lapins,

erstmal Danke für Ihre genaue Analyse meiner Batch-Datei!! Meine Entschuldigung, warum ich jetzt erst antworte, habe ich Ihnen ja bereits gemailt.

Zu1:
"fehler" ist eine Variable, in der ich die Errorlevels der einzelnen Schritt aufaddiere. Ursprünglicher Gedanke: Ich addiere alle Errorlevels auf und wenn am ende eine Zahl > 0 rauskommt, muß ein Fehler aufgetreten sein. Dem ist aber nicht so:

errorlevel 1 Copy successful
errorlevel 0 –no change–

Ich habe deshalb diesen Gedanken wieder aufgegeben, die Zeilen aber erstmal belassen. Dafür lasse ich das Logfile am Ende der Prozedur auf dem Bildschirm stehen.

Zu2)
Die identischen Befehle waren Kopierfehler. Bitte um Entschuldigung

Zu 3)
set /a vormonat: ist ein krasser Fehler (Es kam ja auch Errorlevel 16!: Zwar gesehen, aber bisher – aus Nachlässigkeit – nicht beachtet) Vielen Dank!!
So könnte die Korrektur aussehen:

@echo off
@cls
set /a aktmonat=%date:~-4%%date:~-7,2%
set /a vormonat=%date:~-4%%date:~-7,2%-1
set /a Monat=%date:~-7,2%
if [%Monat%] == [1] goto Jahreswechsel
:back
echo %aktmonat%
echo %vormonat%
pause
goto Ende

:Jahreswechsel
set /a Jahr=%date:~-4%-1
set Monat=12
set vormonat=%Jahr%%Monat%
goto back

:Ende


Zu 3.1:
Ich habe nur PDF's nach dem Scannen, deshalb genügt 'Sonstiges'. Da diese Datensicherung ja 'im laufenden Betrieb' gemacht wird, wollte ich nicht den ganzen Dokumenten-Ordner sichern, da der Rechner während der Sicherungszeit ja schon etwas blockiert ist. Die Sicherung des gesamten Dokumente-Ordners mache ich aber gelegentlich (eher selten) manuell

Zu 3.2:
gute Anregung! Danke!

Zu 4: (da fand ich folgendes:)

Alternatively, full details of the return code could be reported as follows:
if errorlevel 16 echo ***FATAL ERROR*** & goto end
if errorlevel 15 echo FAIL MISM XTRA COPY & goto end
if errorlevel 14 echo FAIL MISM XTRA & goto end
if errorlevel 13 echo FAIL MISM COPY & goto end
if errorlevel 12 echo FAIL MISM & goto end
if errorlevel 11 echo FAIL XTRA COPY & goto end
if errorlevel 10 echo FAIL XTRA & goto end
if errorlevel 9 echo FAIL COPY & goto end
if errorlevel 8 echo FAIL & goto end
if errorlevel 7 echo MISM XTRA COPY & goto end
if errorlevel 6 echo MISM XTRA & goto end
if errorlevel 5 echo MISM COPY & goto end
if errorlevel 4 echo MISM & goto end
if errorlevel 3 echo XTRA COPY & goto end
if errorlevel 2 echo XTRA & goto end
if errorlevel 1 echo COPY & goto end
if errorlevel 0 echo –no change– & goto end
:end

Ad 5)
Die IV Verwaltung sichere ich nach dem Ausführen des Befehls:
T:\Programm\TMAdmin /endbackup /server=Bach
Evtl. Wäre es sinnvoll, dies während des Sicherungsmodus des Servers zu machen; bisher gab's aber noch keine Probleme.
Ad 6) Mein Server läuft nicht durch. Sicherung der IV-verwaltung während des Betriebs ->????

Viele herzlichen Dank für Ihre ausführliche Analyse!!

A. Geigenberger
lcer
Beiträge: 576
Registriert: Sonntag 26. Oktober 2008, 09:15
15
Hat sich bedankt: 6 times
Bedankt: 22 times

Re: Datensicherung - Konfigurationsbeispiel

Beitrag von lcer »

Hallo,

na dann wollen wir mal ... Mein "Konzept", grob skizziert.

robocopy siehe http://en.wikipedia.org/wiki/Robocopy

ntbackup gibt es auf xp, server2003, ab server2008 heißt es anders, wie auch immer, ob es auf dem Rechner installiert ist, kann man prüfen, wenn man in der commandozeile einfach ntbackup tippt.

Windows Backup hat prinzipiell die gleiche Funktionalität wie ntbackup.

Mein Sicherungskonzept:

Besonderheiten des Netzwerkes:
- Windows2003 Domäne mit zentraler Ablage der Benutzerdaten (Desktop + Eigene Dateien + Benutzerprofile liegen auf Server)
- Terminalserverzugriff vom 2. Standort aus
- Viel Medizintechnik, die EDV-Daten-Dateien produziert.
- Ich nutze die IV-Verwaltung aus Turbomed nicht.

Ziel:
1) Sicherung zum schnellen Wiederherstellen des Systems nach Serverschäden
2) Sicherung gegen Festplattenausfälle
3) Sicherung gegen Vandalismus und Diebstahl der Daten

Umsetztung:

- Hardware: RAID 1 und unterbrechungsfreie Stromversorgung für Server (primärer Domaincontroller)
- Sicherung in den Räumen Praxis auf eine Netzwerkfestplatte (Maxtor Shared Storage II, jetzt Segate)
- Sicherung auf eine USB-Festplatte, die "nicht in der Praxis schläft"

Skripte etc:

Alle Medizinischen Geräte (Ultraschall, Kamera, Fluoreszeinangiographie, Gesichtsfeld etc - ach ja, bin Augenarzt) sichern ihre Daten, die nicht direkt im Turbomed hinterlegt werden können zentral auf einem Server. Die Übertragung erfolgt mittels robocopy:

Code: Alles auswählen

SET _source="C:\Data"

SET _dest=\\backupserver\

SET _what=/COPYALL /B /SEC /E
:: /COPYALL :: COPY ALL file info
:: /B :: copy files in Backup mode. 
:: /SEC :: copy files with SECurity
:: /MIR :: MIRror a directory tree 

SET _options=/R:0 /W:0 /LOG:LogfileDataBackup.txt 
:: /R:n :: number of Retries
:: /W:n :: Wait time between retries
:: /LOG :: Output log file
:: /NFL :: No file logging
:: /NDL :: No dir logging 

C:\Tools\robocopy %_source% %_dest% %_what% %_options%
Achtung: Robocopy kann z.B. über die Option /MIR Dateien löschen! immer erst die Hilfe lesen, dann Testen dann denn Einsatz an echten Daten.

Vom Server erfolgen mehere mehrere Sicherungsvorgänge:
1) Alle Programme schreiben Ihre Medizinischen Daten in ein Unterverzeichnis eines bestimmten Verzeichnisses ("Daten"), dass komplett gesichert werden soll
2) Falls das nicht der Fall ist, erfolgt eine automatische Sicherung durch das Programm selbst (z.B. MySQL-Datenbank meines "Praxiswikis") oder per batch-Datei in dieses Verzeichnis. Hier kann sichert auch Turbomed per Tmadmin hin : Beispiel mit XCopy, Robocopy ginge auch.

Code: Alles auswählen

F:\turbomed\programm\TMAdmin /beginBackup /server=tmserver /logfile=f:\dasi\TMadmin.log
XCOPY F:\turbomed\PraxisDB\*.* F:\dasi\PraxisDB\ /E /D /C /H /F /y
F:\turbomed\programm\TMAdmin /endBackup /tmserver=server /logfile=f:\dasi\TMadmin.log
3) Sicherung auf ein NAS-Festplatte (inkrementielle Sicherung) der Systemdaten incl. Systemlaufwerk und Benutzerverzeichnisse zum Wiederherstellen des Servers bei "Totalschaden" (Hintergund: ich kann ohne einen funktinierenden Server in meinem Netzwerk mit zwei Standorten nicht arbeiten.) sowie der "Daten" aus 1) + 2)
4) Eine Sicherung der Turbomeddatenbank erfolgt beim Verlassen von Turbomed auf eine USB-Festplatte.
5) Auf diese USB-Festplatte sichert ebenfalls eine inkrementielle NTBackup-Sicherung die Systemdaten sowie die TM-Dokumente und andere Daten.

zu ntbackup:

die Erstellung von Sicherungsaufträgen erfolgt recht einfach über die Bedienoberfläche. Ich habe dabei "inkrementielle Sicherung" eingestellt. Die Sicherung kann über "geplante Tasks" geplant, also regelmäßig ausgeführt werden. Dabei wird ein von ntbackup automatisch eine Task erstellt. Den Aufruf von ntbackup kann man aber auch in ein Skript auslagern Der Aufruf von NT-Backup wäre dann:

Code: Alles auswählen

C:\WINDOWS\system32\ntbackup.exe backup "@C:\Dokumente und Einstellungen\Administrator\Lokale Einstellungen\Anwendungsdaten\Microsoft\Windows NT\NTBackup\data\SicherungMSSIISystem.bks" /a /d "Satz am 

10.01.2011 um 12:40 erstellt" /v:yes /r:no /rs:no /hc:off /m incremental /j "SicherungMSSIISystem" /l:s /f "\\Mssii\backup\SicherungSystem.bkf"
ntbackup speichert nur die letzten 10 Protokolle. Die Protokolle werden gesichert über ein skript:

Code: Alles auswählen

echo off 

mkdir C:\tmp\ntbackup\templog 

copy "C:\Dokumente und Einstellungen\Administrator\Lokale Einstellungen\Anwendungsdaten\Microsoft\Windows NT\NTbackup\Data\backup*.log" C:\tmp\ntbackup\templog\*.* /y 

FOR /F "usebackq tokens=1" %%n IN (`dir C:\tmp\ntbackup\templog /b`) DO FOR /F "usebackq tokens=2,3,4 delims=. " %%d IN (`date /t`) DO FOR /F "usebackq tokens=1,2 delims=: " %%t IN (`time /t`) DO ren 

C:\tmp\ntbackup\templog\%%n %%d%%e%%f-%%t%%u%%n 

copy C:\tmp\ntbackup\templog\*.* F:\BackupSteuerung\LogFiles\ntbackup 

del C:\tmp\ntbackup\templog\*.log 
del "C:\Dokumente und Einstellungen\Administrator\Lokale Einstellungen\Anwendungsdaten\Microsoft\Windows NT\NTbackup\Data\backup*.log"

rmdir /q C:\tmp\ntbackup\templog 
bevor einer fragt, den Code gabs irgendwo im Internet und die 3. Zeile verstehe ich nur zum Teil.

zu Geplante Tasks:
auf dem Server ist es etwas schwierig, da der nicht-Administrator die Tasks standartmäßig nicht sehen oder starten kann. Soll beispielsweise die Helferin die Sicherung manuell starten können, muss man etwas "tricksen". Man muss die Sicherheitseinstellungen anpassen, zum Teil über Gruppenrichtlinien zum Teil über die Zugriffsrechte. Prinzipiell reicht es aber, die Sicherungstasks als Administrator zu erstellen

und als Administrator ausführen zu lassen (alternativ: ein spezieller Sicherungsoperator-Benutzer wird eingerichtet).
Die Tasks habe ich über "mehrfache Zeitpläne" so eingestellt, dass eine Sicherung täglich zu festgelegten Zeiten erfolgt und zwar in folgender Reihenfolge:
- Daten "sammeln", dass heißt in das Backupsammelverzeichnis kopieren.
- das gesamte Sammelverzeichnis + alle relevanten Systemdaten (siehe oben) auf die Netzwerkfestplatte sichern (nachts)
- die USB-Festplatte wid bei Sprechstundenbeginn an den Server angeschlossen (sagen wir ca. 7:00), die Sicherung der Daten des Sammelverzeichnisses + Systemdaten erfolgt dann ab ca. 8:00 im laufenden

Betrieb.
- zum Praxisende wird die Turbomeddatensicherung ("Datensicherung bei Beenden") von der Helferin gestartet - Sicherung auf die USB-Festplatte - USB-Festplatte verläßt die Praxis.


Momentan warte ich noch auch ein Angebot, einer hiesigen Computerfirma, meine Daten online sichern zu lassen. Das könnte dann auch nachts bzw. nach Sprechstundenende passieren. Allerdings sind mir die Preise und die genaue technische Machbarkeit noch nicht bekannt.

grüße

lcer
Benutzeravatar
Geigenberger
PowerUser
Beiträge: 1302
Registriert: Dienstag 9. Dezember 2003, 22:26
20
Bedankt: 3 times

Re: Datensicherung - Konfigurationsbeispiel

Beitrag von Geigenberger »

Hallo,

hier nochmal meine aktuelle Batch-Datei, in die die Hinweise von "lapins" eingearbeitet sind:

<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

@echo off
@cls

FOR /F "tokens=1,2,3 delims=." %%a in ('echo %date%') do set yy=%%c & set mm=%%b & set dd=%%a

set /a "TwoDigitYearMax=2038%%1000"
if 1%yy% LSS 200 if 1%yy% LSS 1%TwoDigitYearMax% (set yy=20%yy%) else (set yy=19%yy%)
set /a dd=100%dd%%%100,mm=100%mm%%%100
set /a z=14-mm,z/=12,y=yy+4800-z,m=mm+12*z-3,dow=153*m+2
set /a dow=dow/5+dd+y*365+y/4-y/100+y/400-2472630,dow%%=7,dow+=1

If %dow% equ 1 set "WoTa=Montag"
If %dow% equ 2 set "WoTa=Dienstag"
If %dow% equ 3 set "WoTa=Mittwoch"
If %dow% equ 4 set "WoTa=Donnerstag"
If %dow% equ 5 set "WoTa=Freitag"
If %dow% equ 6 set "WoTa=Samstag"
If %dow% equ 7 set "WoTa=Sonntag"

echo.
echo.
echo ########## Sicherung wichtiger Praxis-Daten #######
echo.
echo ########## Heute ist: %WoTa% ,der %date% # %time% Uhr
echo.
echo.
ping -n 1 x 127.0.0.1 > NUL
ping -n 1 x 127.0.0.1 > NUL
echo ########## Spiegelung der Praxis-Datenbank #######
echo.
echo.
ping -n 1 x 127.0.0.1 > NUL
ping -n 1 x 127.0.0.1 > NUL
T:\Programm\TMAdmin /beginBackup /server=Bach
echo.
echo.
echo ####################################################
echo Erstellt am: %date% um: %time% > C:\tmdaten\log_file_rob.txt
echo Erstellt am: %date% um: %time% > C:\tmdaten\log_file_lev.txt
echo.
echo.
echo #01 Z:\Dictionary ### %time%
robocopy Z:\Dictionary C:\tmdaten\Dictionary /MIR /NP /LOG+:C:\tmdaten\log_file_rob.txt
echo ############################ 01 ## Errorlevel: %ERRORLEVEL% ##
echo ## 01 # %time% # Errorlevel: %ERRORLEVEL% ## >> C:\tmdaten\log_file_lev.txt
echo.
echo.
echo #02 Z:\DruckDB ### %time%
robocopy Z:\DruckDB C:\tmdaten\DruckDB /MIR /NP /LOG+:C:\tmdaten\log_file_rob.txt
echo ############################ 02 ## Errorlevel: %ERRORLEVEL% ##
echo ## 02 # %time% # Errorlevel: %ERRORLEVEL% ## >> C:\tmdaten\log_file_lev.txt
echo.
echo.
echo #03 Z:\PraxisDB ### %time%
robocopy Z:\PraxisDB C:\tmdaten\PraxisDB /MIR /NP /LOG+:C:\tmdaten\log_file_rob.txt
echo ############################ 03 ## Errorlevel: %ERRORLEVEL% ##
echo ## 03 # %time% # Errorlevel: %ERRORLEVEL% ## >> C:\tmdaten\log_file_lev.txt
echo.
echo.
echo #04 T:\IV_Verwaltung\data\Data ### %date% # %time%
robocopy T:\IV_Verwaltung\data\Data C:\tmdaten\IV_Verwaltung /MIR /NP /LEV:1 /LOG+:C:\tmdaten\log_file_rob.txt
echo ############################ 04 ## Errorlevel: %ERRORLEVEL% ##
echo ## 04 # %time% # Errorlevel: %ERRORLEVEL% ## >> C:\tmdaten\log_file_lev.txt
echo.
echo.
T:\Programm\TMAdmin /endbackup /server=Bach
echo.
echo.
echo.
echo #11 Z:\Symbole ### %time%
robocopy Z:\Symbole C:\tmdaten\Symbole /MIR /NP /LOG+:C:\tmdaten\log_file_rob.txt
echo ############################ 11 ## Errorlevel: %ERRORLEVEL% ##
echo ## 11 # %time% # Errorlevel: %ERRORLEVEL% ## >> C:\tmdaten\log_file_lev.txt
echo.
echo.
echo #12 Z:\Vorlagen ### %time%
robocopy Z:\Vorlagen C:\tmdaten\Vorlagen /MIR /NP /LOG+:C:\tmdaten\log_file_rob.txt
echo ############################ 12e ## Errorlevel: %ERRORLEVEL% ##
echo ## 12 # %time% # Errorlevel: %ERRORLEVEL% ## >> C:\tmdaten\log_file_lev.txt
echo.
echo.
echo #21 T:\Desktopobjekte ### %time%
robocopy T:\Desktopobjekte C:\tmdaten\Desktopobjekte /MIR /NP /LOG+:C:\tmdaten\log_file_rob.txt
echo ############################ 21 ## Errorlevel: %ERRORLEVEL% ##
echo ## 21 # %time% # Errorlevel: %ERRORLEVEL% ## >> C:\tmdaten\log_file_lev.txt
echo.
echo.
echo #22 C:\tmdaten\IV_Verwaltung ### %time%
robocopy C:\tmdaten\IV_Verwaltung C:\TurboMed\IV_Verwaltung\data\Data /MIR /NP /LOG+:C:\tmdaten\log_file_rob.txt
echo ############################ 31 ## Errorlevel: %ERRORLEVEL% ##
echo ## 22 # %time% # Errorlevel: %ERRORLEVEL% ## >> C:\tmdaten\log_file_lev.txt
echo.
echo.
echo #32 C:\tmdaten\Symbole ### %time%
robocopy C:\tmdaten\Symbole C:\TurboMed\Symbole /MIR /NP /LOG+:C:\tmdaten\log_file_rob.txt
echo ############################ 32 ## Errorlevel: %ERRORLEVEL% ##
echo ## 32 # %time% # Errorlevel: %ERRORLEVEL% ## >> C:\tmdaten\log_file_lev.txt
echo.
echo.
echo #33 C:\tmdaten\Vorlagen ### %time%
robocopy C:\tmdaten\Vorlagen C:\Turbomed\Vorlagen /MIR /NP /LOG+:C:\tmdaten\log_file_rob.txt
echo ############################ 33 ## Errorlevel: %ERRORLEVEL% ##
echo ## 33 # %time% # Errorlevel: %ERRORLEVEL% ## >> C:\tmdaten\log_file_lev.txt
echo.
echo.
echo #34 C:\tmdaten\Desktopobjekte ### %time%
robocopy C:\tmdaten\Desktopobjekte C:\TurboMed\Desktopobjekte /MIR /NP /LOG+:C:\tmdaten\log_file_rob.txt
echo ############################ 34e ## Errorlevel: %ERRORLEVEL% ##
echo ## 34 # %time% # Errorlevel: %ERRORLEVEL% ## >> C:\tmdaten\log_file_lev.txt
echo.
set /a aktmonat=%date:~-4%%date:~-7,2%
set /a vormonat=%date:~-4%%date:~-7,2%-1
set /a Monat=%date:~-7,2%

if [%Monat%] == [1] goto Jahreswechsel
:back

echo.
echo %aktmonat%
echo %vormonat%
echo.


echo #41#Vormonat# Z:\Dokumente\Sonstiges\%vormonat% ### %time%
robocopy Z:\Dokumente\Sonstiges\%vormonat% C:\tmdaten\Dokumente\Sonstiges\%vormonat% /MIR /NP /LOG+:C:\tmdaten\log_file_rob.txt
echo ########################## 41 ##Errorlevel: %ERRORLEVEL% ##
echo ## 41 # %time% # Errorlevel: %ERRORLEVEL% ## >> C:\tmdaten\log_file_lev.txt
echo.
echo.
echo #42#aktueller Monat# Z:\Dokumente\Sonstiges\%aktmonat% ### %time%
robocopy Z:\Dokumente\Sonstiges\%aktmonat% C:\tmdaten\Dokumente\Sonstiges\%aktmonat% /MIR /NP /LOG+:C:\tmdaten\log_file_rob.txt
echo ########################## 42 ##Errorlevel: %ERRORLEVEL% ##
echo ## 42 # %time% # Errorlevel: %ERRORLEVEL% ## >> C:\tmdaten\log_file_lev.txt
echo.
echo.
echo.
echo ########## Heute ist: %WoTa% ,der %date% #######
echo.
echo ############ ....umkopieren
echo.

Rmdir /Q /S C:\tmdaten_sich_wochenweise\%WoTa%\O5
ren C:\tmdaten_sich_wochenweise\%WoTa%\O4 O5
ren C:\tmdaten_sich_wochenweise\%WoTa%\O3 O4
ren C:\tmdaten_sich_wochenweise\%WoTa%\O2 O3
ren C:\tmdaten_sich_wochenweise\%WoTa%\O1 O2
Mkdir C:\tmdaten_sich_wochenweise\%WoTa%\O1

echo.
echo #51 C:\tmdaten\Dictionary ### %time%
robocopy C:\tmdaten\Dictionary C:\tmdaten_sich_wochenweise\%WoTa%\O1\Dictionary /MIR /NP /LOG+:C:\tmdaten\log_file_rob.txt
echo ############################ 51 ## Errorlevel: %ERRORLEVEL% ##
echo ## 51 # %time% # Errorlevel: %ERRORLEVEL% ## >> C:\tmdaten\log_file_lev.txt
echo.
echo.
echo #52 C:\tmdaten\DruckDB ### %time%
robocopy C:\tmdaten\DruckDB C:\tmdaten_sich_wochenweise\%WoTa%\O1\DruckDB /MIR /NP /LOG+:C:\tmdaten\log_file_rob.txt
echo ############################ 52 ## Errorlevel: %ERRORLEVEL% ##
echo ## 52 # %time% # Errorlevel: %ERRORLEVEL% ## >> C:\tmdaten\log_file_lev.txt
echo.
echo.
echo #53 C:\tmdaten\PraxisDB ### %time%
robocopy C:\tmdaten\PraxisDB C:\tmdaten_sich_wochenweise\%WoTa%\O1\PraxisDB /MIR /NP /LOG+:C:\tmdaten\log_file_rob.txt
echo ############################ 53 ## Errorlevel: %ERRORLEVEL% ##
echo ## 53 # %time% # Errorlevel: %ERRORLEVEL% ## >> C:\tmdaten\log_file_lev.txt
echo.
echo.
echo #54 C:\tmdaten\Vorlagen ### %time%
robocopy C:\tmdaten\Vorlagen C:\tmdaten_sich_wochenweise\%WoTa%\O1\Vorlagen /MIR /NP /LOG+:C:\tmdaten\log_file_rob.txt
echo ############################ 54 ## Errorlevel: %ERRORLEVEL% ##
echo ## 54 # %time% # Errorlevel: %ERRORLEVEL% ## >> C:\tmdaten\log_file_lev.txtset /a fehler=%fehler%+%ERRORLEVEL%
echo.
echo.
echo #55 C:\tmdaten\IV_Verwaltung ### %time%
robocopy C:\tmdaten\IV_Verwaltung C:\tmdaten_sich_wochenweise\%WoTa%\O1\IV_Verwaltung /MIR /NP /LEV:1 /LOG+:C:\tmdaten\log_file_rob.txt
echo ############################ 55 ## Errorlevel: %ERRORLEVEL% ##
echo ## 55 # %time% # Errorlevel: %ERRORLEVEL% ## >> C:\tmdaten\log_file_lev.txt
echo.
echo.
echo Datei Ende: %date% um: %time% >> C:\tmdaten\log_file_rob.txt
echo Datei Ende: %date% um: %time% >> C:\tmdaten\log_file_lev.txt

copy C:\tmdaten\log_file_lev.txt C:\tmdaten_sich_wochenweise\%WoTa%\O1
copy C:\tmdaten\log_file_rob.txt C:\tmdaten_sich_wochenweise\%WoTa%\O1

C:\tmdaten\log_file_lev.txt

goto Ende

REM ################################################

:Jahreswechsel
set /a Jahr=%date:~-4%-1
set Monat=12
set vormonat=%Jahr%%Monat%
goto back

REM ################################################

:Ende

REM ################################################
REM ################################################
echo.
echo ####### ENDE ##########
echo ####### ENDE ##########
echo ####### ENDE ##########
ping -n 1 x 127.0.0.1 > NUL

lcer
Beiträge: 576
Registriert: Sonntag 26. Oktober 2008, 09:15
15
Hat sich bedankt: 6 times
Bedankt: 22 times

Re: Datensicherung - Konfigurationsbeispiel

Beitrag von lcer »

Hallo,
Geigenberger hat geschrieben:ping -n 1 x 127.0.0.1 > NUL
wozu wird auf das loopback-interface gepingt? Als Verzögerung?

Dann ginge auch (XP, Windows 2003), nach Installation der Windows Server 2003 Resource Kit Tools, das batch-Kommando SLEEP

Bei Google habe ich auch gefunden, das das Sleep-Commando auch auf Windows-7 läuft. Da bin ich mir aber nicht sicher.

http://www.microsoft.com/downloads/deta ... 8c4790cffd
z.B. http://malektips.com/xp_dos_0002.html

Grüße

lcer
Benutzeravatar
Geigenberger
PowerUser
Beiträge: 1302
Registriert: Dienstag 9. Dezember 2003, 22:26
20
Bedankt: 3 times

Re: Datensicherung - Konfigurationsbeispiel

Beitrag von Geigenberger »

Hallo Icer,

habe weder W7 noch einen Windows-Server installiert. der Sleep Befehl steht somit nicht zur Verfügung ->

wozu wird auf das loopback-interface gepingt? Als Verzögerung? : JA

A. Geigenberger
lcer
Beiträge: 576
Registriert: Sonntag 26. Oktober 2008, 09:15
15
Hat sich bedankt: 6 times
Bedankt: 22 times

Re: Datensicherung - Konfigurationsbeispiel

Beitrag von lcer »

das Windows Server 2003 Resource Kit Tools lüuft auch auf Windows XP

Grüße

lcer
Benutzeravatar
Geigenberger
PowerUser
Beiträge: 1302
Registriert: Dienstag 9. Dezember 2003, 22:26
20
Bedankt: 3 times

Re: Datensicherung - Konfigurationsbeispiel

Beitrag von Geigenberger »

... aber ich glaube, sleep gibt's nicht in allen Windows-Versionen
Und dieser Ping Befehl läuft auf jeden Fall. Wo ist eigentlich das Problem?

A. Geigenberger
lcer
Beiträge: 576
Registriert: Sonntag 26. Oktober 2008, 09:15
15
Hat sich bedankt: 6 times
Bedankt: 22 times

Re: Datensicherung - Konfigurationsbeispiel

Beitrag von lcer »

Geigenberger hat geschrieben:... Wo ist eigentlich das Problem?
das frage ich mich auch.

Grüße

lcer
libelle17
Beiträge: 117
Registriert: Sonntag 22. Mai 2005, 09:07
18
Wohnort: Dachau
Bedankt: 1 time
Kontaktdaten:

Re: Datensicherung - Konfigurationsbeispiel

Beitrag von libelle17 »

Zu der Bemerkung von FranzKonrad:
Nachdem bei mir die turbomed-interne Sicherung ebenfalls mehrfach nicht mehr verwendet werden konnte (einmal schlug das Entpacken einer sehr großen Dokumentensicherung fehl, einmal ließ sich zu meinem Entsetzen Turbomed mit den rückgesicherten Datenbanken nicht mehr starten mit dem Hinweis auf inkonsistente Zeitstempel), habe ich auch umgestellt auf einfaches zeitgesteuertes Kopieren.
Wenn der Backup-Modus vorher nicht gestartet wird, lassen sich die Dateien im laufenden Betrieb mit mehrern offenen Arbeitsplätzen problemlos kopieren (zumindest auf meinem Linxu-Server; bei mir mit crontab-Einträgen wie folgt:
-30 2,8,10,12,14,16,18,20,22 * * * rsync -avuz --delete /opt/turbomed/PraxisDB/ /DATA/gerade/PraxisDB
...
).
Nur bei der eventuellen Verwendung der zurückkopierten Sicherungsdateien mußte bei mir der Server gestoppt und neu gestartet werden, da er sonst noch die umbenannten Pfade mit den Originaldateien hernimmt.
G.Schade
Gerald Schade, Mittermayerstraße 13, 85221 Dachau, Tel. 08131 616380
Benutzeravatar
Geigenberger
PowerUser
Beiträge: 1302
Registriert: Dienstag 9. Dezember 2003, 22:26
20
Bedankt: 3 times

Re: Datensicherung - Konfigurationsbeispiel

Beitrag von Geigenberger »

Hallo,

ich bitte erstmal um Entschuldigung, dass ich hier einen Uralt-Thread nochmal reanimiere.
Aber in den letzten Tagen habe ich das Batch-File umgeschrieben. Durch die Verwendung von Variablen kann es leichter und viel schneller an andere Umgebungen angepasst werden.
Außerdem finden Sie einige erklärende Hinweise innerhalb dieser Batch-Datei.

Die Batchdatei macht folgendes:

Zunächst wird die Datenbank in den Backupmodus versetzt.
Anschließend werden zunächst einmal die Datenbankdateien innerhalb des Servers erst einmal kopiert. Dies funktioniert mit SSD-Platten und besonders, wenn diese in einem RAID-Verbund arbeiten sehr, sehr schnell.
Dadurch kann die Datenbank sehr zügig wieder in den "Normalmodus" versetzt werden.
Anschließend werden diese Datenbankdateien ( PraxisDB usw.) auf einen lokalen Rechner kopiert.
Anschließend folgt die erneute Kopie in ein Dateisystem, das Ihre Daten nach Wochentagen getrennt in 3 "Generationen" speichert.
Damit haben Sie bis zu drei Wochen lang lückenlosen Zugriff auf Ihre Datenbankdateien.
Abschließend werden dann noch diverse Dateien vom Server direkt auf den Sicherungs-PC kopiert.

Wenn Sie nun die Verzeichnisse im Sicherungs-PC so einrichten, dass dieser Rechner bei gestartetem FOS auf diese kopierten Daten zugreifen kann, dann haben Sie innerhalb von zwei Minuten einen Ersatzserver in Ihrem Praxisnetzwerk am laufen, falls Ihr Hauptserver einmal Probleme machen sollte.
Näheres hier: http://www.vondoczudoc.de/viewtopic.php?f=75&t=5061
und hier: http://www.vondoczudoc.de/viewtopic.php?f=11&t=5772

Viele Grüße!

A. Geigenberger

<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

REM
REM Batch-File zur Sicherung von Daten Desktopobjekte
REM "TurboMed"-Arztprogramms
REM
REM programmiert von Dr. med. Alfons Geigenberger
REM
REM Die Nutzung des Programms ist für jedermann frei
REM Das Programm darf gerne beliebig weiter gegeben werden.
REM Für möglicherweise enthaltene Programmfehler und daraus
REM sich ergebende Datenverluste erfolgt keinerlei
REM Haftung des Programmierers!!
REM Vor den ersten Testläufen wird eine sorgfältige Datensicherung
REM dringend empfohlen!
REM
REM Lassen Sie diese Batch "automatisiert" starten ("Aufgabenplaner"),
REM dann brauchen Sie sich um Datensicherungen nicht mehr zu kümmern!
REM Trotzdem empfiehlt sich natürlich eine gelegentliche Kontrolle,
REM ob alle Sicherungen in Ordnung sind.
REM
REM Viel Spaß!
REM Alfons Geigenberger
REM
REM <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

@echo off
@cls

REM ################################################
REM HINWEIS:
REM bitte hier die Pfade des Servers und des Sicherungs-PC's eingeben:

REM Pfade zum Server:
set Servername=BigBoss
set tumed=\\BigBoss\TurboMed\
set tumedprg=\\BigBoss\TurboMed\Programm\
set tumedintermitt=\\BigBoss\sich_intermitt\
set Scandaten=\\BigBoss\tmdaten\Dokumente\Sonstiges\

REM Pfade im SicherungsPC: (Arbeitsplatz)
set sichordner=C:\tm_dat\
set sichdb=C:\tm_dat\db_sicherung\
set sichwoch=C:\tm_dat_wo_x\
REM Hinweis: Achten Sie darauf, dass sich hinter ihrem Pfad kein Leerzeichen verbirgt!!!
REM ################################################


REM ################################################
REM Folgende Zeilen bitte nicht verändern !!!

set /a aktmonat=%date:~-4%%date:~-7,2%
set /a vormonat=%date:~-4%%date:~-7,2%-1
set /a Monat=%date:~-7,2%

if [%Monat%] == [1] goto Jahreswechsel
:back

REM "Welcher Wochentag ist heute?" // Bitte nichts verändern!

FOR /F "tokens=1,2,3 delims=." %%a in ('echo %date%') do set yy=%%c & set mm=%%b & set dd=%%a

set /a "TwoDigitYearMax=2038%%1000"
if 1%yy% LSS 200 if 1%yy% LSS 1%TwoDigitYearMax% (set yy=20%yy%) else (set yy=19%yy%)
set /a dd=100%dd%%%100,mm=100%mm%%%100
set /a z=14-mm,z/=12,y=yy+4800-z,m=mm+12*z-3,dow=153*m+2
set /a dow=dow/5+dd+y*365+y/4-y/100+y/400-2472630,dow%%=7,dow+=1

If %dow% equ 1 set "WoTa=Montag"
If %dow% equ 2 set "WoTa=Dienstag"
If %dow% equ 3 set "WoTa=Mittwoch"
If %dow% equ 4 set "WoTa=Donnerstag"
If %dow% equ 5 set "WoTa=Freitag"
If %dow% equ 6 set "WoTa=Samstag"
If %dow% equ 7 set "WoTa=Sonntag"
REM ################################################


echo.
echo.
echo ########## Sicherung wichtiger Praxis-Daten #######
echo.
echo ########## Heute ist: %WoTa% ,der %date% # %time% Uhr
echo.
echo Server:
echo -- Servername: %Servername%
echo.
echo -- Pfad zum TurboMed-Ordner auf dem Server : %tumed%
echo -- Pfad zum Ordner: \TurboMed\Programm\ : %tumedprg%
echo -- Pfad zum Ordner: \TurboMed\Sich_intermitt\ : %tumedintermitt%
echo -- Pfad zu den Scandaten : %scandaten%

echo Arbeitsplatz: >> %sichordner%log_file_lev.txt
echo -- Pfad zum Sicherungsordner : %sichordner%
echo -- Pfad zum Sicherungsordner Datenbank : %sichdb%
echo -- Ordner der wochenweisen Sicherung : %sichwoch%

echo.

echo Server: >> %sichordner%log_file_lev.txt
echo -- Servername: STING-PC >> %sichordner%log_file_lev.txt
echo -- Pfad zum TurboMed-Ordner auf dem Server : %tumed% >> %sichordner%log_file_lev.txt
echo -- Pfad zum Ordner: \TurboMed\Programm\ : %tumedprg% >> %sichordner%log_file_lev.txt
echo -- Pfad zum Ordner: \TurboMed\Sich_intermitt\ : %tumedintermitt% >> %sichordner%log_file_lev.txt
echo -- Pfad zu den Scandaten : %scandaten% >> %sichordner%log_file_lev.txt
echo Arbeitsplatz: >> %sichordner%log_file_lev.txt
echo -- Pfad zum Sicherungsordner : %sichordner% >> %sichordner%log_file_lev.txt
echo -- Pfad zum Sicherungsordner Datenbank : %sichdb% >> %sichordner%log_file_lev.txt
echo -- Ordner der wochenweisen Sicherung : %sichwoch% >> %sichordner%log_file_lev.txt

echo.

echo ########## Sicherung der Datenbankfiles innerhalb des Servers #######
echo.

REM ping -n 1 x 127.0.0.1 > NUL
REM ping -n 1 x 127.0.0.1 > NUL

REM HINWEIS:
REM Die Sicherung der Datenbank-Files geschieht zunächst innerhalb des Servers selbst.
REM So sind Kopiervorgänge am schnellsten. (Besonders bei SSD-Platten!!)
REM Dadurch wird das Serverprogramm "FastObjectsServer" möglichst kurz im Sicherungsmodus gehalten

echo.

echo -----------------------------------------------------------------
echo Erstellt am: %date% um: %time% > %sichordner%log_file_rob.txt
echo Erstellt am: %date% um: %time% > %sichordner%log_file_lev.txt
echo ---- >> %sichordner%log_file_lev.txt
echo.

%tumedprg%TMAdmin /beginBackup /server=%Servername%
Echo.

set string=%tumed%Dictionary %tumedintermitt%Dictionary
set Art=A1
Call :RoCop

set string=%tumed%StammDB %tumedintermitt%StammDB
set Art=A2
Call :RoCop

set string=%tumed%DruckDB %tumedintermitt%DruckDB
set Art=A3
Call :RoCop

set string=%tumed%PraxisDB %tumedintermitt%PraxisDB
REM set string=%tumed%DruckDB %tumedintermitt%PraxisDB
set Art=A4
Call :RoCop


%tumedprg%TMAdmin /endbackup /server=%Servername%
REM Der Server arbeitet nun wieder im "Normalmodus

echo.
echo ########## Sicherung der Datenbank-Files zum Arbeitsplatz #######
echo ########## gesichert in das Verzeichnis: %sichdb%
echo.
ping -n 1 x 127.0.0.1 > NUL

set string=%tumedintermitt%Dictionary %sichdb%Dictionary
set Art=B1
Call :RoCop

set string=%tumedintermitt%StammDB %sichdb%StammDB
set Art=B2
Call :RoCop

set string=%tumedintermitt%DruckDB %sichdb%DruckDB
set Art=B3
Call :RoCop

set string=%tumedintermitt%PraxisDB %sichdb%PraxisDB
set Art=B4
Call :RoCop

REM ////////////////////////////////////////////////////////////////////////

echo.
echo ########## Umkopieren der Wochentagsicherungen #######
echo.
ping -n 1 x 127.0.0.1 > NUL


REM HINWEIS:
REM Es werden nun die Datenbank-Dateien mehrmals gespeichert, so dass Sie auch noch Zugriff auf ältere
REM Dateien haben.
REM Diese zusätzliche Sicherheit ist nur für die
REM Serverfiles "Dictionary", "StammDB", "DruckDB" und "PraxisDB" implementiert:
REM

If exist %sichwoch%%WoTa%\O3\nul echo ## O3 entfernt #
If exist %sichwoch%%WoTa%\O3\nul echo ## O3 entfernt # >> %sichordner%log_file_lev.txt
If exist %sichwoch%%WoTa%\O3\nul Rmdir /Q /S %sichwoch%%WoTa%\O3\

If exist %sichwoch%%WoTa%\O2\nul echo ## Kopiere 02 -> O3 #
If exist %sichwoch%%WoTa%\O2\nul echo ## Kopiere 02 -> O3 # >> %sichordner%log_file_lev.txt
If exist %sichwoch%%WoTa%\O2\nul ren %sichwoch%%WoTa%\O2 O3

If exist %sichwoch%%WoTa%\O1\nul echo ## Kopiere 01 -> O2 #
If exist %sichwoch%%WoTa%\O1\nul echo ## Kopiere 01 -> O2 # >> %sichordner%log_file_lev.txt
If exist %sichwoch%%WoTa%\O1\nul ren %sichwoch%%WoTa%\O1 O2

If exist %sichwoch%%WoTa%\O1\nul RmDir %sichwoch%%WoTa%\O1\

echo.
echo # Datenbank in Woche:01 kopieren... ### %time%
echo.
set string=%sichdb% %sichwoch%%WoTa%\O1\
set Art=U1
Call :RoCop
echo # Datenbank in Woche:01 kopiert ### %time%
echo.

REM ############## HINWEIS: #####################
REM
REM Falls Ihr Speicherplatz auf dem Sicherungsmedium knapp ist, dann können Sie die obigen Zeilen
REM auch so abändern, dass weniger Unterordner generiert werden.

REM z.B.:

REM If exist %sichwoch%%WoTa%\O2\nul echo ## O2 entfernt #
REM If exist %sichwoch%%WoTa%\O2\nul echo ## O2 entfernt # >> %sichordner%log_file_lev.txt
REM If exist %sichwoch%%WoTa%\O2\nul Rmdir /Q /S %sichwoch%%WoTa%\O2

REM If exist %sichwoch%%WoTa%\O1\nul echo ## 01 -> O2 #
REM If exist %sichwoch%%WoTa%\O1\nul echo ## 01 -> O2 # >> %sichordner%log_file_lev.txt
REM If exist %sichwoch%%WoTa%\O1\nul ren %sichwoch%%WoTa%\O1 O2
REM ################################################


REM HINWEIS:
REM Die Daten werden vom intermittierenden Sicherungsfile auf dem Server nun auf den
REM Sicherungsrechner übertragen.

echo ########## Sicherung weiterer Dateien zum Arbeitsplatz #######

REM HINWEIS:
REM Dieser Abschnitt kann entsprechend der folgenden "Vorlagen" BELIEBIG erweitert werden.

echo.
ping -n 1 x 127.0.0.1 > NUL

echo.

set string=%tumed%IV_Verwaltung %sichordner%IV_Verwaltung
set Art=C1
Call :RoCop

set string=%tumed%Symbole %sichordner%Symbole
set Art=C2
Call :RoCop

set string=%tumed%Vorlagen %sichordner%Vorlagen
set Art=C3
Call :RoCop

set string=%tumed%Desktopobjekte %sichordner%Desktopobjekte
set Art=C4
Call :RoCop

echo.
echo # aktueller Monat: %aktmonat%
echo # Vormonat : %vormonat%
ping -n 1 x 127.0.0.1 > NUL
echo.

REM HINWEIS:
REM Der Ordner z.B.: /Dokumente/Sonstiges enthält die gescannten Dateien. Dies ist evtl an Ihre
REM Situation anzupassen, je nachdem in welchem Ordner TurboMed bei Ihnen die gescannten Daten speichert.
REM Kopieren Sie bitte initial alle Ihre gescannten Dokumente in diesen Ordner (z.B. /Dokumente/Sonstiges )
REM Dann wird dieser Sicherungs-Ordner kontinuierlich mit Ihren neuen gescannten Daten aktualisiert.


set string=%scandaten%%vormonat%\ %sichordner%Dokumente\Sonstiges\%vormonat%
set Art=D1
Call :RoCop

set string=%scandaten%%aktmonat%\ %sichordner%Dokumente\Sonstiges\%aktmonat%
set Art=C4
Call :RoCop

Echo.
Echo -------------------------- >> %sichordner%log_file_rob.txt
echo Datei Ende: %date% um: %time% >> %sichordner%log_file_rob.txt
echo Datei Ende: %date% um: %time% >> %sichordner%log_file_lev.txt
Echo -------------------------- >> %sichordner%log_file_rob.txt
Echo (Bei "Errorlevel 0 oder 1 ist alles in Ordnung!) >> %sichordner%log_file_rob.txt
Echo -------------------------- >> %sichordner%log_file_rob.txt

REM Log-Files werden noch zum entsprechenden Wochen-Tag des Sicherungsordners kopiert

copy %sichordner%log_file_lev.txt %sichwoch%%WoTa%\O1\
copy %sichordner%log_file_rob.txt %sichwoch%%WoTa%\O1\

%sichordner%log_file_lev.txt

goto Ende

REM ################################################

:Jahreswechsel
set /a Jahr=%date:~-4%-1
set Monat=12
set vormonat=%Jahr%%Monat%
goto :back

REM ################################################

:RoCop
Echo.
Echo ---- %time% ----
echo # %Art% # %string%
echo # %Art% # %string% ### %time% >> %sichordner%log_file_lev.txt
robocopy %string% /MIR /NP /LOG+:%sichordner%log_file_rob.txt
echo ---- %Art% ## Errorlevel: %ERRORLEVEL% ##
echo # %Art% # %time% # Errorlevel: %ERRORLEVEL% ## >> %sichordner%log_file_lev.txt
echo ------------------------------------ >> %sichordner%log_file_lev.txt
echo.
goto :eof

REM ################################################
REM ################################################

:Ende
echo.
echo ####### ENDE ##########



REM ################################################
REM ################################################

REM Tip für "Spezialisten"
REM
REM Wenn Sie dieses Programm nur einmal pro Tag laufen lassen, dann haben Sie
REM Sicherungsdateien für jeden Tag der Woche und dies für letzten 3 Wochen!
REM Lassen Sie aber das Programm z.B. zweimal pro Tag laufen, oder wenn sie es
REM mehrmals pro Tag "manuell" starten, dann sind die Server-Files evtl. "nur"
REM noch eine Woche lang auf Ihrem PC vorgehalten.
REM Es steht Ihnen aber natürlich frei, dass Sie diese Batch-Datei mehrmals
REM auf Ihrem PC unter verschiedenen Namen kopieren. Dann können Sie dieses
REM Batch-File zu verschiedenen Zeiten des Tages unter verschiedenen Namen aufrufen.
REM Wenn Sie für die verschiedenen Aufrufe auch verschiedene Namen des Sicherungs-
REM ordners vergeben, dann können Sie Ihre Daten lückenlos 3 (und mehr!) Wochen
REM lang vorhalten.
REM z.B.:
REM set sichwoch=Arbeitsplatz\\tm_dat_wo_mittags\
REM set sichwoch=Arbeitsplatz\\tm_dat_wo_abends\
REM
REM Bedenken Sie aber auch den Platzbedarf für diese große Zahl an Sicherungsdateien!!
Sapias, vina liques et spatio brevi spem longam reseces... carpe diem, quam minimum credula postero [Horaz]
"Sei klug, gönn dir noch ein Glas Wein ein und hoffe auf nichts weiter. ... Genieße den Tag, und vertraue möglichst wenig auf den folgenden!"
lennu42
Beiträge: 13
Registriert: Montag 3. November 2014, 22:03
9

Re: Datensicherung - Konfigurationsbeispiel

Beitrag von lennu42 »

Hallo Herr Geigenberger,

eine kleine Anmerkung zu Ihrem Skript: Ich würde in der Robocopy-Sektion noch die Parameter /R:x und /W:x einfügen - ansonsten kann es im unglücklichsten Fall dazu führen, dass bei Zugriffsproblemen (egal, ob Source oder Destination) der Kopier- bzw. Mirror-Versuch 1 Millionen mal mit jeweils 30 Sekunden Pause wiederholt wird (das sind die - in meinen Augen etwas zu großzügig definierten - Standard-Werte von Robocopy).

Beispiel:

Code: Alles auswählen

robocopy %string% /MIR /R:3 /W:5 /NP /LOG+:%sichordner%log_file_rob.txt
Jetzt wird die Kopieraktion maximal 3 Mal versucht mit 5 Sekunden Wartezeit.

Gruß,
Lennu42
Antworten

Wer ist online?

Mitglieder in diesem Forum: Amazon [Bot], Google [Bot] und 59 Gäste