JetExternalRestore-Funktion

Gilt für: Windows | Windows Server

JetExternalRestore-Funktion

Die JetExternalRestore-Funktion stellt eine externe Sicherung wieder her, die mit den externen Sicherungs-APIs erstellt wurde, und gibt einen Bereich von Protokolldateinummern an, die während des Wiederherstellungsvorgangs wiedergegeben werden sollen. Dies wird als harte Wiederherstellung bezeichnet, die ähnlich ist, sich aber von der von der JetInit-Funktion durchgeführten weichen Wiederherstellung unterscheidet.

JET_ERR JET_API JetExternalRestore(
  __in          JET_PSTR szCheckpointFilePath,
  __in          JET_PSTR szLogPath,
  __in_opt      JET_RSTMAP* rgrstmap,
  __in          long crstfilemap,
  __in          JET_PSTR szBackupLogPath,
  __in          long genLow,
  __in          long genHigh,
  __in          JET_PFNSTATUS pfn
);

Parameter

szCheckpointFilePath

Der Pfad für die Prüfpunktdatei, die während der Wiederherstellung verwendet werden soll, wenn szTargetInstanceCheckpointPath nicht angegeben ist oder bereits eine aktive oder ausgeführte instance enthält.

szLogPath

Der Pfad oder das Verzeichnis für die Protokolle für die letzte Phase (Rückgängig) der Wiederherstellung und möglicherweise für die Roll forward-Protokolle. Dieser Pfad kann mit szBackupLogPath identisch sein.

rgrstmap

Dies ist ein Array von JET_RSTMAP Strukturen. Dies ist eine Zuordnung alter und neuer Datenbankpfade oder Dateinamen. Dies wird verwendet, da die Datenbanken möglicherweise an einem anderen Speicherort als dem Speicherort wiederhergestellt werden müssen, von dem aus sie gesichert wurden. Wenn mehrere Datenbanken an einen einzelnen Protokollierungssatz angefügt sind, kann die Wiederherstellungszuordnung eine Teilmenge der wiederherzustellenden Datenbanken angeben.

crstfilemap

Die Anzahl der Einträge im rgrstmap-Arrayparameter .

szBackupLogPath

Der Pfad zu dem Verzeichnis, in dem die Protokolldateien wiederhergestellt werden. Dies sind die Protokolle, die während der externen Sicherungssequenz gelesen wurden. Dieser Pfad kann mit dem szLogPath identisch sein.

genLow

Die niedrigste Protokolldateinummer, die von szBackupLogPath wiedergegeben werden soll. Die vollständige Genauigkeit eines nicht signierten Long-Werts sollte beibehalten werden, aber in aktuellen Versionen des Moduls ist diese Zahl eine hexadezimale Zahl im Bereich von 0x00000 bis 0xFFFFF. Dies kann sich in zukünftigen Versionen ändern.

genHigh

Die höchste Protokolldateinummer, die von szBackupLogPath wiedergegeben werden soll. Die vollständige Genauigkeit eines nicht signierten Long-Werts sollte beibehalten werden, aber in den aktuellen Versionen des Moduls ist diese Zahl eine hexadezimale Zahl im Bereich von 0x00000 bis 0xFFFFF. Dies kann sich in zukünftigen Versionen ändern.

pfn

Der status Rückruf, um den Fortschritt der Wiederherstellung zu melden.

Rückgabewert

Diese Funktion gibt den JET_ERR-Datentyp 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_errOutOfMemory

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

JET_errInvalidParameter

Einer der bereitgestellten Parameter enthielt einen unerwarteten Wert oder einen Wert, der in Kombination mit dem Wert eines anderen Parameters nicht sinnvoll war. Dies kann für JetExternalRestore usw. auftreten, wenn szTargetCheckpointPath und szTargetInstanceLogPath entweder nicht beide angegeben oder nicht beide nicht angegeben sind. Das heißt, sie müssen übereinstimmen und beide angegeben oder beide nicht angegeben sein.

JET_errDatabaseCorrupted

Dies gibt an, dass die Datenbank beschädigt oder eine nicht erkannte Datei war.

JET_errFileNotFound

Der Vorgang ist fehlgeschlagen, da die angeforderte Datei nicht geöffnet werden konnte, da sie im angegebenen Pfad nicht gefunden werden konnte.

JET_errInvalidPath

Fehler beim Vorgang, weil der angegebene Pfad nicht gefunden werden konnte.

JET_errRestoreOfNonBackupDatabase

Dieser Fehler wird zurückgegeben, wenn die während der Wiederherstellung angegebene Datenbankdatei keine Datenbank ist, die mit einer externen Sicherung gesichert wurde.

JET_errStartingRestoreLogTooHigh

Dieser Fehler wird zurückgegeben, wenn eine der Protokolldateien in szBackupLogPath eine Protokollgenerierung unterhalb der durch genLow oder pLogInfo.ulGenLow angegebenen Protokollgenerierung aufweist.

JET_errEndingRestoreLogTooLow

