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