BK Begin full backup

4D - Documentation   Français   English   German   4D Backup, Befehle nach Thema   4D Backup, Befehle alphabetisch   Back   Previous   Next

Version 6.0


BK Begin full backup

ParameterTypBeschreibung
Dieser Befehl benötigt keine Parameter
FunktionsergebnisGanzzahl0, wenn Ausführung korrekt, sonst
Fehlermeldung

Beschreibung

Die Funktion BK Begin full backup startet den Sicherungsvorgang von 4D Backup. Sie führt die notwendigen Vorbereitungen zum Sichern der Datenbank aus: Sie wartet ab, bis alle Transaktionen beendet sind und sperrt die Datenbank im Schreibmodus.

Alle 4D Backup Befehle und Funktionen müssen von den Routinen BK Begin full backup bzw. BK Begin mirror update und BK END BACKUP umgeben sein — mit Ausnahme von vier autonomen Routinen. Weitere Informationen dazu finden Sie im Abschnitt Struktur der Anweisungen.

BK Begin full backup gibt den Wert 0 zurück, wenn die Ausführung korrekt war. Andernfalls wird eine Fehlernummer zurückgegeben. Weitere Informationen dazu finden Sie in Anhang A, Fehlermeldungen von 4D Backup. Wir empfehlen, den zurückgegebenen Wert systematisch zu überprüfen. Denn, immer wenn BK Begin full backup einen anderen Wert als 0 (Null) zurückgibt, werden alle darauffolgenden Anweisungen nicht ausgeführt.

Während dem Sichern auf die Datenbank zugreifen

Durch die Funktion BK Begin full backup wird der Zugriff auf die Datenbank in folgender Weise eingeschränkt:

Mit 4th Dimension Einzelplatz: Alle Prozesse - außer der Prozeß, der die Sicherung aufgerufen hat - sind in Schlafstatus. Sie werden erst nach Ausführen des Befehls BK END BACKUP wieder freigegeben. So besteht nicht das Risiko, daß die Datenbank während der Sicherung geändert wird.

Hinweis: Mit der Tastenkombination Alt+Umschalttaste+Klick rechte Maustaste unter Windows bzw. ctrl+Wahl-+Umschalttaste+Mausklick auf MacOS können Sie den Sicherungsvorgang bei Bedarf abbrechen.

Mit 4D Server: Die mit 4D Server verbundenen Clients können die Datensätze lesen, jedoch weder ändern noch löschen. Sendet eine Arbeitsstation dem Server die Anweisung, Daten hinzuzufügen, zu ändern oder zu löschen, erscheint die Meldung, daß das Ende der Sicherung abzuwarten ist. Diese Meldung verschwindet, sobald die Datenbank gesichert ist. Die gewünschte Aktion wird dann ausgeführt.

Über die Schaltfläche Operation abbrechen kann der Benutzer die laufende Anweisung annullieren, wenn er nicht das Ende des Sicherungsvorgangs abwarten will.

Stammt die Aktion jedoch von einer Methode, die vor der Sicherung gestartet wurde, sollte die Aktion nicht abgebrochen werden, denn nur die noch nicht ausgeführten Operationen werden annulliert. Eine halbwegs ausgeführte Methode kann in der Logik der Datenbank zu Unstimmigkeiten führen.

Hinweis: Stammt die Aktion in Wartestellung von einer Methode und klickt der Benutzer auf die Schaltfläche Operation abbrechen, gibt 4D den Fehler -9976 zurück.

Der Sicherungsprozeß erscheint auch im Verwaltungsfenster des Servers.

Verwalten der Transaktionen

BK Begin full backup wartet erst ab, bis alle Transaktionen beendet sind. Starten Sie in demselben Prozeß eine Transaktion über den 4D Befehl START TRANSACTION und rufen Sie dann die Funktion BK Begin full backup auf, ohne zuvor die Befehle VALIDATE TRANSACTION bzw. CANCEL TRANSACTION auszuführen, gibt BK Begin full backup den Fehler 1404 zurück.

In diesem Zusammenhang sollten Sie dem Benutzer auch keinen Eingabedialog während einer Transaktion anbieten. Geht nämlich der Benutzer z.B. in Mittag und läßt das über eine Transaktion geöffnete Dialogfenster offen, können Sie die Datenbank nicht sichern. Außerdem wird die Datenbank für alle anderen Benutzer im Schreibmodus gesperrt, bis diese Aktion bestätigt wird.

Es ist also viel geschickter, die Transaktionen nach den Dialogfenstern auszuführen. Dann wird die Transaktion erst gestartet und anschließend bestätigt oder annulliert, wenn der Benutzer seine Operation bestätigt hat. Auf diese Weise optimieren Sie einerseits die allgemeine Funktionsweise Ihrer Datenbank, andererseits verhindern Sie, daß die Sicherung wegen einer vom Benutzer blockierten Transaktion nicht durchgeführt werden kann.

Beachten Sie auch, daß Sie bei gesperrter Datenbank keine Datensätze aktualisieren können, z.B. um Informationen über die Sicherung zu speichern. Das können Sie erst nach Aufrufen des Befehls BK END BACKUP. Zwischen den Anweisungen BK Begin full backup und BK END BACKUP können Sie Datensätze weder ändern, löschen, noch neue hinzufügen.

Beispiele

(1) Hier die einfachste Methode zum Auslösen einer vollständigen Sicherung:

   C_INTEGER($vError)
   $vError:=BK Full backup

(2) Auch diese längere Methode löst die vollständige Sicherung aus:

   If(BK Begin full backup=0) `Sicherungsvorgang wird geöffnet
      If (BK Start copy =0)    `Sicherung startet
         Repeat 
         Until (BK Get state#4) `Ende der Kopie
      End if
      BK END BACKUP `Sicherungsvorgang wird beendet
   End if

(3) Obige Methode läßt sich durch Abfragen evtl. Fehler verbessern:

   C_INTEGER($vError;$vState)
   $vError:=BK Begin full backup
   If ($vError#0)
      ALERT("Sicherung läßt sich nicht starten: Fehlernr " +String($vError))
   Else 
      $vError:=BK Start copy
      If ($vError#0)
         ALERT("Kopie läßt sich nicht starten: Fehlernr " + String($vError))
      Else 
         Repeat 
            $vState:=BK Get state
         Until ($vState#4)
         If ($vState#5)
            ALERT ("Probleme während der Kopie: Fehlernr " + String($vState))
         End if
      End if
      BK END BACKUP 
   End if

Referenz

BK Begin mirror update, BK END BACKUP, BK Get state.


4D - Documentation   Français   English   German   4D Backup, Befehle nach Thema   4D Backup, Befehle alphabetisch   Back   Previous   Next