Panoramica della preparazione del ripristino
In preparazione di un ripristino, un richiedente usa i documenti dei metadati del writer archiviati in combinazione con il documento dei componenti di backup recuperati per determinare cosa deve essere ripristinato e come. Per altre informazioni, vedere Panoramica dell'elaborazione di un ripristino in VSS.
Dopo la selezione dei componenti candidati di ripristino, i writer attualmente in esecuzione nel sistema accedono al documento Componenti di backup del richiedente. I writer usano questo accesso per indicare come causare difficoltà minime per l'esecuzione dei servizi a causa del ripristino.
Al termine, il richiedente dispone di informazioni sufficienti per determinare quali file dovranno essere ripristinati, nonché dove e come devono essere ripristinati. Per altre informazioni, vedere Generazione di un set di ripristino.
Nella tabella seguente viene illustrata la sequenza di azioni ed eventi necessari per preparare un'operazione di ripristino.
Azione del richiedente | Evento | Azione writer |
---|---|---|
Recuperare informazioni dal documento Componenti di backup sui componenti inclusi in modo esplicito nell'operazione di backup (vedere IVssBackupComponents::GetWriterComponents) Esaminare i documenti dei metadati del writer recuperati per ottenere dettagli su tali componenti inclusi in modo esplicito nel backup e su qualsiasi ricerca implicitamente inclusa nel sottocomponente incluso in modo implicito . Vedere IVssExamineWriterMetadata, IVssWMComponent. |
Nessuno | Nessuno |
Selezionare componenti e set di componenti da ripristinare (vedere IVssBackupComponents::SetSelectedForRestore e IVssBackupComponents::AddRestoreSubcomponent. | Nessuno | Nessuno |
Il richiedente consente al writer di aggiornare il documento Componenti di backup e può comunicare facoltativamente tutte le opzioni di ripristino speciali al writer. Vedere IVssBackupComponents::SetRestoreOptions, IVssBackupComponents::AddNewTarget e IVssBackupComponents::P reRestore. | PreRestore | Il writer determina la partecipazione al ripristino, prepara i file per il ripristino e modifica facoltativamente il documento componenti di backup, se necessario. Vedere CVssWriter::OnPreRestore, IVssComponent, IVssComponent:: IsSelectedForRestore, IVssComponent::GetRestoreOptions, IVssComponent:: SetRestoreTarget, IVssComponent:: SetRestoreMetadata, IVssComponent:: AddDirectedTarget. |
Il richiedente attende i writer per gestire l'evento PreRestore con IVssAsync. Deve anche verificare lo stato del writer. Vedere IVssBackupComponents::GatherWriterStatus, IVssBackupComponents::GetWriterStatus. | Nessuno | Nessuno |
Azioni del richiedente durante la preparazione del ripristino
Per determinare quali componenti sono candidati per il ripristino, il richiedente deve eseguire le operazioni seguenti:
- Stabilire il componente e la struttura del set di componenti usata per eseguire il backup.
- Esaminare la selezionabilità dei componenti per il ripristino.
- Usare le linee guida per la selezione (Uso della selezionabilità per ripristino e sottocomponenti) per scegliere i componenti da includere.
- Usare le informazioni sul set di file componente per determinare quali file nel supporto di backup devono essere ripristinati.
A tale scopo, il richiedente deve esaminare i componenti inclusi in modo esplicito nel documento dei componenti di backup archiviati. Queste informazioni sui componenti sono disponibili in base a writer usando IVssBackupComponents::GetWriterComponents, che restituisce istanze dell'interfaccia IVssWriterComponentsExt , da cui è possibile recuperare sia le informazioni writer che le istanze dell'interfaccia IVssComponent .
Come indicato altrove (Uso dei componenti dal richiedente), il documento Componenti di backup e l'interfaccia IVssComponent non contengono informazioni sufficienti per supportare il backup. Pertanto, il richiedente deve esaminare il documento di metadati writer archiviato corrispondente usando IVssExamineWriterMetadata (vedere Informazioni di identificazione writer).
Il numero di componenti gestiti da ogni writer viene restituito da IVssExamineWriterMetadata::GetFileCounts. Il richiedente può quindi usare IVssExamineWriterMetadata::GetComponent per ottenere un'interfaccia IVssWMComponent per ogni componente gestito da un writer.
Esaminando la selezionabilità dei componenti per i percorsi di backup e logici (vedere Uso di Selezionabilità e percorsi logici), un richiedente è in grado di identificare i componenti che hanno definito i set di componenti in fase di backup (inclusi in modo esplicito i componenti) e i membri dei sottocomponenti di tali set (inclusi in modo implicito i componenti).
I richiedenti indicano tramite il documento Componenti di backup se un componente deve essere ripristinato in modo esplicito usando IVssBackupComponents::SetSelectedForRestore o IVssBackupComponents::AddRestoreSubcomponentent. La scelta del metodo dipende dal modo in cui il componente è stato originariamente eseguito il backup e la relativa selezionabilità per il ripristino. Questi componenti sono inclusi in modo esplicito per il ripristino designano altri componenti inclusi in modo implicito (vedere Uso della selezionabilità per il ripristino e i sottocomponenti per informazioni dettagliate).
Un richiedente può includere in modo esplicito nessuno dei componenti del writer attualmente in esecuzione per il ripristino usando IVssBackupComponents::SetSelectedForRestore o IVssBackupComponents::AddRestoreSubcomponentent. In questo caso, tale writer non riceverà eventi VSS per il resto dell'operazione di ripristino.
Uso esplicito di IVssBackupComponents::SetSelectedForRestore o IVssBackupComponents::AddRestoreSubcomponent per selezionare un componente di un writer che non è attualmente in esecuzione restituisce un errore di VSS_E_OBJECT_NOT_FOUND. Per informazioni sul ripristino dei dati dei writer mancanti, vedere Restores without Writer Participation for information on restore the data of missing writer writer participation for information on restore the data of missing writer participation.
Per consentire a un writer di avere informazioni complete su cui agire, le opzioni di ripristino specifiche del writer e l'indicazione di un ripristino incrementale possono essere inviate rispettivamente ai writer chiamando IVssBackupComponents::SetRestoreOptions e IVssBackupComponents::SetAdditionalRestores.
A questo punto, un richiedente ha completato la preparazione e genera un evento PreRestore chiamando IVssBackupComponents::P restore, consentendo ai writer di preparare il ripristino effettivo.
Azioni writer durante la preparazione del ripristino
La preparazione del writer per l'operazione di ripristino si verifica quando si gestisce l'evento PreRestore con il metodo virtuale CVssWriter::OnPreRestore. L'implementazione predefinita restituisce semplicemente senza eseguire alcuna azione. I writer possono scegliere di eseguire l'override dell'implementazione predefinita per esercitare più controllo in base a:
- Override dei metodi di ripristino con destinazioni di ripristino
- Definizione di destinazioni dirette
- Creazione di messaggi di errore e dati aggiuntivi
- Fornitura di informazioni sul timbro di backup
Il gestore eventi CVssWriter::OnPreRestore riceve un'istanza di IVssWriterComponents, da cui può ottenere interfacce IVssComponent per quelli dei relativi componenti inclusi in modo esplicito nel documento Componenti di backup durante il backup.
Informazioni sui sottocomponenti inclusi in modo implicito nelle operazioni di backup e inclusi in modo esplicito nei ripristini usando un'istanza di IVssComponent corrispondente al componente che ha definito il set di componenti di backup.
Il metodo IVssComponent::IsSelectedForRestore viene usato per determinare se un componente di backup incluso in modo esplicito deve essere ripristinato.
Per determinare se un sottocomponente di backup è stato incluso in modo esplicito nel ripristino, i writer usano IVssComponent::GetRestoreSubcomponent.
Il writer deve esaminare il file impostato in ogni componente e determinare se deve eseguire azioni per supportare il ripristino. Il writer dovrà valutare se vuole sovrascrivere i file correnti oppure se richiederà il ripristino in nuove posizioni. Le azioni possono includere quanto segue:
- Ottenere e agire su qualsiasi writer o opzioni specifiche del richiedente che regolano le operazioni di ripristino (vedere IVssComponent::GetRestoreOptions)
- Chiusura e creazione di file attualmente aperti
- Aggiornamento della destinazione di ripristino(ad esempio, per forzare il ripristino in un mapping di percorso alternativo). Vedere IVssComponent::SetRestoreTarget.
- Comunicazione con il richiedente tramite metadati privati (vedere IVssComponent::SetRestoreMetadata)
- Indicante che un file deve essere ripristinato eseguendo il mapping tramite la definizione delle destinazioni dirette (vedere IVssComponent::AddDirectedTarget)
L'istanza di IVssComponent usata sarà quella creata dall'inclusione esplicita del componente nel documento Componenti di backup durante il backup o quella del componente che definisce il set di componenti di backup di cui è stato membro (vedere Uso della selezionabilità per ripristino e sottocomponenti).