Definizione dei componenti per writer
I componenti vengono definiti dai writer nel documento dei metadati writer in risposta a un evento Di identificazione all'inizio di un'operazione di backup (vedere Panoramica dell'inizializzazione del backup) quando viene popolato il documento di metadati writer.
Quando si crea un componente nel documento di metadati writer, usando IVssCreateWriterMetadata e IVssCreateWriterMetadata::AddComponent, un writer deve specificare:
- Indica se il componente è selezionabile per il backup
- Tipo di componente
- Nome del componente (che deve essere univoco non solo all'interno di una determinata istanza del writer , ma in tutte le istanze del writer)
- Indica se al componente sono associati metadati specifici del writer
- Indica se il writer richiede una notifica dopo un backup riuscito
I writer possono facoltativamente specificare:
- Percorso logico di un componente (che deve essere univoco non solo all'interno di una determinata istanza del writer, ma in tutte le istanze del writer)
- Descrizione di un componente (o didascalia)
- Icona da usare con le interfacce utente utente per indicare il componente
Non è necessario che un componente contenga effettivamente file. Questo tipo di componente vuoto o fittizio può essere utile per organizzare i componenti. Un componente di questo tipo può essere usato per definire un set di componenti e un componente del writer (vedere Percorso logico dei componenti).
Configurazione dell'organizzazione dei componenti
L'impostazione della selezione di un componente (la sua selezionabilità per il backup e la sua selezionabilità per il ripristino) e i relativi percorsi logici consentono a un writer di imporre o rendere facoltativa l'inclusione di determinati componenti in un'operazione di backup o ripristino e di raggruppare i componenti in set di componenti con un componente selezionabile che funge da punto di ingresso all'intero gruppo.
L'appartenenza a questi raggruppamenti determina quali componenti verranno usati durante le operazioni di backup e ripristino. L'uso di "selezionabile" per significare selezionabile per il backup per l'operazione di backup e selezionabile per il ripristino per l'operazione di ripristino, gli sviluppatori devono comprendere che:
- Se viene eseguito il backup di tutti i componenti gestiti da un determinato writer, un richiedente deve includere in modo esplicito tutti i componenti non selezionabili senza predecessori selezionabili nel percorso logico del documento Dei componenti di backup e eseguire il backup e il ripristino di tali componenti come gruppo.
- Un richiedente ha la possibilità di aggiungere in modo esplicito componenti selezionabili al documento Componenti di backup durante le operazioni di backup e ripristino; dopo l'aggiunta, è necessario eseguire il backup o il ripristino del componente.
- Se un componente è selezionabile, il componente e tutti i relativi sottocomponenti (come definito dai percorsi logici) formano un set di componenti, che può essere considerato come una singola unità che può facoltativamente partecipare alle operazioni di backup e ripristino.
- Un richiedente non aggiunge mai in modo esplicito un componente non selezionabile con predecessori selezionabili, un sottocomponente in un set di componenti, al documento Componenti di backup durante le operazioni di backup e ripristino. Questi componenti devono essere inclusi in modo implicito se il predecessore selezionabile viene aggiunto in modo esplicito, nel qual caso deve essere eseguito il backup o il ripristino (vedere Uso dei componenti da parte del richiedente).
- Un componente selezionabile con un predecessore selezionabile è ancora un sottocomponente (membro di un set di componenti) e può essere incluso in modo implicito se il predecessore selezionabile è incluso in modo esplicito nell'operazione. In questo caso, le informazioni non vengono aggiunte al documento Componenti di backup. Se il predecessore selezionabile non è incluso nell'operazione, il componente può essere selezionato in modo esplicito per l'inclusione nell'operazione, nel qual caso le relative informazioni vengono incluse nel documento Componenti di backup.
- Un sottocomponente incluso in modo implicito in un backup può essere incluso in modo esplicito in un'operazione di ripristino, indipendentemente dallo stato di qualsiasi predecessore selezionabile, se selezionabile per il ripristino. Qualsiasi sottocomponente selezionabile per il ripristino incluso durante un'operazione di ripristino deve avere le informazioni aggiunte al documento Componenti di backup.
- Un writer senza componente aggiunto in modo esplicito al documento componenti di backup prima della generazione degli eventi PrepareForBackup e PreRestore non riceverà altri eventi VSS.
Per altre informazioni, vedere Uso della selezione e dei percorsi logici.
Aggiunta di file a un componente
Un componente contiene informazioni sul file sotto forma di set di file che contiene:
- Directory radice dei file nel componente.
- Specifica di file per i file nel componente.
- Flag che indica se la specifica del componente è ricorsiva.
A seconda del tipo di componente, che può essere un database o un filegroup e (nel caso dei componenti di database) se i file da caricare sono file di dati o di log, un writer chiama IVssCreateWriterMetadata::AddFilesToFileGroup, IVssCreateWriterMetadata::AddDatabaseFiles o IVssCreateWriterMetadata::AddDatabaseLogFiles per aggiungere un set di file.
Quando si usano queste funzioni, è necessario specificare i file da aggiungere al set di file come indicato di seguito:
- wszPath: percorso della directory contenente i file da aggiungere al set di file. Se il parametro bRecursive è impostato su true, il parametro wszPath specifica una gerarchia di directory da attraversare in modo ricorsivo e tutte le directory devono essere ricreate, incluse le directory vuote.
- wszFilespec: questa stringa specifica i file in ogni directory da aggiungere al set di file.
Si supponga, ad esempio, che la struttura di directory seguente esista:
- C:\\Directory1\\File1.txt C:\\Directory1\\File2.txt C:\\Directory1\\Directory2\\File1.txt C:\\Directory1\\Directory2\\File2.txt C:\\Directory1\\Directory3\\
Se il writer specifica "C:\Directory1" per wszPath, "File1.*" per wszFilespec e true per bRecursive, il richiedente deve includere questi file:
- C:\\Directory1\\File1.txt C:\\Directory1\\Directory2\\File1.txt
Se il writer specifica invece "C:\Directory1" per wszPath, "*" per wszFilespec e true per bRecursive, il richiedente deve includere questi file:
- C:\\Directory1\\File1.txt C:\\Directory1\\File2.txt C:\\Directory1\\Directory2\\File1.txt C:\\Directory1\\Directory2\\File2.txt
Se il writer specifica "C:\Directory1" per wszPath, "*" per wszFilespec e false per bRecursive, il richiedente deve includere questi file:
- C:\\Directory1\\File1.txt C:\\Directory1\\File2.txt
In tutti gli esempi precedenti, ogni volta che il writer specifica true per bRecursive, la directory vuota C:\Directory1\Directory3\ deve essere ricreata.
Per un set di file aggiunto a un componente del gruppo di file, nei casi in cui i file attualmente presenti su disco non si trovano nel percorso appropriato o predefinito, un writer ha la possibilità di aggiungere un percorso alternativo. In questi casi, la definizione del set di file del percorso contiene il percorso normale dei file e la posizione in cui devono essere ripristinati i file, mentre il percorso alternativo contiene il percorso corrente dei file di cui eseguire il backup.
Tutti i file nel set di file devono esistere al momento del backup. I richiedenti devono presupporre che tutti i file elencati nel set di file siano necessari per il backup e avranno esito negativo se mancano file. Si noti che quando si specifica "*" per il parametro wszFilespec , può corrispondere a zero o più file.
Si noti che tali attributi del documento di metadati writer come mapping di percorsi alternativi, file inclusi ed esclusi in modo esplicito e i metodi di ripristino vengono impostati a livello di writer, non a livello di componente. Per altre informazioni, vedere Utilizzo del documento di metadati writer.
Definizione del componente per le operazioni di backup e ripristino
Sia le operazioni di ripristino che di backup generano necessariamente un evento Identify e per entrambi i backup e ripristini verrà gestito dallo stesso metodo CVssWriter::OnIdentify .
Durante le operazioni di backup, i richiedenti usano le informazioni restituite dai metodi CVssWriter::OnIdentify di un writer per determinare quali writer sono presenti nel sistema e quindi determinare quali file eseguire il backup.
Durante le operazioni di ripristino, le informazioni restituite dall'evento CVssWriter::OnIdentify di un writer vengono usate solo per stabilire l'identità e lo stato dei writer attualmente presenti nel sistema; le informazioni sulla specifica del file generate durante un ripristino non vengono utilizzate. I documenti dei metadati writer archiviati in fase di backup vengono invece usati per ottenere questi dati.
Una volta generato durante un'operazione di backup, le informazioni sul componente writer, insieme al resto delle informazioni del writer, vengono salvate per essere recuperate per supportare le operazioni di ripristino. In genere è responsabilità del richiedente archiviare queste informazioni.