Funzione JetBeginExternalBackup
Si applica a: Windows | Windows Server
Funzione JetBeginExternalBackup
La funzione JetBeginExternalBackup avvia un backup esterno mentre il motore e il database sono online e attivi. JetBeginExternalBackup è il primo in una serie di funzioni che devono essere chiamate per eseguire un backup online (non basato su VSS).
È possibile usare un backup esterno per implementare backup completi, incrementali o differenziali.
Il backup sarà fuzzy, in quanto il backup sarà coerente a un singolo punto nel tempo nella cronologia delle transazioni, ma il controllo del punto esatto nel tempo non è possibile.
JET_ERR JET_API JetBeginExternalBackup(
__in JET_GRBIT grbit
);
Parametri
grbit
Gruppo di bit che specificano zero o più delle opzioni seguenti.
Valore |
Significato |
---|---|
JET_bitBackupAtomic |
Questo flag è deprecato. L'utilizzo di questo bit comporterà la restituzione di JET_errInvalidgrbit. |
JET_bitBackupIncremental |
Crea un backup incrementale anziché un backup completo. Ciò significa che verrà eseguito il backup solo dei file di log dall'ultimo backup completo o incrementale. |
JET_bitBackupSnapshot |
Riservato per utilizzi futuri. Definito per Windows XP. |
Valore restituito
Questa funzione restituisce il tipo di dati JET_ERR con uno dei codici restituiti seguenti. Per altre informazioni sui possibili errori ESE, vedere Errori del motore di archiviazione estendibile e parametri di gestione degli errori.
Codice restituito |
Descrizione |
---|---|
JET_errSuccess |
Operazione riuscita. |
JET_errBackupInProgress |
Se è già in corso un backup di backup o snapshot esterno, questo errore verrà restituito fino a quando non viene chiamato JetBeginExternalBackup (o una delle varianti). ESE consente un solo backup online alla volta. |
JET_errBackupNotAllowedYet |
L'istanza o il motore di database è in fase di ripristino o chiusura. |
JET_errCheckpointCorrupt |
In un backup completo il file del checkpoint non è stato possibile leggere o non è stato possibile verificare il file. |
JET_errCheckpointFileNotFound |
In un backup completo il file del checkpoint non è stato trovato. |
JET_errClientRequestToStopJetService |
L'operazione non può essere completata perché tutte le attività nell'istanza associata alla sessione sono cessate a seguito di una chiamata a JetStopService. |
JET_errInstanceUnavailable |
Impossibile completare l'operazione perché l'istanza associata alla sessione ha rilevato un errore irreversibile che richiede la revoca dell'accesso a tutti i dati per proteggere l'integrità dei dati. Windows XP: Questo valore restituito viene introdotto in Windows XP. |
JET_errInvalidBackup |
La registrazione circolare è abilitata e il tipo di backup specificato è JET_bitBackupIncremental. Per informazioni su come controllare la registrazione circolare o non circolare, vedere JET_paramCircularLog negli errori del log delle transazioni . |
JET_errInvalidgrbit |
Uno o più membri grbit non sono validi. |
JET_errLoggingDisabled |
Il ripristino o la registrazione è disabilitato. Non è possibile eseguire un backup online se la registrazione è disabilitata. Per altre informazioni sulla registrazione e il ripristino, vedere JET_paramRecovery. |
JET_errLogWriteFail |
Il motore ha smesso di scrivere nell'unità di log, a causa di errori di I/O del disco completi o del disco. |
JET_errMissingFullBackup |
Il backup incrementale è stato specificato (con JET_bitBackupIncremental) e non è mai stato eseguito un backup completo per uno dei database collegati per il set di registrazione. |
JET_errNotInitialized |
Impossibile completare l'operazione perché l'istanza associata alla sessione non è ancora stata inizializzata. |
JET_errOutOfMemory |
L'operazione non è riuscita perché non è possibile allocare memoria sufficiente per completarla. |
JET_errRestoreInProgress |
Impossibile completare l'operazione perché è in corso un'operazione di ripristino nell'istanza associata alla sessione. |
JET_errRunningInMultiInstanceMode |
L'operazione non è riuscita perché è stato effettuato un tentativo di utilizzo del motore in modalità legacy (modalità di compatibilità di Windows 2000), in cui è supportata solo un'istanza quando esistono effettivamente più istanze. |
JET_errTermInProgress |
Impossibile completare l'operazione perché l'istanza associata alla sessione viene arrestata. |
Se la funzione ha esito positivo, viene avviato un backup esterno e il motore di stato di backup viene inizializzato. È ora possibile chiamare le API successive per completare la sequenza di backup esterna e trasmettere o leggere il file di database, il file patch del database (se supportato) e il file di log. È possibile registrare un evento che indica che è stato avviato un backup esterno.
Se la funzione ha esito negativo, la sessione di backup non verrà avviata. Se è in corso un'altra sessione di backup, non verrà annullata.
Commenti
Il processo di backup esterno (avviato da JetBeginExternalBackup) è progettato per consentire un backup online della transazione fuzzy dell'intera istanza in un dispositivo di destinazione come flusso. Il backup conterrà tutti i file di database collegati all'istanza usando JetAttachDatabase (per un backup completo), seguiti dai file di patch di database associati (se supportati) e infine dai file di log delle transazioni generati durante il processo di backup. Il risultato finale sarà un set di file che possono essere ripristinati dal flusso, possibilmente combinati con i file di database e di log esistenti e infine ripristinati in uno stato coerente.
L'ordine generale delle operazioni per un backup completo è costituito dalle chiamate seguenti. In primo luogo, JetBeginExternalBackup viene chiamato per avviare il processo di backup. Viene quindi chiamato JetGetAttachInfo per ottenere l'elenco dei database collegati all'istanza di di cui è necessario eseguire il backup. Per ognuno di questi database, JetOpenFile viene chiamato, seguito da una serie di chiamate JetReadFile e quindi da una chiamata a JetCloseFile. Viene quindi chiamato JetGetLogInfo per ottenere un elenco di file di log e patch di database di cui eseguire il backup. Per ognuno di questi file vengono effettuate un'altra sequenza di chiamate JetOpenFile, JetReadFile e JetCloseFile . Tutti i file di log delle transazioni indesiderati vengono quindi eliminati usando JetTruncateLog. Infine, il backup viene terminato da una chiamata a JetEndExternalBackup.
È anche possibile modificare questo set di passaggi per eseguire un backup incrementale dell'istanza. Un backup incrementale enumera e esegue il backup dei file di log. I backup incrementali sono possibili solo se la registrazione circolare non è abilitata.
È anche possibile modificare questo set di passaggi per consentire l'esecuzione di backup differenziali successivi dell'istanza. Per eseguire un backup differenziale, non chiamare JetTruncateLog nel backup completo o incrementale precedente. Non chiamando JetTruncateLog, si abilitano i backup successivi per essere differenziali rispetto all'ultimo backup completo o incrementale. I backup differenziali sono possibili solo se la registrazione circolare non è abilitata.
Il file patch del database è un file ausiliario speciale usato per archiviare le immagini di pagine del database in determinate circostanze durante il backup. Questo file deve essere presente nella stessa posizione del database associato durante un'operazione di ripristino. Questo file viene usato solo in Windows 2000. Di conseguenza, qualsiasi applicazione scritta per funzionare con Windows 2000 e altre versioni deve supportare i file patch del database, se presenti, ma anche non deve avere esito negativo se non sono presenti.
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. |
Vedere anche
JET_ERR
JET_GRBIT
JET_INSTANCE
JetAttachDatabase
JetBeginExternalBackupInstance
JetCloseFile
JetEndExternalBackup
JetEndExternalBackupInstance2
JetGetAttachInfo
JetGetLogInfo
JetOpenFile
JetReadFile
JetStopBackup
JetTruncateLog