Condividi tramite


Funzione JetRestore2

Si applica a: Windows | Windows Server

Funzione JetRestore2

JetRestore2 ripristina e ripristina un backup di streaming di un'istanza, inclusi tutti i database collegati. Questa funzione è principalmente per la compatibilità con le versioni precedenti con i motori di database windows 2000 e precedenti, in cui è consentita solo un'istanza di un database. In questo caso, l'istanza attiva è l'istanza ripristinata.

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

Parametri

Sz

Cartella in cui si trova il backup. Il backup deve essere stato generato usando le API JetBackup .

szDest

Nome della cartella in cui verranno copiati e ripristinati i file di database del set di backup. Se si imposta su NULL (ovvero il caso per JetRestore legacy), i file di database verranno copiati e ripristinati nel percorso originale.

Pfn

Puntatore facoltativo alla funzione che verrà chiamata come informazioni di notifica sullo stato di avanzamento dell'operazione di ripristino.

Valore restituito

Questa funzione restituisce il tipo di dati JET_ERR con uno dei codici restituiti seguenti. Per altre informazioni sugli errori ESE possibili, vedere Errori del motore di archiviazione estendibili e parametri di gestione degli errori.

Codice restituito

Descrizione

JET_errSuccess

Operazione riuscita.

JET_errAlreadyInitialized

Operazione non riuscita perché il motore è già inizializzato per questa istanza.

JET_errInvalidLogSequence

Il set di file di log dal set di backup e dal percorso del log corrente non corrisponde.

JET_errInvalidParameter

Uno dei parametri forniti contiene un valore imprevisto o contiene un valore che non ha senso quando si combina con il valore di un altro parametro. Questo errore verrà restituito da JetRestoreInstance quando il motore è in modalità multiistanza e la pinstance fa riferimento a un'istanza non valida di Windows XP e versioni successive.

JET_errInvalidPath

L'operazione non è riuscita perché alcuni percorsi forniti non sono validi (il percorso di backup, il percorso di destinazione, il log o il percorso di sistema per l'istanza).

JET_errPageSizeMismatch

L'operazione non è riuscita perché il motore è configurato per usare una dimensione di pagina del database (usando JetSetSystemParameter per JET_paramDatabasePageSize) che non corrisponde alle dimensioni della pagina del database usate per creare i file di log delle transazioni o i database associati ai file di log delle transazioni.

JET_errRunningInMultiInstanceMode

L'operazione non è riuscita perché i parametri in modalità singola istanza implicita (modalità di compatibilità di Windows 2000) e il motore è già in modalità multiistanza.

In caso di esito positivo, i file di database del set di backup verranno ripristinati nel percorso e il ripristino verranno eseguiti in modo che i database si troveranno in uno stato di coerenza transazionale pulito. Il ripristino eseguirà la riproduzione dei file di log dal set di backup e dei file di log dal percorso del log se tali file esistono. Questo ripristino comporta modifiche al file di checkpoint, ai file di log delle transazioni e ai database a cui fa riferimento tali file di log delle transazioni.

In caso di errore, l'istanza rimane in uno stato non inizializzato. Lo stato dei file di log delle transazioni e dei database a cui fa riferimento tali file di log delle transazioni probabilmente è stato modificato nel tentativo di inizializzare il ripristino e ripristinare i database.

Commenti

Il processo di ripristino ricostruirà i database collegati all'istanza durante il backup e salva le modifiche ai file di database. Il risultato sarà database coerenti con le transazioni. Se possibile, verrà salvato anche nel database le modifiche apportate dopo l'esecuzione del backup fino alla modifica più recente trovata nei log delle transazioni. Ciò potrebbe essere possibile se i log delle transazioni generati dal backup sono ancora presenti nella directory del log delle transazioni. Si noti che se la registrazione circolare è stata abilitata per l'istanza, i log delle transazioni generati vengono riutilizzati in modo che il ripristino possa salvare le modifiche eseguite fino al momento di backup. In qualsiasi caso, è possibile che questo processo richiede molto tempo se il numero di file di log delle transazioni da riprodurre sui database è di grandi dimensioni.

Le funzioni JetRestore devono essere chiamate in un'istanza prima che JetInit venga chiamata per tale istanza.

Poiché durante il ripristino verrà usato un numero significativo di pagine di database e log delle transazioni, è presente un'intera serie di errori che potrebbero essere restituiti da queste funzioni. Tali errori possono essere da errori temporanei di allocazione delle risorse, ad esempio Jet_errOutOfMemory a errori che rappresentano danneggiamenti fisici come JET_errReadVerifyFailure, JET_errLogFileCorrupt o JET_errBadPageLink. Questi errori sono quasi sempre causati da problemi hardware e quindi non possono essere evitati. La gestione del file si manifesterà più spesso come JET_errMissingLogFile o JET_errAttachedDatabaseMismatch o JET_errDatabaseSharingViolation o JET_errInvalidLogSequence. Questi errori sono evitabili dall'applicazione. L'applicazione deve prestare attenzione a proteggere il repository di questi file dalla manipolazione da forze esterne, ad esempio l'utente o altre applicazioni. Se l'applicazione desidera eliminare completamente un'istanza, tutti i file associati all'istanza devono essere eliminati. Questi includono il file di checkpoint, i file di log delle transazioni e tutti i file di database collegati all'istanza.

I diversi passaggi del ripristino avranno voci del registro eventi generate, tra cui lo stato di avanzamento della riproduzione del log delle transazioni e il risultato finale del ripristino.

Requisiti

Requisito Valore

Client

Richiede Windows Vista, Windows XP o Windows 2000 Professional.

Server

Richiede Windows Server 2008, Windows Server 2003 o Windows 2000 Server.

Intestazione

Dichiarato in Esent.h.

Libreria

Usare ESENT.lib.

DLL

Richiede ESENT.dll.

Unicode

Implementato come JetRestore2W (Unicode) e JetRestore2A (ANSI).

Vedere anche

JET_ERR
JET_GRBIT
JET_INSTANCE
JetBackup
JetBackupInstance
JetCreateInstance
JetInit
JetRestore
JetRestoreInstance
JetSetSystemParameter