JetRestore-Funktion

Gilt für: Windows | Windows Server

JetRestore-Funktion

Die JetRestore-Funktion stellt eine Streamingsicherung einer Instanz einschließlich aller angefügten Datenbanken wieder her und stellt sie wieder her. Diese Funktion dient in erster Linie der Abwärtskompatibilität mit Windows 2000 und früheren Datenbank-Engines, bei denen nur eine Instanz einer Datenbank zulässig ist. In diesem Fall ist die aktive Instanz die Instanz, die wiederhergestellt wird. Mit JetRestore kann der Speicherort für die wiederhergestellten Datenbanken nicht angegeben werden.

JET_ERR JET_API JetRestore(
  __in          JET_PCSTR sz,
  __in          JET_PFNSTATUS pfn
);

Parameter

Sz

Der Ordner, in dem sich die Sicherung befindet. Die Sicherung sollte mithilfe der JetBackup-Funktion generiert worden sein.

pfn

Der optionale Zeiger auf die Funktion, die als Benachrichtigungsinformationen zum Fortschritt des Wiederherstellungsvorgangs aufgerufen wird.

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_errAlreadyInitialized

Fehler beim Vorgang, weil die Engine bereits für diese Instanz initialisiert wurde.

JET_errInvalidLogSequence

Die Protokolldateien aus dem Sicherungssatz und dem aktuellen Protokollpfad stimmen nicht überein.

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.

JET_errInvalidPath

Der Vorgang ist fehlgeschlagen, weil einige der bereitgestellten Pfade ungültig sind (der Sicherungspfad, der Zielpfad, der Protokoll- oder Systempfad für die Instanz).

JET_errPageSizeMismatch

Fehler beim Vorgang, weil die Engine für die Verwendung einer Datenbankseitengröße (mit JetSetSystemParameter für JET_paramDatabasePageSize)konfiguriert ist, die nicht mit der Datenbankseitengröße übereinstimmt, die zum Erstellen der Transaktionsprotokolldateien oder der Datenbanken verwendet wird, die den Transaktionsprotokolldateien zugeordnet sind.

JET_errRunningInMultiInstanceMode

Fehler beim Vorgang, weil die Parameter den Einzelinstanzmodus (Windows 2000-Kompatibilitätsmodus) impliziert haben und sich die Engine bereits im Modus mit mehreren Instanzen befindet.

Bei Erfolg werden Datenbankdateien aus dem Sicherungssatz an ihrem Speicherort wiederhergestellt, und die Wiederherstellung wird so ausgeführt, dass sich die Datenbanken in einem bereinigten Transaktionskonsistenzzustand befinden. Bei der Wiederherstellung werden die Protokolldateien aus dem Sicherungssatz und die Protokolldateien aus dem Protokollpfad wiedergegeben, sofern diese Dateien vorhanden sind. Diese Wiederherstellung führt zu Änderungen an der Prüfpunktdatei, den Transaktionsprotokolldateien und allen Datenbanken, auf die von diesen Transaktionsprotokolldateien verwiesen wird.

Bei einem Fehler verbleibt die Instanz in einem nicht initialisierten Zustand. Der Status der Transaktionsprotokolldateien und aller Datenbanken, auf die von diesen Transaktionsprotokolldateien verwiesen wird, wurde wahrscheinlich beim Versuch, die Wiederherstellung und Wiederherstellung der Datenbanken zu initialisieren, geändert.

Hinweise

Der Wiederherstellungsprozess rekonstruiert die Datenbanken, die während der Sicherung an die Instanz angefügt wurden, und speichert die Änderungen wieder in den Datenbankdateien. Das Ergebnis sind Datenbanken, die transaktionskonsynt sind. Nach Möglichkeit werden auch die Änderungen, die seit der Sicherung vorgenommen wurden, bis zur letzten Änderung in den Transaktionsprotokollen in der Datenbank gespeichert. Dies ist möglich, wenn die seit der Sicherung generierten Transaktionsprotokolle weiterhin im Transaktionsprotokollverzeichnis vorhanden sind. Beachten Sie, dass die generierten Transaktionsprotokolle wiederverwendet werden, wenn die zirkuläre Protokollierung für die Instanz aktiviert wurde, sodass die Wiederherstellung die Änderungen speichern kann, die bis zum Zeitpunkt der Sicherung vorgenommen wurden. In jedem Fall kann dieser Vorgang einige Zeit in Anspruch nehmen, wenn die Anzahl der Transaktionsprotokolldateien, die für die Datenbanken wiedergegeben werden sollen, groß ist.

JetRestore-Funktionen müssen für eine Instanz aufgerufen werden, bevor JetInit für diese Instanz aufgerufen wird.

Da während der Wiederherstellung eine erhebliche Anzahl von Datenbankseiten und Transaktionsprotokollen verwendet wird, gibt es eine ganze Reihe von Fehlern, die von diesen Funktionen zurückgegeben werden können. Solche Fehler können von temporären Ressourcenzuordnungsfehlern wie Jet_errOutOfMemory bis hin zu Fehlern, die physische Beschädigungen wie JET_errReadVerifyFailure, JET_errLogFileCorrupt oder JET_errBadPageLink darstellen, auftreten. Diese Fehler werden fast immer durch Hardwareprobleme verursacht und können daher nicht vermieden werden. Dateifehler treten am häufigsten als JET_errMissingLogFile oder JET_errAttachedDatabaseMismatch oder JET_errDatabaseSharingViolation oder JET_errInvalidLogSequence auf. Diese Fehler können von der Anwendung verhindert werden. Die Anwendung muss darauf achten, das Repository dieser Dateien vor manipulation durch externe Zwingen wie den Benutzer oder andere Anwendungen zu schützen. Wenn die Anwendung eine Instanz vollständig zerstören möchte, müssen alle der Instanz zugeordneten Dateien gelöscht werden. Dazu gehören die Prüfpunktdatei, die Transaktionsprotokolldateien und alle Datenbankdateien, die an die Instanz angefügt sind.

Für die verschiedenen Schritte der Wiederherstellung werden Ereignisprotokolleinträge generiert, einschließlich des Fortschritts der Transaktionsprotokollwiedergabe und des Endergebnisses der Wiederherstellung.

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

Deklariert in Esent.h.

Bibliothek

Verwenden Sie ESENT.lib.

DLL

Erfordert ESENT.dll.

Unicode

Implementiert als JetRestoreW (Unicode) und JetRestoreA (ANSI).

Weitere Informationen

JET_ERR
JET_GRBIT
JET_INSTANCE
JetBackup
JetBackupInstance
JetCreateInstance
JetSetSystemParameter