Condividi tramite


Ripristino di backup incrementali e differenziali

Il ripristino di un backup incrementale o differenziale in VSS non è significativamente diverso da qualsiasi altra operazione di ripristino di VSS.

Un writer può modificare le destinazioni di ripristino o la destinazione diretta della richiesta e un richiedente deve gestire mapping di percorsi alternativi e nuove destinazioni, come per qualsiasi altro ripristino. Esistono tuttavia due problemi significativi da tenere presente nella gestione del ripristino di un backup incrementale o differenziale: ripristini e stamp di backup aggiuntivi.

Ripristini aggiuntivi

Il primo problema è quello dei ripristini aggiuntivi. Un operatore di backup potrebbe dover eseguire diverse operazioni di ripristino usando un supporto di backup incrementale o differenziale iniziale e successivo come origine.

Alcuni writer, in genere come parte della gestione di un evento PostRestore usando CVssWriter::OnPostRestore, usano i file ripristinati per eseguire gli aggiornamenti dei dati attualmente presenti su disco. Per alcuni di questi writer è inefficiente o pericoloso, aggiornare ripetutamente i dati su disco dai file ripristinati.

È pertanto importante che le applicazioni di backup indichino quando un set di componenti o componenti può richiedere i ripristini successivi chiamando IVssBackupComponents::SetAdditionalRestores.

Un writer chiamerebbe IVssComponent::GetAdditionalRestores per determinare se l'operatore di backup ha pianificato più ripristini del componente o del set di componenti.

Se il richiedente non ha chiamato IVssBackupComponents::SetAdditionalRestores, IVssComponent::GetAdditionalRestores restituisce false e il writer può eseguire qualsiasi elaborazione post-ripristino da eseguire.

Se sono stati chiamati IVssBackupComponents::SetAdditionalRestores, iVssComponent::GetAdditionalRestores restituisce true e un writer deve decidere come gestire le operazioni di post-ripristino, ad esempio, il writer potrebbe scegliere di non aggiornare i dati su disco.

Stamp di backup

Nell'ambito dell'operazione di backup completa precedente, un writer potrebbe aver archiviato un timbro di backup nel documento Componenti di backup del richiedente.

Il timbro di backup viene archiviato come stringa e il relativo formato e le informazioni non sono comprensibili per il richiedente. Pertanto, il richiedente non può usare direttamente le informazioni sul timbro di backup.

L'attività consiste invece nel rendere disponibili tali informazioni al writer chiamando il metodo IVssBackupComponents::SetPreviousBackupStamp prima della generazione di un evento PrepareForBackup per un backup incrementale.

Il richiedente esegue questa operazione su base componente. Un richiedente esamina le informazioni sul backup del componente o del componente archiviate usando IVssComponent::GetBackupStamp.

Se le informazioni sul timbro di backup sono appropriate per il tipo di ripristino del richiedente, lo rende disponibile come timestamp dell'ultimo backup di un componente con il metodo IVssBackupComponents::SetPreviousBackupStamp .

Un writer recupera le informazioni sul timbro di backup usando IVssComponent::GetPreviousBackupStamp. Un writer di questa classe ha generato il timbro di backup iniziale, quindi il writer è in grado di decodificare questo stampo e usare le informazioni. In base a questo problema, durante la gestione di un evento PreRestore , un writer può scegliere di eseguire azioni come la modifica delle destinazioni di ripristino o la richiesta di destinazione diretta.