JetRestore2-Funktion

Gilt für: Windows | Windows Server

JetRestore2-Funktion

JetRestore2 stellt eine Streamingsicherung eines instance 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 instance einer Datenbank zulässig ist. In diesem Fall ist die aktive instance die instance, die wiederhergestellt wird.

    JET_ERR JET_API JetRestore2(
      __in          JET_PCSTR sz,
      __in_opt      JET_PCSTR szDest,
      __in          JET_PFNSTATUS pfn
    );

Parameter

Sz

Der Ordner, in dem sich die Sicherung befindet. Die Sicherung sollte mithilfe der JetBackup-APIs generiert werden.

szDest

Name des Ordners, in den die Datenbankdateien aus dem Sicherungssatz kopiert und wiederhergestellt werden. Wenn dies auf NULL festgelegt ist (was bei der älteren JetRestore-Instanz der Fall ist), werden die Datenbankdateien kopiert und an ihren ursprünglichen Speicherort wiederhergestellt.

pfn

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

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_errAlreadyInitialized

Der Vorgang ist fehlgeschlagen, da die Engine bereits für diese instance 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. Dieser Fehler wird von JetRestoreInstance zurückgegeben, wenn sich die Engine im Multi-instance-Modus befindet und sich die Pinstance auf eine ungültige instance Windows XP und spätere Versionen bezieht.

JET_errInvalidPath

Der Vorgang ist fehlgeschlagen, da einige der bereitgestellten Pfade ungültig sind (sicherungspfad, zielpfad, protokoll- oder systempfad für die instance).

JET_errPageSizeMismatch

Der Vorgang ist fehlgeschlagen, da die Engine für die Verwendung einer Datenbankseitengröße (mit JetSetSystemParameter für JET_paramDatabasePageSize) konfiguriert ist, die nicht der Größe der Datenbankseite entspricht, die zum Erstellen der Transaktionsprotokolldateien oder der Datenbanken verwendet wird, die den Transaktionsprotokolldateien zugeordnet sind.

JET_errRunningInMultiInstanceMode

Der Vorgang ist fehlgeschlagen, weil die Parameter einen einzelnen instance Modus (Windows 2000-Kompatibilitätsmodus) implizierten und sich die Engine bereits im Multi-instance-Modus befindet.

Bei erfolgreicher Ausführung werden Datenbankdateien aus dem Sicherungssatz an ihrem Speicherort wiederhergestellt, und die Wiederherstellung wird so ausgeführt, dass sich die Datenbanken in einem sauber Transaktionskonsistenzzustand befinden. Bei der Wiederherstellung werden die Protokolldateien aus dem Sicherungssatz und die Protokolldateien aus dem Protokollpfad wiedergegeben, wenn solche 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 der instance in einem nicht initialisierten Zustand. Der Status der Transaktionsprotokolldateien und aller Datenbanken, auf die von diesen Transaktionsprotokolldateien verwiesen wird, wurde wahrscheinlich beim Versuch geändert, die Wiederherstellung zu initialisieren und die Datenbanken wiederherzustellen.

Bemerkungen

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

JetRestore-Funktionen müssen auf einem instance aufgerufen werden, bevor JetInit für diesen instance aufgerufen wird.

Da während der Wiederherstellung eine beträchtliche 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 auftreten, die physische Beschädigungen wie JET_errReadVerifyFailure, JET_errLogFileCorrupt oder JET_errBadPageLink darstellen. Diese Fehler werden fast immer durch Hardwareprobleme verursacht und können daher nicht vermieden werden. Dateifehler manifestieren sich am häufigsten als JET_errMissingLogFile, JET_errAttachedDatabaseMismatch oder JET_errDatabaseSharingViolation oder JET_errInvalidLogSequence. Diese Fehler können von der Anwendung verhindert werden. Die Anwendung muss darauf achten, das Repository dieser Dateien vor Manipulationen durch externe Kräfte wie den Benutzer oder andere Anwendungen zu schützen. Wenn die Anwendung eine instance vollständig zerstören möchte, müssen alle dateien, die dem instance zugeordnet sind, gelöscht werden. Dazu gehören die Prüfpunktdatei, die Transaktionsprotokolldateien und alle Datenbankdateien, die an die instance angefügt sind.

In den verschiedenen Schritten der Wiederherstellung werden Ereignisprotokolleinträge generiert, einschließlich des Wiedergabefortschritts des Transaktionsprotokolls 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.

Kopfzeile

Deklariert in Esent.h.

Bibliothek

Verwenden Sie ESENT.lib.

DLL

Erfordert ESENT.dll.

Unicode

Implementiert als JetRestore2W (Unicode) und JetRestore2A (ANSI).

Weitere Informationen

JET_ERR
JET_GRBIT
JET_INSTANCE
JetBackup
JetBackupInstance
JetCreateInstance
JetInit
JetRestore
JetRestoreInstance
JetSetSystemParameter