rwerene81
Goto Top

Winzip/ Batch/ Laufende Datenbanken/ Fehler log.txt

Gute Tag zusammen,

ich habe folgendes Problem:

Ich habe eine Batch Datei erstellt die einige Ordner mit Winzip direkt packt und diese Ordner dann speichert. Der Code sieht folgendermaßen aus (Exemplarisch für einen Ordner):

c:\programme\winzip\winzip32.exe -min -a -r -p v:\temp\xy\xy.zip v:\temp\xy\*.*

So weit so gut....
In den genannten Ordnern befinden sich Access Datenbanken.

Das eigentliche PROBLEM: Wenn diese Access Datenbanken gerade geöffnet sind oder laufen, schmeißt WINZIP mir eine Fehlermeldung raus:

Warnung: Die folgende Datei wird derzeit von einem anderen Programm verwendet. Wenn
Warnung: das Programm in die Datei schreibt, während WinZip diese komprimiert, wird die
Warnung: komprimierte Datei evtl. beschädigt: v:\TEMP\xy\ab.ldb

Die Datenbanken können vor der Sicherung aber nicht geschlossen werden, müssen also auf sein und laufen.

Frage: Gibt es die Möglichkeit, trotzdem die Sicherung durchzuführen und ggf. die Fehlermeldung in ein seperates Logfile zu speichern, so das winzip durch läuft und die komplette Sicherung durchführt, ob wohl es Fehlermeldungen gibt?????

LG
RWErene81

Content-ID: 52244

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

Ausgedruckt am: 22.11.2024 um 20:11 Uhr

SlainteMhath
SlainteMhath 21.02.2007 um 14:14:34 Uhr
Goto Top
Eine direkte Antwort auf deine Frage habe ich zwar nicht, aber generell hast du 2 Möglichkeiten Access DBs im laufenden Betrieb zu sichern:

Du kopierst die MDB/MDE in ein anderes Verzeichnis, und zipst sie dort
-oder-
Du schliest alle "*.ldb" Dateien aus - darin speichert Access eh nur den aktuell mit der DB arbeitenten User.
rwerene81
rwerene81 21.02.2007 um 14:18:02 Uhr
Goto Top
...
-oder-
Du schliest alle "*.ldb" Dateien
aus - darin speichert Access eh nur den
aktuell mit der DB arbeitenten User.

n1

wie müsste denn der Befehl für den Ausschluss aller Dateien mit der Endung .ldb aussehen?

Wenn das klappen sollte, wäre es riesig face-wink
Biber
Biber 21.02.2007 um 14:31:45 Uhr
Goto Top
Moin rwerene81,

willkommen im Forum.

@slainthemhath
Die erste Idee -eine Kopie der *.mdb zippen- könnte funktionieren (mit allen Konsequenzen allerdings wie anderer Pfad etc).
Die zweite Idee aber eher nicht. Es sind immer beide Dateien - *.mdb und .ldb gesperrt.

Dann würde ich schon fast eher den Weg gehen, für die *.mdb-Sicherung einen separaten Mini-Batch zu schreiben. Der kann dann in aller Ruhe bei jeder *.mdb-Datei prüfen, ob eine gleichnamige .ldb-Datei mit heutigem Datum im selben Verzeichnis existiert und wenn ja: von beiden die Finger lassen.

@Rene
WTF muss denn die Sicherung laufen, während auf den *.mdb's gearbeitet wird???
Nun sach nicht, ihr habt eine konzernweit laufende Applikation auf M$-Access-Basis 24x7x365 am Laufen?!?
Dann wechsele ich sofort zu Yellow Strom oder e.on....

Gruss
Biber
rwerene81
rwerene81 21.02.2007 um 14:42:19 Uhr
Goto Top
@Rene
WTF muss denn die Sicherung laufen,
während auf den *.mdb's gearbeitet
wird???
Nun sach nicht, ihr habt eine konzernweit
laufende Applikation auf M$-Access-Basis
24x7x365 am Laufen?!?
Dann wechsele ich sofort zu Yellow Strom
oder e.on....

Gruss
Biber

Danke für die nette Begrüßung face-wink

1. Ich habe nichts mit dm Strom Konzern RWE zu tun und arbeite da auch nicht

2. Tags über wird "an" den Accessdatenbanken gearbeitet und Nachts werden diese dann ausgeführt, die wiederum andere Berechnungsbrogramme starten etc. Ein durchlauf einer solchen Datenbankanwendung dauert schon mal gut und gerne 10 Std, was nicht mit der Hardware sondern mit dem Datenbankfolumen zu tun hat.

Back to Topic

3. Die Sicherung beinhaltet mehrer Ordner mit mehreren laufenden Datenbanken und wird vom Benutzer als letztes zum Feierabend hin gestartet, so eine Sicherung dauert dann mit packen auch gut und gerne 1- 1 1/2 Std, weswegen sie auch nach Feierabend noch läuft.
SlainteMhath
SlainteMhath 21.02.2007 um 14:54:14 Uhr
Goto Top
@slainthemhath
Die erste Idee -eine Kopie der *.mdb zippen-
könnte funktionieren (mit allen
Konsequenzen allerdings wie anderer Pfad
etc).
Das funktioniert - falls die Anwendung mit Transaktionen arbeitet,
sind die Daten danach sogar konsistent face-smile (selbst schon mit ~3 GB an MDBs, an denen
~70 User arbeiten ausprobiert ^^)

Die zweite Idee aber eher nicht. Es sind
immer beide Dateien - *.mdb und .ldb
gesperrt.
*nachles*
Ok, stimmt, WinZip beschwert sich ja ueber "in Verwendung" und nicht ueber "ist gesperrt"
Biber
Biber 21.02.2007 um 14:58:03 Uhr
Goto Top
Na gut, rene,

dann sorry für die bösartige Unterstellung mit diesem Stromkonzern.

Aber dennoch, wieso dann nicht den Prozess abändern:
2. Tags über wird "an" den Accessdatenbanken gearbeitet und Nachts werden diese dann ausgeführt, die wiederum andere Berechnungsbrogramme starten etc

und dort hintendran den Start der Sicherung hängen?

Und auch nochmal die Frage: wenn die Daten ein derartiges Volumen erreicht haben, wäre dann nicht der Zeitpunkt gekommen über eine SQL-Server-DB- nachzudenken?
Also etwas mir Datenbank-Engine? Was sich auch starten oder stoppen lässt? Oder replizieren?
Access ist ja eine ganz nette Krücke zur Ich-muss-500-Artikel-für-fast-2000-Kunden-verwalten-Problematik, aber doch eher nicht für Daten gedacht, deren Auswertung 10 Stunden braucht...

Gruss
Biber
rwerene81
rwerene81 21.02.2007 um 15:04:14 Uhr
Goto Top
> @slainthemhath
> Die erste Idee -eine Kopie der *.mdb
zippen-
> könnte funktionieren (mit allen
> Konsequenzen allerdings wie anderer
Pfad
> etc).
Das funktioniert - falls die Anwendung mit
Transaktionen arbeitet,
sind die Daten danach sogar konsistent face-smile
(selbst schon mit ~3 GB an MDBs, an denen
~70 User arbeiten ausprobiert ^^)

Wenn ich die Lösung richtig verstanden habe lautet sie so:
Es wird erkannt, welche Datei gerade verwendet wird, ein Kopie erstellt, in einen anderen Ordner gespeichert und von dort aus dann gepackt.

Wie müsste der dazugehörige Batch Code aussehen (ich bin kein Batch Profi)