Panoramica dell'inizializzazione del backup

Questa fase del backup inizializza sia il writer che il richiedente, compilando le relative strutture di dati interne, specificando il backup e stabilisce la comunicazione writer/richiedente tramite la chiamata richiesta a IVssBackupComponents::GatherWriterMetadata. Per altre informazioni, vedere Panoramica dell'elaborazione di un backup in VSS.

La tabella seguente illustra la sequenza di azioni ed eventi necessari per l'inizializzazione del backup.

Azione richiedente Evento Azione writer
Crea un'interfaccia IVssBackupComponents e la inizializza per gestire un backup (vedere CreateVssBackupComponents, IVssBackupComponents::InitializeForBackup) e facoltativamente abilitare o disabilitare i writer nel sistema. Nessuno Nessuno
Facoltativamente, impostare il contesto per le operazioni di copia shadow e, facoltativamente, eseguire una query sul sistema sui provider e sulle copie shadow supportate. Vedere IVssBackupComponents::SetContext, IVssBackupComponents::Query. Nessuno Nessuno
Il richiedente può fornire informazioni aggiuntive sulla gestione delle operazioni di backup e ripristino (vedere IVssBackupComponents::SetBackupState) Nessuno Nessuno
Avvia un contatto asincrono con writer (vedere IVssBackupComponents::GatherWriterMetadata) Identificare Crea un documento di metadati writer (vedere Utilizzo del documento metadati writer, CVssWriter::OnIdentify, IVssCreateWriterMetadata)

 

Azioni del richiedente durante l'inizializzazione del backup

Un oggetto IVssBackupComponents può essere usato per un solo backup. Pertanto, un richiedente deve procedere fino alla fine del backup, incluso il rilascio dell'interfaccia IVssBackupComponents . Se il backup deve terminare in modo anomalo, il richiedente deve chiamare IVssBackupComponents::AbortBackup e quindi rilasciare l'oggetto IVssBackupComponents (vedere Interruzione delle operazioni VSS per altre informazioni). Non tentare di riprendere l'interfaccia IVssBackupComponents .

In genere, il documento dei componenti di backup di un richiedente viene inizializzato come vuoto. Un documento dei componenti di backup archiviato può essere caricato quando viene chiamato IVssBackupComponents::InitializeForBackup , in genere a supporto dei volumi copiati da ombreggiatura trasportabili. In questo caso, la comunicazione del richiedente del writer sarà leggermente diversa da quella descritta di seguito. Per altre informazioni, vedere Importazione di volumi copiati shadow trasportabili .

Per aggiungere volumi al set di copie shadow, un richiedente deve prima impostare il contesto per l'operazione di copia shadow chiamando IVssBackupComponents::SetContext. Se questo metodo non viene chiamato, viene utilizzato il contesto predefinito per le copie shadow, VSS_CTX_BACKUP. Per informazioni sull'impostazione del contesto di copia shadow, vedere Shadow Copy Context Configurations.For information about setting the shadow copy context configurations, see Shadow Copy Context Configurations.

Per iniziare il completamento della configurazione prima del backup, un richiedente deve chiamare IVssBackupComponents::SetBackupState. In questo modo, un richiedente indica ai writer:

  • Tipo di backup (come definito in VSS_BACKUP_TYPE)
  • Indica se il backup include uno stato del sistema di avvio
  • Indica se il richiedente supporta la selezione di singoli componenti o esegue il backup di interi volumi.

Tutti i richiedenti che partecipano alle operazioni di backup e ripristino devono sempre chiamare IVssBackupComponents::GatherWriterMetadata. Questo metodo avvia la comunicazione writer-requester generando un evento VSS Identify , in risposta al quale un writer crea il documento di metadati.

Prima di chiamare IVssBackupComponents::GatherWriterMetadata, un richiedente ha la possibilità di abilitare o disabilitare in modo esplicito determinate classi writer e writer specifiche usando IVssBackupComponents::EnableWriterClasses, IVssBackupComponents::D isableWriterInstances e IVssBackupComponents::D isableWriterClasses (per impostazione predefinita, tutte le classi sono abilitate). Dopo la chiamata di IVssBackupComponents::GatherWriterMetadata , queste chiamate non hanno alcun effetto.

