Freigeben über


JetBeginExternalBackup-Funktion

Gilt für: Windows | Windows Server

JetBeginExternalBackup-Funktion

Die JetBeginExternalBackup-Funktion initiiert eine externe Sicherung, während die Engine und die Datenbank online und aktiv sind. JetBeginExternalBackup ist die erste in einer Reihe von Funktionen, die aufgerufen werden müssen, um eine erfolgreiche Onlinesicherung (nicht auf VSS basierend) auszuführen.

Eine externe Sicherung kann verwendet werden, um vollständige, inkrementelle oder differenzielle Sicherungen zu implementieren.

Die Sicherung ist Fuzzy, da die Sicherung mit einem einzelnen Zeitpunkt im Transaktionsverlauf konsistent ist, aber das Steuern des genauen Zeitpunkts nicht möglich ist.

    JET_ERR JET_API JetBeginExternalBackup(
      __in          JET_GRBIT grbit
    );

Parameter

grbit

Eine Gruppe von Bits, die null oder mehr der folgenden Optionen angeben.

Wert

Bedeutung

JET_bitBackupAtomic

Dieses Flag ist veraltet. Die Verwendung dieses Bits führt dazu, dass JET_errInvalidgrbit zurückgegeben wird.

JET_bitBackupIncremental

Erstellt eine inkrementelle Sicherung im Gegensatz zu einer vollständigen Sicherung. Dies bedeutet, dass nur die Protokolldateien seit der letzten vollständigen oder inkrementellen Sicherung gesichert werden.

JET_bitBackupSnapshot

Für die zukünftige Verwendung reserviert. Für Windows XP definiert.

Rückgabewert

Diese Funktion gibt den Datentyp JET_ERR mit einem der folgenden Rückgabecodes zurück. Weitere Informationen zu möglichen ESE-Fehlern finden Sie unter Erweiterbare Speichermodulfehler und Fehlerbehandlungsparameter.

Rückgabecode

Beschreibung

JET_errSuccess

Der Vorgang wurde erfolgreich abgeschlossen.

JET_errBackupInProgress

Wenn eine externe Sicherung oder Momentaufnahme Sicherung bereits ausgeführt wird, wird dieser Fehler zurückgegeben, bis JetBeginExternalBackup (oder eine der Varianten davon) aufgerufen wird. ESE lässt jeweils nur eine Onlinesicherung zu.

JET_errBackupNotAllowedYet

Die instance- oder Datenbank-Engine befindet sich entweder in der Wiederherstellung oder in einer Herunter- oder Beendigungsphase.

JET_errCheckpointCorrupt

Bei einer vollständigen Sicherung konnte die Prüfpunktdatei nicht gelesen werden, oder die Datei konnte nicht überprüft werden.

JET_errCheckpointFileNotFound

Bei einer vollständigen Sicherung konnte die Prüfpunktdatei nicht gefunden werden.

JET_errClientRequestToStopJetService

Der Vorgang kann nicht abgeschlossen werden, da alle Aktivitäten auf der instance, die der Sitzung zugeordnet ist, aufgrund eines Aufrufs von JetStopService beendet wurden.

JET_errInstanceUnavailable

Der Vorgang kann nicht abgeschlossen werden, da für die der Sitzung zugeordnete instance ein schwerwiegender Fehler aufgetreten ist, der erfordert, dass der Zugriff auf alle Daten widerrufen werden muss, um die Integrität dieser Daten zu schützen.

Windows XP: Dieser Rückgabewert wird in Windows XP eingeführt.

JET_errInvalidBackup

Die Zirkelprotokollierung ist aktiviert, und der angegebene Sicherungstyp ist JET_bitBackupIncremental. Informationen zum Steuern der zirkulären oder nicht zirkulären Protokollierung finden Sie unter JET_paramCircularLog unter Transaktionsprotokollfehler .

JET_errInvalidgrbit

Mindestens ein Grbit-Member war ungültig.

JET_errLoggingDisabled

Wiederherstellung oder Protokollierung ist deaktiviert. Sie können keine Onlinesicherung durchführen, wenn die Protokollierung deaktiviert ist. Weitere Informationen zur Protokollierung und Wiederherstellung finden Sie unter JET_paramRecovery.

JET_errLogWriteFail

Die Engine hat das Schreiben auf das Protokolllaufwerk beendet, da das Protokoll voll ist oder E/A-Fehler auf dem Datenträger auftreten.

JET_errMissingFullBackup

Die inkrementelle Sicherung wurde angegeben (mit JET_bitBackupIncremental), und nie wurde eine vollständige Sicherung für eine der angefügten Datenbanken für den Protokollierungssatz erstellt.

JET_errNotInitialized

Der Vorgang kann nicht abgeschlossen werden, da die der Sitzung zugeordnete instance noch nicht initialisiert wurde.

JET_errOutOfMemory

Der Vorgang ist fehlgeschlagen, weil nicht genügend Arbeitsspeicher zugeordnet werden konnte, um ihn abzuschließen.

JET_errRestoreInProgress

Der Vorgang kann nicht abgeschlossen werden, da ein Wiederherstellungsvorgang für die instance ausgeführt wird, die der Sitzung zugeordnet ist.

JET_errRunningInMultiInstanceMode

