Dettagli sulla creazione di copia shadow
In generale, il modo in cui viene creata una copia shadow dipende dal tipo di copia shadow da creare, dal relativo contesto e dal ruolo concesso ai writer nell'operazione di copia shadow. Per altre informazioni, vedere Configurazioni del contesto di copia shadow .
Il contesto di copia shadow viene impostato chiamando il metodo IVssBackupComponents::SetContext . Prima di chiamare il metodo IVssBackupComponents::D oSnapshotSet per creare una copia shadow, i richiedenti devono chiamare i metodi IVssBackupComponents nell'ordine specificato nelle sezioni seguenti.
Prerequisiti per tutte le copie shadow
Indipendentemente dal livello di partecipazione del writer, la creazione di qualsiasi copia shadow richiederà sempre l'inizializzazione del richiedente con chiamate a IVssBackupComponents::InitializeForBackup e IVssBackupComponents::StartSnapshotSet.
Se questa chiamata non viene eseguita, il metodo IVssBackupComponents::D oSnapshotSet restituirà un errore.
Copia shadow con partecipazione writer
Se il contesto di copia shadow specifica la partecipazione del writer, ovvero IVssBackupComponents::SetContext viene chiamato con VSS_CTX_BACKUP o VSS_CTX_APP_ROLLBACK):
- I richiedenti devono sempre chiamare IVssBackupComponents::GatherWriterMetadata quando il contesto di copia shadow supporta la partecipazione del writer. Se il contesto di copia shadow supporta la partecipazione del writer e IVssBackupComponents::GatherWriterMetadata non viene chiamato prima di IVssBackupComponents::D oSnapshotSet, verrà restituito un errore.
- Se un richiedente vuole selezionare componenti di writer specifici, deve chiamare IVssBackupComponents::AddComponent prima di chiamare StartSnapshotSet per creare il set di copia shadow.
- StartSnapshotSet deve essere chiamato per creare il set di copia shadow.
- I richiedenti possono aggiungere uno o più volumi al set di copia shadow chiamando AddToSnapshotSet. Alcuni componenti writer potrebbero non specificare volumi interessati. In questo caso, è accettabile che un set di snapshot sia vuoto, ovvero per non contenere volumi.
- Per garantire la coerenza dei metadati del writer, un richiedente deve sempre chiamare IVssBackupComponents::P repareForBackup anche se non sono selezionati componenti. In questo modo, VSS genera un evento PrepareForBackup , in cui VSS chiama il metodo CVssWriter::OnPrepareBackup per ogni writer partecipante.
- VSS genererà gli eventi PrepareForSnapshot e Freeze prima di creare la copia shadow in risposta a IVssBackupComponents::D oSnapshotSet. Gli autori gestiranno gli eventi con CVssWriter::OnPrepareSnapshot e CVssWriter::OnFreeze.
- VsS genererà eventi Thaw e eventi PostSnapshot dopo aver creato una copia shadow in risposta a IVssBackupComponents::D oSnapshotSet. I writer gestiranno gli eventi con CVssWriter::OnThaw e CVssWriter::OnPostSnapshot.
Copia shadow senza partecipazione writer
La creazione di copie shadow senza la partecipazione del writer è sconsigliata per le applicazioni di backup standard (vedere Backup senza partecipazione writer).
Ci sono usi, ad esempio backup veloci di un disco per fornire una rete di sicurezza contro il danneggiamento accidentale dei file, che può essere condotto senza partecipazione esplicita del writer. Tale copia shadow avrebbe un contesto di VSS_CTX_FILE_SHARE_BACKUP o VSS_CTX_NAS_ROLLBACK.
Per questo tipo di copia shadow, tenere presente quanto segue:
- I richiedenti devono comunque chiamare i metodi obbligatori elencati nei prerequisiti per tutte le copie shadow.
- I richiedenti possono chiamare IVssBackupComponents::GatherWriterMetadata, ma questo non è obbligatorio.
- Se i richiedenti chiamano IVssBackupComponents::AddComponent, IVssBackupComponents::P repareForBackup o IVssBackupComponents::BackupComplete, verrà restituito un errore.
- I provider non genereranno eventi PrepareForSnapshot, Freeze, Thaw o PostSnapshot per questo tipo di copia shadow.