JetBeginExternalBackup-Funktion
Gilt für: Windows | Windows Server
JetBeginExternalBackup-Funktion
Die JetBeginExternalBackup-Funktion initiiert eine externe Sicherung, während engine und database online und aktiv sind. JetBeginExternalBackup ist das erste in einer Reihe von Funktionen, die aufgerufen werden müssen, um eine erfolgreiche Onlinesicherung (nicht VSS-basiert) auszuführen.
Eine externe Sicherung kann verwendet werden, um vollständige, inkrementelle oder differenzielle Sicherungen zu implementieren.
Die Sicherung ist unscharf, da die Sicherung zu einem einzelnen Zeitpunkt im Transaktionsverlauf konsistent ist, die Steuerung des genauen Zeitpunkts jedoch 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. Definiert für Windows XP. |
Rückgabewert
Diese Funktion gibt den JET_ERR Datentyp mit einem der folgenden Rückgabecodes zurück. Weitere Informationen zu den möglichen ESE-Fehlern finden Sie unter Extensible Storage Engine Errors and Error Handling Parameters.
Rückgabecode |
Beschreibung |
|---|---|
JET_errSuccess |
Der Vorgang wurde erfolgreich abgeschlossen. |
JET_errBackupInProgress |
Wenn bereits eine externe Sicherung oder Momentaufnahmesicherung verarbeitet 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 Instanz oder Datenbank-Engine befindet sich entweder in der Wiederherstellung oder in einer Phase zum Herunterfahren oder Beenden. |
JET_errCheckpointCorrupt |
Bei einer vollständigen Sicherung konnte die Prüfpunktdatei nicht gelesen oder die Datei 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 Instanz, die der Sitzung zugeordnet ist, aufgrund eines Aufrufs von JetStopServicebeendet wurden. |
JET_errInstanceUnavailable |
Der Vorgang kann nicht abgeschlossen werden, da für die Instanz, die der Sitzung zugeordnet ist, ein schwerwiegender Fehler aufgetreten ist, der erfordert, dass der Zugriff auf alle Daten widerrufen wird, um die Integrität dieser Daten zu schützen. Windows XP: Dieser Rückgabewert wird in Windows XP eingeführt. |
JET_errInvalidBackup |
Die zirkuläre Protokollierung 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 in den Transaktionsprotokollfehlern. |
JET_errInvalidgrbit |
Mindestens ein Grbitmember war ungültig. |
JET_errLoggingDisabled |
Die 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, weil das Protokoll voll ist oder Datenträger-E/A-Fehler aufgetreten sind. |
JET_errMissingFullBackup |
Die inkrementelle Sicherung wurde angegeben (mit JET_bitBackupIncremental), und es wurde nie 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 Instanz, die der Sitzung zugeordnet ist, noch nicht initialisiert wurde. |
JET_errOutOfMemory |
Fehler beim Vorgang, 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 Instanz ausgeführt wird, die der Sitzung zugeordnet ist. |
JET_errRunningInMultiInstanceMode |
Fehler beim Vorgang, weil versucht wurde, die Engine im Legacymodus (Windows 2000-Kompatibilitätsmodus) zu verwenden, wobei nur eine Instanz unterstützt wird, wenn tatsächlich bereits mehrere Instanzen vorhanden sind. |
JET_errTermInProgress |
Der Vorgang kann nicht abgeschlossen werden, da die instanz, die der Sitzung zugeordnet ist, heruntergefahren wird. |
Wenn die Funktion erfolgreich ausgeführt wird, wird eine externe Sicherung initiiert, und die Sicherungsstatus-Engine wird initialisiert. Nachfolgende APIs können nun aufgerufen werden, um die externe Sicherungssequenz abzuschließen und die Datenbankdatei, die Datenbankpatchdatei (falls unterstützt) und die Protokolldatei zu streamen oder 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 Sicherungsvorgang (wie von JetBeginExternalBackup gestartet) ist so konzipiert, dass eine Onlinesicherung einer Fuzzytransaktion der gesamten Instanz auf einem Zielgerät als Stream ermöglicht wird. Die Sicherung enthält alle Datenbankdateien, die mithilfe von JetAttachDatabase an die Instanz angefügt werden (für eine vollständige Sicherung), 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 ein Satz von Dateien, die aus dem Stream wiederhergestellt werden können, möglicherweise in Kombination mit vorhandenen Datenbank- und Protokolldateien, 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. Zuerst wird JetBeginExternalBackup aufgerufen, um den Sicherungsvorgang zu starten. Anschließend wird JetGetAttachInfo aufgerufen, um die Liste der Datenbanken abzurufen, die an die Instanz angefügt sind, die gesichert werden muss. 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 durchgeführt. Anschließend werden alle unerwünschten Transaktionsprotokolldateien mit JetTruncateLoggelöscht. Schließlich wird die Sicherung durch einen Aufruf von JetEndExternalBackupbeendet.
Es ist auch möglich, diesen Satz von Schritten zu ändern, um eine inkrementelle Sicherung der Instanz auszuführen. Bei einer inkrementellen Sicherung werden Protokolldateien auf- und gesichert. Inkrementelle Sicherungen sind nur möglich, wenn die zirkuläre Protokollierung nicht aktiviert ist.
Es ist auch möglich, diesen Satz von Schritten zu ändern, damit nachfolgende differenzielle Sicherungen der Instanz ausgeführt werden können. Um eine differenzielle Sicherung durchzuführen, rufen Sie jetTruncateLog in der vorherigen vollständigen oder inkrementellen Sicherung nicht auf. Indem Sie JetTruncateLognicht aufrufen, ermöglichen Sie, dass nachfolgende Sicherungen in Bezug auf die letzte vollständige oder inkrementelle Sicherung differenziell sind. Differenzielle Sicherungen sind nur möglich, wenn die zirkuläre Protokollierung nicht aktiviert ist.
Die Datenbankpatchdatei ist eine spezielle Hilfsdatei, die zum Speichern von Datenbankseitenimages unter bestimmten Umständen während der Sicherung verwendet wird. Diese Datei muss sich während eines Wiederherstellungsvorgangs am gleichen Speicherort wie die zugeordnete Datenbank befinden. Diese Datei wird nur in Windows 2000 verwendet. Daher muss jede Anwendung, die für Windows 2000 und andere Releases 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. |
Header |
Wird in Esent.h deklariert. |
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