Der Vorgang ist fehlgeschlagen, weil versucht wurde, die Engine im Legacymodus (Windows 2000-Kompatibilitätsmodus) zu verwenden, in dem nur eine instance unterstützt wird, wenn bereits mehrere Instanzen vorhanden sind.

JET_errTermInProgress

Der Vorgang kann nicht abgeschlossen werden, da die der Sitzung zugeordnete instance heruntergefahren wird.

Wenn die Funktion erfolgreich ist, wird eine externe Sicherung initiiert, und die Sicherungszustands-Engine wird initialisiert. Nachfolgende APIs können jetzt aufgerufen werden, um die externe Sicherungssequenz abzuschließen und die Datenbankdatei, die Datenbankpatchdatei (falls unterstützt) und die Protokolldatei zu streamen oder daraus zu lesen. Ein Ereignis kann protokolliert werden, dass eine externe Sicherung begonnen hat.

Wenn die Funktion fehlschlägt, wird die Sicherungssitzung nicht initiiert. Wenn eine andere Sicherungssitzung ausgeführt wird, wird sie nicht abgebrochen.

Bemerkungen

Der externe Sicherungsprozess (wie von JetBeginExternalBackup gestartet) ist so konzipiert, dass eine Fuzzytransaktion online gesichert werden kann, die gesamte instance auf einem Zielgerät als Stream. Die Sicherung enthält alle Datenbankdateien, die mithilfe von JetAttachDatabase (für eine vollständige Sicherung) an die instance angefügt sind, gefolgt von den zugehörigen Datenbankpatchdateien (sofern unterstützt) und schließlich von den Transaktionsprotokolldateien, die während des Sicherungsvorgangs generiert wurden. Das Endergebnis ist eine Gruppe von Dateien, die aus dem Stream wiederhergestellt werden können, möglicherweise mit vorhandenen Datenbank- und Protokolldateien kombiniert und schließlich in einem konsistenten Zustand wiederhergestellt werden können.

Die allgemeine Reihenfolge der Vorgänge für eine vollständige Sicherung besteht aus den folgenden Aufrufen. Zunächst wird JetBeginExternalBackup aufgerufen, um den Sicherungsvorgang zu starten. Anschließend wird JetGetAttachInfo aufgerufen, um die Liste der Datenbanken abzurufen, die an die zu sichernde instance angefügt sind. Für jede dieser Datenbanken wird JetOpenFile aufgerufen, gefolgt von einer Reihe von JetReadFile-Aufrufen und dann von einem Aufruf von JetCloseFile. Anschließend wird JetGetLogInfo aufgerufen, um eine Liste der zu sichernden Datenbankpatch- und Protokolldateien abzurufen. Für jede dieser Dateien wird eine weitere Sequenz von JetOpenFile-, JetReadFile- und JetCloseFile-Aufrufen ausgeführt. Anschließend werden alle unerwünschten Transaktionsprotokolldateien mithilfe von JetTruncateLog gelöscht. Schließlich wird die Sicherung durch einen Aufruf von JetEndExternalBackup beendet.

Es ist auch möglich, diese Schritte zu ändern, um eine inkrementelle Sicherung der instance auszuführen. Eine inkrementelle Sicherung listet Protokolldateien auf und sichert sie. Inkrementelle Sicherungen sind nur möglich, wenn die Zirkelprotokollierung nicht aktiviert ist.

Es ist auch möglich, diese Schritte so zu ändern, dass nachfolgende differenzielle Sicherungen der instance ausgeführt werden können. Um eine differenzielle Sicherung durchzuführen, rufen Sie JetTruncateLog in der vorherigen vollständigen oder inkrementellen Sicherung nicht auf. Wenn Sie JetTruncateLog nicht aufrufen, aktivieren Sie nachfolgende Sicherungen, um differenziell im Hinblick auf die letzte vollständige oder inkrementelle Sicherung zu sein. Differenzielle Sicherungen sind nur möglich, wenn die zirkuläre Protokollierung nicht aktiviert ist.

Die Datenbankpatchdatei ist eine spezielle Hilfsdatei, die unter bestimmten Umständen während der Sicherung zum Speichern von Datenbankseitenimages verwendet wird. Diese Datei muss sich während eines Wiederherstellungsvorgangs am selben Speicherort wie die zugehörige Datenbank befinden. Diese Datei wird nur in Windows 2000 verwendet. Daher muss jede Anwendung, die für windows 2000 und andere Versionen geschrieben wurde, Datenbankpatchdateien unterstützen, wenn sie vorhanden sind, aber auch nicht fehlschlagen, wenn sie nicht vorhanden sind.

Anforderungen

Anforderung Wert

Client

Erfordert Windows Vista, Windows XP oder Windows 2000 Professional.

Server

Erfordert Windows Server 2008, Windows Server 2003 oder Windows 2000 Server.

Kopfzeile

Deklariert in Esent.h.

Bibliothek

Verwenden Sie ESENT.lib.

DLL

Erfordert ESENT.dll.

Weitere Informationen

JET_ERR
JET_GRBIT
JET_INSTANCE
JetAttachDatabase
JetBeginExternalBackupInstance
JetCloseFile
JetEndExternalBackup
JetEndExternalBackupInstance2
JetGetAttachInfo
JetGetLogInfo
JetOpenFile
JetReadFile
JetStopBackup
JetTruncateLog