Scrittori
Writer sono applicazioni o servizi che archiviano informazioni persistenti nei file su disco e che forniscono i nomi e i percorsi di questi file ai richiedenti usando l'interfaccia di copia shadow.
Durante le operazioni di backup, i writer assicurano che i dati siano in attesa e stabili, adatti per la copia shadow e il backup. I writer collaborano con i ripristini sbloccando i file quando possibile e indicando percorsi alternativi quando necessario.
Se non sono presenti writer durante un'operazione di backup vss, è comunque possibile creare una copia shadow. In questo caso, tutti i dati nel volume copiato dall'ombreggiatura saranno nello stato coerente con l'arresto anomalo del sistema.
Stato writer
I writer mantengono lo stato in un oggetto metadati basato su XML, il documento di metadati del writer .
Questi metadati del writer sono l'unica struttura di dati che contiene il set di file ,percorso, specifica del file e flag di ricorsione, dei dati di cui eseguire il backup e il ripristino.
Il documento di metadati writer organizza i set di file del writer in gruppi o componenti . La relazione di uno di questi componenti durante le operazioni di backup e ripristino con gli altri componenti gestiti dal writer è descritta nel documento dei metadati del writer in base al del componente per la selezione per il backup, il relativo la selezionabilità per il ripristinoe i relativi percorsi logici . Per altre informazioni, vedere Configurazione di dell'organizzazione dei componenti e Uso della selezionabilità e dei percorsi logici.
In questo documento sono contenute anche informazioni aggiuntive che regolano il ripristino dei file e altri problemi.
Il richiedente richiede i metadati del writer, insieme al proprio documento dei componenti di backup, per elaborare un backup o un ripristino.
A differenza del documento dei componenti di backup, il documento di metadati writer deve essere considerato come una struttura di sola lettura. Dopo che un writer lo crea, il documento non viene modificato.
Gestione degli eventi writer
Le operazioni VSS di un writer vengono avviate tramite la ricezione di eventi COM.
Quando non sono presenti eventi, un writer non esegue operazioni VSS, ad esempio un backup o un ripristino vss. Esegue invece il normale lavoro, ad esempio la risposta alle query di database, la gestione dei dati utente o la fornitura di altri servizi.
Per garantire che la gestione degli errori per più sessioni di backup e ripristino parallele venga eseguita correttamente e per assicurarsi che una sessione di backup o ripristino non sia danneggiata da un'altra, è necessario eseguire le operazioni seguenti:
- Se il gestore eventi di un writer ( ad esempio CVssWriter::OnFreeze) chiama il metodo CVssWriterEx2::GetSessionId, CVssWriter::SetWriterFailureo CVssWriterEx2::SetWriterFailure Ex2::SetWriterFailureEx, Il gestore eventi deve chiamare il metodo nello stesso thread che ha chiamato il gestore eventi.
- L'implementazione del writer di un gestore eventi, ad esempio OnFreeze può eseguire l'offload del lavoro nei thread di lavoro, se necessario, purché ogni thread di lavoro esegni il marshalling di eventuali errori necessari segnalando il thread del gestore eventi originale.
Gestione degli eventi di identificazione
Ad eccezione dell'evento Identify, il tipo e l'ordine degli eventi ricevuti da un writer dipendono in modo univoco dal tipo di operazioni VSS attualmente in corso.
L'evento Identify richiede ai writer di fornire le informazioni di sistema sulla configurazione e i file gestiti tramite il relativo documento di metadati writer . Un evento Identify viene generato a supporto di quasi tutte le operazioni vss, incluse le query di sistema, nonché le operazioni di copia shadow e backup e ripristino. Pertanto, l'implementazione di qualsiasi writer del gestore eventi Identify CVssWriter::OnIdentify deve essere in grado di gestire un evento Di identificazione in qualsiasi momento, incluso nel corso dell'elaborazione di un'altra operazione vss, ad esempio un backup o un ripristino. Un evento Identify non deve mai essere considerato come parte del ciclo di vita di un'operazione vss, anche se la sua generazione può essere prevista e necessaria prima dell'inizio di tale operazione.
È particolarmente importante che le informazioni sullo stato di un'operazione VSS non vengano modificate in CVssWriter::OnIdentify, perché la ricezione di un evento non ordinato reimposta tali informazioni.
Eventi di backup e ripristino
A seconda che partecipi a un backup o a un ripristino, un writer riceverà tra due e sette eventi, oltre a un evento Di identificazione iniziale.
La gestione di questi eventi costituisce (dal punto di vista di un writer) il ciclo di vita di un'operazione di backup o ripristino.
In un'operazione di backup tipica (vedere Panoramica dell'elaborazione di un backup in VSS), un writer gestirà gli eventi seguenti (oltre a un evento di identificazione iniziale):
- PrepareForBackup
- PrepareForSnapshot
- Gelare
- Disgelo
- PostSnapshot
- BackupComplete
- BackupShutdown
In un'operazione di ripristino tipica (vedere Panoramica dell'elaborazione di un ripristino in Vss), un writer gestisce gli eventi seguenti:
- PreRestore
- PostRestore