Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: lukyluke68 am Januar 19, 2014, 18:45:12

Titel: Backup vom BE anlegen
Beitrag von: lukyluke68 am Januar 19, 2014, 18:45:12
Hallo,

ich bin über den u.a. Code gestoßen, da ich gerne von meinem BE ein Backup automatisiert haben möchte.
Der Code muss doch in das FE oder?
Wie muss ich nun weiter vogehen?

Function SaveMe()
' Achtung: Wenn Ordner "Backup" fehlt, wird er angelegt
' und ein Verweis auf die Scripting Runtime sollte auch gesetzt sein
' ebenso wie ein Verweis auf Microsoft DAO

Dim DBPfad As String, BackupPfad As String, DBName As String, _
    objFso As Scripting.FileSystemObject, Quelldatei As String, _
    Zieldatei As String, JetztVar As String

  Set objFso = CreateObject("Scripting.FileSystemObject")

' Diese Datenbank kopieren:
  Quelldatei = CurrentDb.Name
  DBPfad = Left(Quelldatei, Len(Quelldatei) - Len(Dir(Quelldatei)))
  BackupPfad = DBPfad & "\Backup\"
  DBName = Mid(Quelldatei, InStrRev(Quelldatei, "\") + 1)
  DBName = Left(DBName, InStr(DBName, ".") - 1)
  On Error Resume Next
  objFso.CreateFolder BackupPfad
  On Error GoTo 0

' Aktuelles Datum und Zeit in Backup (Genaue Zeit)
  JetztVar = Format(Now, "yyyymmdd_hhnnss")
' Aktuelles Datum in Backup (Nur Datum)
' JetzVar=Format(Date, "yyyymmdd")
  Zieldatei = BackupPfad & DBName & "_" & JetztVar & ".mdb" 'oder wohin auch immer

' und jetzt kopieren:
  objFso.CopyFile Quelldatei, Zieldatei, True

  Set objFso = Nothing
End Function
Titel: Re: Backup vom BE anlegen
Beitrag von: Hondo am Januar 19, 2014, 19:08:09
Hallo,
ich habe deinen Beitrag mal abgeändert da ich davon ausgehe dass du Backup und nicht Backend meinst.
Aber zu deiner Frage.
Das Backend aus dem Frontend heraus zu sichern ist ein ganz falscher Weg.
Besser man macht dies per Task. Aber auch da sind Fallstricke. Zur Sicherung müssen alle User ihr Frontend schließen. D.H. am besten automatisiert Nachts um 3:00 oder so das Backend speichern.

Dazu würde sich z.B. das Freeware Programm Areca eignen welches ich selbst einsetze, und per Windows-Aufgabenplanung einen Task erstellen.

Gruß Andreas

Oder wenn du die Anwendung als SingleUser betreibst, kannst du beim Schließen des Frontends die Datenbank sichern. Siehe dazu folgenden Link: www.rogersaccesslibrary.com/forum/backupwithcompactmdb-intermediate_topic394.html
Titel: Re: Backup vom BE anlegen
Beitrag von: lukyluke68 am Januar 19, 2014, 19:16:24
Hallo,

FE und BE liegen auf einem Firmennetzwerk. Hier darf kein ext. Programm aus Sicherheitsgründen installiert werden. Geht es vielleicht mit einer bat Datei?
Titel: Re: Backup vom BE anlegen
Beitrag von: Hondo am Januar 19, 2014, 19:24:57
Firmennetzwerk?
Um so besser, lass das Backend von der EDV in das tägliche Backup aufnehmen.
Wo ist das Problem?
Gruß Andreas
Titel: Re: Backup vom BE anlegen
Beitrag von: MzKlMu am Januar 19, 2014, 20:08:47
Hallo,
ZitatGeht es vielleicht mit einer bat Datei?
wenn das ein ordentliches  ;) Firmennetzwerk ist, wird eine Bat auch blockiert sein.
Titel: Re: Backup vom BE anlegen
Beitrag von: database am Januar 19, 2014, 20:44:54
@Klaus

Zitatwenn das ein ordentliches  ;) Firmennetzwerk ist, wird eine Bat auch blockiert sein
Es ist nicht immer auf ein UNORDENTLICHES   ;) Netzwerk zurückzuführen, wenn auf einem Fileserver-Verzeichnis eine Datei ausführbar ist.  ::)

Titel: Re: Backup vom BE anlegen
Beitrag von: lukyluke68 am Januar 20, 2014, 08:31:56
Hallo,

die bat Datei soll ja nur die Datei BE von Laufwerk Y:/Datenbank_Zange zum Laufwerk P:/Backup_Datenbank_Zange kopieren. Alle beiden Laufwerke befinden sich im Netzwerk. Mal schauen.
Titel: Re: Backup vom BE anlegen
Beitrag von: DF6GL am Januar 20, 2014, 09:28:38
Hallo,

BECopy.bat:

Xcopy "P:\Backup_Datenbank_Zange kopieren\DeineBEDatei.accdb"  "P:\Backup_Datenbank_Zange kopieren\*.*" /y

mit deutlichem Hinweis auf die vorangegangenen Hinweise bezgl. der BE-Verwendung durch andere User.
Titel: Re: Backup vom BE anlegen
Beitrag von: ebs17 am Januar 20, 2014, 14:46:16
Zitat von: HondoDas Backend aus dem Frontend heraus zu sichern ist ein ganz falscher Weg.
Dieser Aussage würde ich in dieser Form widersprechen.

Man muss aber dafür sorgen bzw. prüfen, dass im Moment des Kopierens keine Zugriffe auf das Backend vom eigenen Frontend wie auch nicht von Frontends anderer User und auch nicht von dritten Programmen vorliegen.

Dass im eigenen Frontend keine Zugriffe auf das Backend erfolgen, kann man z.B. über ein ungebundenes und alleinigst offenes Formular umsetzen, das man zum Start oder zum Beenden der DB-Anwendung oder auch zwischendurch benutzt.

Sicherungsmaßnahmen dazu:
Datenbank-Backup aus VBA
Titel: Re: Backup vom BE anlegen
Beitrag von: Hondo am Januar 20, 2014, 16:26:00
Hallo,
ZitatMan muss aber dafür sorgen bzw. prüfen, dass im Moment des Kopierens keine Zugriffe auf das Backend vom eigenen Frontend wie auch nicht von Frontends anderer User und auch nicht von dritten Programmen vorliegen.

Genau das ist doch das Problem an der Sache. Man sollte an dieser Stelle vieleicht auch mal erwähnen dass in einer Mehrbenutzerumgebung in einem Firmennetzwerk ein Access-Backend eine Suboptimale Lösung darstellt, um nicht zu sagen dass es eine schlechte Lösung aus verschiedensten Gründen ist.

Also ich setze bei meinen Kunden in keinem Falle mehr ein Access-Backend ein, sondern ausschließlich SQL Server.

Gruß Andreas