Dieser Fehler wird zurückgegeben, wenn eine der Protokolldateien im szBackupLogPath über eine Protokollgenerierung verfügt, die in genHigh oder pLogInfo.ulGenHigh angegeben ist.

JET_errBadRestoreTargetInstance

Der angegebene szTargetInstanceLogPath gehört nicht zu einer initialisierten instance. Dieser Fehler wird nur in Windows XP und höher zurückgegeben.

JET_errRunningInOneInstanceMode

Die Datenbank-Engine kann keine externe Wiederherstellung oder harte Wiederherstellung im Einzelmodus instance ausführen. Dieser Fehler wird nur in Windows XP und höher zurückgegeben.

Bei Erfolg werden alle Datenbanken aus der rgrstmap vollständig wiederhergestellt und befinden sich in einem sauber oder konsistenten Zustand. An diesem Punkt kann die Datenbank wieder in eine vorhandene instance eingebunden werden.

Bei einem Fehler konnte die Engine die Datenbank nicht wiederherstellen. Die Datenbank befindet sich in einem ungültigen Zustand, und um die harte Wiederherstellung wiederholen zu können, muss die gesamte Datenbank erneut wiederhergestellt werden. In der Regel ist die Ursache einer solchen Situation datenträger- oder protokollbeschädigung, eine andere Form von Protokollfehlern oder ein nicht fortlaufender Protokollsatz.

Bemerkungen

Um zu verstehen, wie eine "harte" Wiederherstellung funktioniert, müssen Sie verstehen, dass es drei Wiederherstellungsphasen gibt, und die zweite Phase kann zwei Teile haben. In Phase I sind Protokolle erforderlich, um eine gesicherte Datenbank auf Konsistenz zu bringen (oder eine erste Gruppe von inkrementellen Protokollen kann verwendet werden). In Phase II werden alle zusätzlichen verfügbaren Roll forward-Protokolle verwendet, um die Datenbank konsistent zu machen. Es gibt auch eine Wiedergabe der zusätzlichen Roll forward-Protokolle. Phase III ist die Rückgängig-Phase der Wiederherstellung.

Phase I: Die Wiedergabe des Datensatzes, der wiederhergestellt werden muss, damit die Datenbank in einen konsistenten Zustand (oder einen anfänglichen Satz von Protokolldateien) versetzt wird, wird ausgeführt. Im Grunde ist dies die Wiedergabe der Protokolldateien, die für die wiederhergestellten Datenbanken nicht optional sind. Wenn Protokolle aus diesem Protokollbereich fehlen, schlägt die Wiederherstellung fehl. Diese Protokolle sollten in das verzeichnis eingefügt werden, das im szBackupLogPath-Parameter angegeben ist.

Phase II: Optional kann es einige Sätze von Protokolldateien geben, die Roll forward-Protokolldateien sind, die aus inkrementellen oder differenziellen Sicherungen und aus den Protokolldateien eines aktiven instance stammen. Bei Protokolldateien aus inkrementellen oder differenziellen Sicherungen können die Protokolldateien in den Verzeichnissen platziert werden, die in den Parametern szBackupLogPath oder szTargetInstanceLogPath angegeben sind, wobei ersteres das empfohlene Verzeichnis ist. Die Protokolle, die für die Roll Forward-Phase (Phase II) verwendet werden, sollten aus der gleichen Reihe von Protokollen stammen, die während Phase I wiedergegeben werden, und sollten kontinuierlich inkrementierende Protokollnummern ohne Lücken aus den Phase-I-Protokollen aufweisen. Um eine Datenbank wiederzugeben, die mit den Protokolldateien, die derzeit von einem aktiven instance verwendet werden, vollständig auf dem neuesten Stand ist, müssen die Parameter szTargetInstanceLogPath und szTargetInstanceCheckpointPath angegeben werden. Dies kann auch erfolgen, wenn andere Datenbanken an diesen Protokollsatz angefügt sind.

Phase III: In der letzten Phase der Wiederherstellung werden alle nicht festgeschriebenen Transaktionen zurückgesetzt, was das Generieren neuer Protokolldateien und das Aktualisieren der Prüfpunktdatei erfordert. Diese Phase wird manchmal als "Rückgängig" bezeichnet. Der in dieser Phase zu verwendende Prüfpunktdateipfad ist der Pfad, der dem Protokollspeicherort der Phase III entspricht. Das heißt, wenn szLogPath für Phase III verwendet wird, wird szCheckpointFilePath verwendet, wenn szTargetInstanceLogPath für Phase III der Wiederherstellung szTargetInstanceCheckpointPath verwendet wird.

Verwenden Sie dieses Flussdiagramm, um zu verstehen, wie die Pfade funktionieren:

ESE_Documentation_ese1

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.

Unicode

Implementiert als JetExternalRestoreW (Unicode) und JetExternalRestoreA (ANSI).

Weitere Informationen

JET_ERR
JET_PFNSTATUS
JET_RSTMAP
JET_LOGINFO
JetBeginExternalBackup
JetInit