Poiché non è possibile ottenere un elenco di writer nel sistema prima di chiamare IVssBackupComponents::GatherWriterMetadata, i richiedenti possono prendere in considerazione la creazione e quindi eliminare una seconda istanza di IVssBackupComponents per ottenere l'elenco.

Non è necessario chiamare IVssBackupComponents::GatherWriterStatus dopo il completamento di IVssBackupComponents::GatherWriterMetadata. I writer che non riescono a elaborare l'evento Identify generato dalle chiamate non faranno parte dell'elenco dei writer che forniscono i metadati trovati da IVssBackupComponents::GetWriterMetadataCount e IVssBackupComponents::GetWriterMetadata (vedere Determinazione dello stato del writer).

Azioni writer durante l'inizializzazione del backup

In risposta all'evento Identify, VSS chiama il metodo del gestore virtuale di ogni writer, CVssWriter::OnIdentify. Un writer crea il documento di metadati writer eseguendo l'override dell'implementazione predefinita di CVssWriter::OnIdentify e usando l'interfaccia IVssCreateWriterMetadata .

Si noti che le applicazioni diverse dal richiedente corrente (ad esempio, le applicazioni di sistema) possono generare gli eventi Di identificazione che devono essere gestiti dal writer. Inoltre, non è possibile consentire a un writer di determinare da CVssWriter::OnIdentify quale applicazione ha generato l'evento Identify.

In questo caso, dato che un writer può ricevere diversi eventi Di identificazione durante l'elaborazione di un'operazione di backup, un writer non deve mai impostare le informazioni sullo stato nel gestore CVssWriter::OnIdentify .

Al contrario, CVssWriter::OnIdentify deve eseguire un algoritmo coerente per creare il documento metadati writer del writer, in particolare perché dopo che un writer crea il documento, né il richiedente né il writer può modificarlo. Da questo punto in poi, si tratta di un documento di sola lettura.

Ciò significa che il numero e il tipo di componenti associati a un writer, che fanno parte di ogni componente e l'esclusione esplicita dei file dalle operazioni di backup o ripristino non può essere modificata dopo che un writer restituisce l'elaborazione dell'evento Identify.

Per eseguire le operazioni seguenti, tutti i writer che partecipano a VSS sono necessari:

  1. Indicare un metodo di ripristino per tutti i componenti gestiti dal writer usando IVssCreateWriterMetadata::SetRestoreMethod.
  2. Aggiungere almeno un componente usando IVssCreateWriterMetadata::AddComponent (vedere Definizione dei componenti per writer per altre informazioni sulla specifica del componente).

Un writer indica i file da partecipare a un'operazione di backup o ripristino aggiungendo set di file, ovvero una combinazione di percorso, specifica di file e un flag di ricorsione, a un determinato componente tramite IVssCreateWriterMetadata::AddFilesToFileGroup, IVssCreateWriterMetadata::AddDatabaseFiles o IVssCreateWriterMetadata::AddDatabaseLogFiles, a seconda del tipo (vedere Aggiunta di file ai componenti).

Un writer può anche avere uno o più componenti vuoti, componenti a cui non sono stati aggiunti file. Questi sono molto utili per organizzare i componenti del writer. Vedere Percorso logico dei componenti.

Un writer usa IVssCreateWriterMetadata::AddExcludeFiles per impedire esplicitamente l'inserimento dei file nel backup. Questa esclusione esplicita è utile perché i caratteri jolly possono essere usati per specificare i file per l'inclusione (vedere Escludere la specifica dell'elenco di file). Si noti che l'elenco di file di esclusione ha la precedenza sugli elenchi di file dei componenti.

IVssCreateWriterMetadata::AddAlternateLocationMapping viene usato per creare mapping di percorsi alternativi per i set di file specificati aggiunti a uno dei componenti del writer. Questi mapping vengono usati durante il ripristino dei file durante il ripristino nel percorso originale di un file non è possibile o auspicabile. Vedere Panoramica del ripristino effettivo dei file e deipercorsi di backup e ripristino non predefiniti.

Poiché il set di file di backup viene specificato nel documento di metadati writer, non può essere modificato in un secondo momento. Pertanto, un writer deve essere codificato in modo che la definizione del set di file includa tutti i file necessari nel backup, in base al nome o ai caratteri jolly. Ciò può includere alcuni file che potrebbero essere creati dopo l'evento Identify.