Ruolo richiedente nei backup incrementali e differenziali vss

Per supportare un'operazione di backup incrementale o differenziale , un richiedente deve eseguire le operazioni seguenti:

  1. Determinare il livello di supporto del writer disponibile (usando IVssBackupComponents::GetWriterMetadata per ottenere l'accesso alle informazioni nei documenti dei metadati del writer), in particolare determinare lo schema di backup supportato (VSS_BACKUP_SCHEMA).
  2. Impostare uno stato di backup appropriato.
  3. Ottenere specifiche a livello di file e set di file per un backup incrementale o differenziale.
  4. Eseguire il backup.

Determinazione del richiedente del supporto incrementale e differenziale e della configurazione

Un richiedente deve ottenere informazioni sul supporto del writer prima di selezionare i componenti per l'inclusione in un backup incrementale o differenziale o impostarne il proprio stato.

Determinazione del supporto del writer

Un richiedente determina se un determinato writer supporta backup incrementali o differenziali vss recuperando la maschera dello schema di backup del writer usando il metodo IVssExamineWriterMetadata::GetBackupSchema .

La maschera dello schema di backup di un writer che supporta le tecniche incrementali o differenziali di VsS conterrà VSS_BS_INCREMENTAL o VSS_BS_DIFFERENTIAL o entrambe. I writer possono anche indicare restrizioni sulla loro partecipazione con il flag VSS_BS_EXCLUSIVE_INCREMENTAL_DIFFERENTIAL . Per altre informazioni sugli schemi di backup, vedere VSS_BACKUP_SCHEMA .

Impostazione dello stato di backup del richiedente

Un richiedente indica che un backup è un backup incrementale o differenziale impostando un tipo di backup su VSS_BT_INCREMENTAL o VSS_BT_DIFFERENTIAL usando il metodo IVssBackupComponents::SetBackupState prima di generare un evento PrepareForBackup .

Il metodo IVssBackupComponents::SetBackupState viene usato anche per indicare se il richiedente fornisce supporto parziale dei file, che viene spesso usato per implementare determinate operazioni di backup e ripristino incrementali.

Recupero delle specifiche del writer per i backup incrementali e differenziali

Le informazioni sulle specifiche di backup dei file a livello di set di file (VSS_FILE_SPEC_BACKUP_TYPE) contenute nel documento di metadati writer di ogni writer sono disponibili per l'esame dopo il corretto ritorno di IVssBackupComponents::GatherWriterMetadata.

Tuttavia, un writer può aggiungere file con differenze o richiedere supporto per file parziali fino a quando la gestione dell'evento PostSnapshot ha esito positivo.

Le specifiche di supporto di file e file parziali possono eseguire l'override del tipo di backup delle specifiche del file, pertanto i richiedenti possono voler rinviare un'analisi completa di tutte le specifiche del writer sui backup incrementali e differenziali fino a quando non viene restituito correttamente IVssBackupComponents::P repareForBackup.

Recupero delle informazioni sulle specifiche di backup dei file

Le informazioni sulle specifiche di backup dei file a livello di set di file (VSS_FILE_SPEC_BACKUP_TYPE) sono contenute nel documento di metadati writer di ogni writer e possono essere esaminate immediatamente dopo la corretta restituzione di IVssBackupComponents::GatherWriterMetadata.

I richiedenti devono ottenere maschere di specifica di backup dei file (VSS_FILE_SPEC_BACKUP_TYPE) per ogni set di file di ognuno dei componenti di un writer da includere nel backup incrementale o differenziale, indipendentemente dal fatto che il componente sia stato incluso in modo esplicito o implicito.

Un richiedente può determinare il documento di metadati writer di writer su cui eseguire una query usando IVssBackupComponents::GetWriterComponentsCount e IVssBackupComponents::GetWriterComponents. L'istanza dell'interfaccia IVssWriterComponentsExt restituita da IVssBackupComponents::GetWriterComponents fornisce informazioni sul writer tramite il metodo IVssWriterComponentsExt::GetWriterInfo .

Il richiedente ottiene informazioni sui componenti tramite istanze dell'interfaccia IVssWMComponent corrispondente a un componente incluso gestito da un determinato writer usando IVssExamineWriterMetadata::GetComponent.

Le informazioni sui set di file gestiti dal componente corrispondente all'interfaccia IVssWMComponent vengono ottenute dalle chiamate a IVssWMComponent::GetFile, IVssWMComponent::GetDatabaseFile o IVssWMComponent::GetDatabaseLogFile (in base alle esigenze).

Queste chiamate possono restituire istanze dell'interfaccia IVssWMFiledesc per ogni set di file di un componente.

Il tipo di backup della specifica di file di un set di file viene ottenuto chiamando IVssWMFiledesc::GetBackupTypeMask.

Recupero di informazioni sui file parziali e sui file con differenze

Un richiedente ottiene informazioni su file parziali e file con differenze tramite l'interfaccia IVssComponent .

Un richiedente può scorrere tutti i writer inclusi in un backup usando IVssBackupComponents::GetWriterComponentsCount e IVssBackupComponents::GetWriterComponents.

L'istanza di un'interfaccia IVssWriterComponentsExt restituita da IVssBackupComponents::GetWriterComponents fornisce l'accesso a tutte le istanze dell'interfaccia IVssComponent corrispondente ai componenti inclusi esplicitamente di un determinato writer tramite i metodi IVssWriterComponentsExt::GetComponent e IVssWriterComponentsExt::GetComponentCount .

Un richiedente dovrà eseguire tutte le istanze di IVssComponent per tutti i writer il cui schema supporta il backup incrementale o differenziale, ovvero writer la cui maschera dello schema di backup, come restituito da IVssExamineWriterMetadata::GetBackupSchema, include VSS_BS_INCREMENTAL quando il tipo di backup è VSS_BT_INCREMENTAL o VSS_BS_DIFFERENTIAL quando il tipo di backup è VSS_BS_DIFFERENTIAL.

Le informazioni sui file parziali vengono ottenute chiamando IVssComponent::GetPartialFileCount e IVssComponent::GetPartialFile (vedere Uso di file parziali).

Per i writer che supportano le operazioni di backup sulla base degli ultimi dati di modifica di un file (writer la cui maschera dello schema di backup, come restituito da IVssExamineWriterMetadata::GetBackupSchema, include VSS_BS_LAST_MODIFY), le informazioni sui file differenze vengono ottenute chiamando IVssComponent::GetDifferencedFilesCount e IVssComponent::GetDifferencedFile.

Si noti che i file diversi possono essere nuovi file, ovvero file che non sono membri di alcun set di file attualmente nel documento di metadati writer di un determinato writer.

I richiedenti non devono trovare i file inclusi sia per le operazioni di file parziali che per i file differenze. Se un richiedente rileva tale circostanza, deve restituire e registrare un errore del writer.

Un richiedente può comunque scegliere di procedere con il backup dei file del writer problematico, ma in tal caso dovrebbe farlo in base alla specifica trovata nelle informazioni sui file differenze.

Implementazione di backup incrementali o differenziali

Prima di implementare un backup, i richiedenti devono avere informazioni sui writer che supportano un backup incrementale o differenziale , tutte le operazioni parziali richieste, tutti i file con differenze e il tipo di backup delle specifiche dei file di tutti gli altri file.

Writer non supportati

I writer il cui schema non supporta il backup incrementale o differenziale (writer la cui maschera dello schema di backup, come restituito da IVssExamineWriterMetadata::GetBackupSchema, include VSS_BS_INCREMENTAL quando il tipo di backup è VSS_BT_INCREMENTAL o non include VSS_BS_DIFFERENTIAL quando il tipo di backup è VSS_BS_DIFFERENTIAL) non può fornire supporto diretto a un'operazione di backup incrementale o differenziale.

Ciò non significa necessariamente che i dati dei writer non saranno coinvolti in un'operazione di backup incrementale o differenziale. Tuttavia, la scelta di cosa fare è a discrezione del richiedente. Il richiedente può eseguire una delle operazioni seguenti:

  • Eseguire il backup di nessun file appartenente ai writer non supportati (indicare chiaramente questo valore all'utente)
  • Eseguire il backup di tutti i file di writer non supportati
  • Eseguire un backup incrementale usando i dati del file system e i log della cronologia del richiedente.

L'ultima alternativa deve essere usata con grande attenzione e solo se il richiedente riconosce se i writer coinvolti possono supportare il backup incrementale o differenziale e il ripristino dei dati indipendentemente dal meccanismo vss.

Writer di supporto

Un richiedente deve elaborare (in ordine) tutti i file diversi di un writer, quindi gestire eventuali richieste di file parziali e quindi eseguire il backup dei file rimanenti in base al tipo di backup delle specifiche di file (VSS_FILE_SPEC_BACKUP_TYPE).

  1. Backup di file con differenze:

    Per i writer che supportano le operazioni di backup sulla base degli ultimi dati di modifica (writer la cui maschera dello schema di backup, come restituito da IVssExamineWriterMetadata::GetBackupSchema, include VSS_BS_LAST_MODIFY), un richiedente usa le informazioni sul percorso, sulla specifica del file e sul flag di ricorsione restituite da IVssComponent::GetDifferencedFile per generare un elenco di file come candidati per il backup o il ripristino incrementale.

    IVssComponent::GetDifferencedFile può restituire anche un'ora dell'ultima modifica (espressa come struttura FILETIME ).

    Se l'ora dell'ultima modifica fornita dal writer è diversa da zero, il richiedente lo usa come base (anziché le informazioni sul file system o i dati archiviati del richiedente) per determinare se il file deve essere incluso nel backup incrementale o differenziale .

    Ad esempio, se l'ora dell'ultima modifica di un file come restituito dal writer è:

    • Dopo l'ultimo backup completo, il file deve essere incluso sia nei backup incrementali che differenziali.
    • Dopo l'ultimo backup completo, ma prima dell'ultimo backup incrementale, il file deve essere incluso nelle operazioni di backup incrementale, ma non nei backup differenziali.

    Se l'ora dell'ultima modifica fornita dal writer è zero, il richiedente deve utilizzare le informazioni del file system e i propri dati archiviati per determinare l'ora di modifica del file con differenza.

  2. Utilizzo di operazioni parziali su file:

    Se un writer ha richiesto il backup di un file tramite un'operazione di file parziale, il richiedente utilizza le informazioni sull'offset del file per salvare i segmenti di file indicati nel supporto di backup. Per altre informazioni sulle operazioni parziali sui file, vedere Uso di file parziali.

    Come indicato in precedenza, un writer non deve designare un file sia come file diverso che come partecipante in un'operazione di file parziale. Se un richiedente rileva tale circostanza, deve restituire e registrare un errore del writer.

    Un richiedente può comunque scegliere di procedere con il backup dei file del writer problematico, ma in tal caso dovrebbe farlo in base alla specifica trovata nelle informazioni sui file differenze.

  3. Uso del tipo di backup delle specifiche dei file:

    Dopo aver elaborato tutti i file diversi e le operazioni parziali sui file, il richiedente ora elabora tutti i file rimanenti nel set di backup in base al tipo di backup delle specifiche del file (VSS_FILE_SPEC_BACKUP_TYPE).

    Esistono tre valori "necessari per il backup" dell'enumerazione VSS_FILE_SPEC_BACKUP_TYPE che influiscono sui backup differenziali e incrementali:

    • VSS_FSBT_ALL_BACKUP_REQUIRED
    • VSS_FSBT_INCREMENTAL_BACKUP_REQUIRED
    • VSS_FSBT_DIFFERENTIAL_BACKUP_REQUIRED

    Sono disponibili tre valori di copia shadow obbligatori:

    • VSS_FSBT_ALL_SNAPSHOT_REQUIRED
    • VSS_FSBT_INCREMENTAL_SNAPSHOT_REQUIRED
    • VSS_FSBT_DIFFERENTIAL_SNAPSHOT_REQUIRED

    I set di file contrassegnati con un tipo di backup di specifica file "copia shadow obbligatoria" indicano che un richiedente deve copiare dati da una copia shadow durante l'esecuzione di operazioni di backup INCREMENTAL, DIFFERENTIAL o ALL (che include operazioni di backup incrementali e differenziali).

    Il flag "backup obbligatorio", applicato alle operazioni di backup INCREMENTAL, DIFFERENTIAL o ALL, indica che il writer prevede che sia disponibile una copia della versione corrente del set di file dopo il ripristino di qualsiasi operazione di backup. In genere, ciò significa che se un set di file viene contrassegnato con "backup richiesto", un richiedente copia tutti i membri nel supporto di backup durante un backup incrementale o differenziale, indipendentemente dal momento in cui si è verificato il backup o la modifica dell'ultima volta.

    Per impostazione predefinita, i set di file vengono aggiunti ai componenti con un tipo di backup delle specifiche di file di VSS_FSBT_ALL_BACKUP_REQUIRED | VSS_FSBT_ALL_SNAPSHOT_REQUIRED. Pertanto, a meno che un writer non imposti in modo esplicito il tipo di backup della specifica del file in caso contrario, i richiedenti dovranno copiare tali file non gestiti da operazioni di file parziali o da file designati nella maggior parte dei set di file in genere verranno copiati nel loro intero supporto di backup.

Timbri di backup

I writer che supportano i francobolli di backup (VSS_BS_TIMESTAMP) possono scegliere di generare informazioni sullo stamp di backup da usare per supportare le future operazioni di backup incrementale e differenziale e ripristino.

Il formato e le informazioni contenute nelle stringhe contenenti le informazioni sullo stamp di backup sono private per il writer che le genera; il richiedente non sa come elaborare queste informazioni.

I writer di supporto archiviano il timbro di backup nel documento dei componenti di backup come stringa usando il metodo IVssComponent::SetBackupStamp .

Il ruolo del richiedente nella gestione delle informazioni sullo stamp di backup è (se esistente) per renderlo disponibile al writer chiamando IVssBackupComponents::SetPreviousBackupStamp in un'operazione di backup o ripristino futura.